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
Wrap
Text File
|
1994-05-02
|
2KB
|
52 lines
/****************************************************************
*
* 仮想メモリ管理
*
* Copyright T.Kobayashi
* 1994.4.9
*
*****************************************************************
*
* アドレスマップ ( 80000000 - 803fffff : 4 Mbyte )
*
* 80000000-80000FFF 仮想メモリ管理領域のページテーブル
* 80001000-800FFFFF ライブラリのページテーブル(256個)
* 80100000-8010FFFF 使用ページリスト( 16Kpage = 64Mbyte )
* 80200000-8020FFFF ライブラリ管理領域
*
*****************************************************************/
#define PAGE_VALID 0x0023
#define PAGE_INVALID 0x0000
#define PAGE_USE 0x0001
#define MAX_PAGE (16*1024)
#define MAX_LIBS 256
#define OFFSET 0x10000000 /* アドレスのオフセット */
#define MEM_CTRL 0x80000000 /* メモリ制御構造体アドレス */
#define LIB_CTRL 0x80200000 /* ライブラリ管理領域 */
#define LIB_START 0x80000000 /* ライブラリのスタートアドレス*/
#define LIB_SIZE 0x00400000 /* ライブラリの最大サイズ */
#define TEXT_START 0x00001000 /* テキストのスタートアドレス */
#define DATA_START 0x00200000 /* データのスタートアドレス */
typedef unsigned int PhysicalAdr ; /* 物理アドレス */
typedef PhysicalAdr *PageTable ; /* ページテーブル */
typedef PhysicalAdr *PageDir ; /* ページディレクトリ */
/* 仮想メモリ管理データ */
typedef struct {
PhysicalAdr table[MAX_LIBS][1024] ; /* ページテーブル */
PhysicalAdr page[MAX_PAGE] ; /* 使用ページリスト */
}
MemoryCtrl ;
/* 仮想メモリ管理データのページテーブル */
typedef struct {
PhysicalAdr table[MAX_LIBS] ; /* ページテーブル */
PhysicalAdr page[256] ; /* 使用ページリスト */
PhysicalAdr lib ; /* 使用ページリスト */
}
MemoryCtrlPage ;