home *** CD-ROM | disk | FTP | other *** search
- /*
- * Dos Protected Mode Interface (DPMI) routines.
- * See Intel/Microsoft DPMI 1.0 spec for explanations.
- * Also PC Magazine, June 25, 1991, Lab Notes.
- */
-
- #pragma pack(1)
-
- typedef struct {
- unsigned long edi, esi, ebp, res1, ebx, edx, ecx, eax;
- unsigned flags, es, ds, fs, gs, ip, cs, sp, ss;
- } RMODE_CALL;
-
- typedef struct {
- unsigned limit, addr_lo;
- unsigned char addr_hi, access, res1, addr_xhi;
- } DESCRIPTOR;
-
- int dpmi_rmode_intr(unsigned intr, unsigned flags,
- unsigned nwords, RMODE_CALL far *rmode_call);
- unsigned dpmi_sel(void);
- int dpmi_get_descriptor(unsigned pmodesel, DESCRIPTOR far *d);
- int dpmi_set_descriptor(unsigned pmodesel, DESCRIPTOR far *d);
- void far (*dpmi_make_callback(void far (*p)(), RMODE_CALL far *rc))();
- int dpmi_free_callback(void far (*p)());
- unsigned verw(unsigned sel);
-
- unsigned MapRealSeg(unsigned rpara, unsigned long size,
- unsigned far *psel);
- void far * ProtToReal(void far *prot);
- void far * map_real(void far *rptr, unsigned long size);
- void unmap_real(void far *p);
-
- /* undocumented Windows functions */
- DWORD FAR PASCAL GetSelectorBase(unsigned sel);
- DWORD FAR PASCAL GetSelectorLimit(unsigned sel);
- void FAR PASCAL SetSelectorBase(unsigned sel, DWORD base);
- void FAR PASCAL SetSelectorLimit(unsigned sel, DWORD limit);
-
-