home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703A.ISO / VPR_DATA / DOGA / SOURCES / POLYEDIT.LZH / LIB / VMEM.H < prev   
Text File  |  1994-05-02  |  2KB  |  52 lines

  1. /****************************************************************
  2. *
  3. *    仮想メモリ管理
  4. *
  5. *    Copyright    T.Kobayashi
  6. *                1994.4.9
  7. *
  8. *****************************************************************
  9. *
  10. *    アドレスマップ ( 80000000 - 803fffff : 4 Mbyte )
  11. *
  12. *    80000000-80000FFF    仮想メモリ管理領域のページテーブル
  13. *    80001000-800FFFFF    ライブラリのページテーブル(256個)
  14. *    80100000-8010FFFF    使用ページリスト( 16Kpage = 64Mbyte )
  15. *    80200000-8020FFFF    ライブラリ管理領域
  16. *
  17. *****************************************************************/
  18.  
  19. #define    PAGE_VALID        0x0023
  20. #define    PAGE_INVALID    0x0000
  21. #define    PAGE_USE        0x0001
  22.  
  23. #define    MAX_PAGE    (16*1024)
  24. #define    MAX_LIBS    256
  25. #define    OFFSET        0x10000000    /*    アドレスのオフセット        */
  26. #define    MEM_CTRL    0x80000000    /*    メモリ制御構造体アドレス    */
  27. #define    LIB_CTRL    0x80200000    /*    ライブラリ管理領域            */
  28. #define    LIB_START    0x80000000    /*    ライブラリのスタートアドレス*/
  29. #define    LIB_SIZE    0x00400000    /*    ライブラリの最大サイズ        */
  30. #define    TEXT_START    0x00001000    /*    テキストのスタートアドレス    */
  31. #define    DATA_START    0x00200000    /*    データのスタートアドレス    */
  32.  
  33. typedef    unsigned int    PhysicalAdr    ;    /*    物理アドレス        */
  34. typedef    PhysicalAdr        *PageTable ;    /*    ページテーブル        */
  35. typedef    PhysicalAdr        *PageDir ;        /*    ページディレクトリ    */
  36.  
  37. /*    仮想メモリ管理データ    */
  38. typedef    struct    {
  39.     PhysicalAdr    table[MAX_LIBS][1024] ;    /*    ページテーブル            */
  40.     PhysicalAdr    page[MAX_PAGE] ;        /*    使用ページリスト        */
  41. }
  42.     MemoryCtrl ;
  43.  
  44. /*    仮想メモリ管理データのページテーブル    */
  45. typedef    struct    {
  46.     PhysicalAdr    table[MAX_LIBS] ;    /*    ページテーブル            */
  47.     PhysicalAdr    page[256] ;            /*    使用ページリスト        */
  48.     PhysicalAdr    lib ;                /*    使用ページリスト        */
  49. }
  50.     MemoryCtrlPage ;
  51.  
  52.