initial commit
[dosdemo] / src / dos / dpmi.h
1 #ifndef DPMI_H_
2 #define DPMI_H_
3
4 #include "inttypes.h"
5
6 struct dpmi_real_regs {
7         uint32_t edi, esi, ebp;
8         uint32_t reserved;
9         uint32_t ebx, edx, ecx, eax;
10         uint16_t flags;
11         uint16_t es, ds, fs, gs;
12         uint16_t ip, cs, sp, ss;
13 };
14
15 unsigned short dpmi_alloc(unsigned int par);
16 #pragma aux dpmi_alloc = \
17                 "mov eax, 0x100" \
18                 "int 0x31" \
19                 value[ax] parm[ebx];
20
21 void dpmi_real_int(int inum, struct dpmi_real_regs *regs);
22
23 void *dpmi_mmap(uint32_t phys_addr, unsigned int size);
24 void dpmi_munmap(void *addr);
25
26 #endif  /* DPMI_H_ */