-
Notifications
You must be signed in to change notification settings - Fork 0
/
dpmi.h
43 lines (34 loc) · 988 Bytes
/
dpmi.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef DPMI_H
#define DPMI_H
#include <i86.h>
// some useful DPMI functions
// by wbc\\bz7 zo.oz.zolb
#pragma pack (push, 1)
// dpmi realmode regs structire
typedef struct {
unsigned long EDI;
unsigned long ESI;
unsigned long EBP;
unsigned long reserved;
unsigned long EBX;
unsigned long EDX;
unsigned long ECX;
unsigned long EAX;
unsigned short flags;
unsigned short ES,DS,FS,GS,IP,CS,SP,SS;
} _dpmi_rmregs;
// dpmi segment:selector pair
typedef struct {
unsigned short int segment;
unsigned short int selector;
} _dpmi_ptr;
#pragma pack (pop)
void dpmi_getdosmem(int size, _dpmi_ptr *p);
void dpmi_freedosmem(_dpmi_ptr *p);
void dpmi_rminterrupt(int int_num, _dpmi_rmregs *regs);
void *dpmi_mapphysical(unsigned long size, void *p);
void dpmi_unmapphysical(void *p);
int rmint386x(int intnum, union REGS *in, union REGS *out, struct SREGS *seg);
void rmintr(int intnum, union REGPACK *r);
extern unsigned int dpmi_status;
#endif