/* extended memory manager routine header T.Tsuda. , DSA April 1,1995 */ #ifdef _EMM_ #define EXTERN #else #define EXTERN extern #endif #ifdef _EMM_ #define emscall() int86(0x67,®,®) #define emscallx() int86x(0x67,®,®,&sreg) #endif /* emm status */ #define EMMNORDY 0 #define EMMREADY 1 #define EMMGETPH 2 #define EMMALLOC 4 /* emm error number */ #define EMMNOERR 0x00 #define EMMDEVER 0xff #define EMMVERER 0xfe #define EMMMEMER 0xfd #define EMMALCER 0xfc #define EMMARGER 0xfb #ifdef _EMM_ struct _emmphys { unsigned int segment; unsigned int ppage; }; #define EMMPHYS struct _emmphys #endif struct _emmpage { unsigned int ppage; unsigned int segment; unsigned int lpage; /* is allocate ppage */ }; #define EMMPAGES struct _emmpage struct _emm_ { int status; unsigned int errorno; unsigned int ppages; unsigned int epages; EMMPAGES *ppflame; unsigned int handle; unsigned int lpages; }; EXTERN struct _emm_ emm #ifdef _EMM_ = { EMMNORDY, EMMNOERR, } #endif ; /* function of prottypes */ int isemm(void); /* description: check emm ready set status EMMREADY returns: 0 Not ready (No useable emm) 1 Ready (useable emm) */ unsigned int emsver(void); /* description: get ems version returns: 0 Error occurs not 0 Version : 7-4.major 3-0.minor */ unsigned int emsphys(void); /* description: get ems physical page segment and physical page number set status EMMGETPH; returns: 0 Error occurs 1 No error */ unsigned int emsalloc(unsigned int logipage); /* description: allocation ems logical pages set status EMMALLOC; returns: 0 Error occurs 1 No error */ unsigned int emsrealc(unsigned int logipage); /* description: reallocation ems logical pages set status EMMALLOC; returns: 0 Error occurs 1 No error */ unsigned int emsmap(unsigned int logipage,unsigned int physpage); /* description: mapping logical page to physical page returns: 0 Error occurs 1 No error */ unsigned int emsmapf(unsigned int logipage,unsigned int flame); /* description: mapping logical page to physical page flame (emm.ppflame entry number) returns: 0 Error occurs 1 No error */ unsigned int emsfree(void); /* description: free ems logical pages and physical page table's memory reset status EMMGETPH; reset status EMMALLOC; returns: 0 Error occurs 1 No error */ #undef EXTERN