vbeinfo

view src/dpmi.h @ 3:5b0ef094b8fd

backported changes from more recent VBE projects
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 07 Jan 2019 12:07:53 +0200
parents 4b33fa83e381
children
line source
1 #ifndef DPMI_H_
2 #define DPMI_H_
4 #ifdef __DJGPP__
5 #include <dpmi.h>
6 #endif
8 #include "inttypes.h"
10 struct dpmi_real_regs {
11 uint32_t edi, esi, ebp;
12 uint32_t reserved;
13 uint32_t ebx, edx, ecx, eax;
14 uint16_t flags;
15 uint16_t es, ds, fs, gs;
16 uint16_t ip, cs, sp, ss;
17 };
19 uint16_t dpmi_alloc(unsigned int par, uint16_t *sel);
20 void dpmi_free(uint16_t sel);
22 #ifdef __WATCOMC__
23 #pragma aux dpmi_alloc = \
24 "mov eax, 0x100" \
25 "int 0x31" \
26 "mov [edi], dx" \
27 value[ax] parm[ebx][edi];
29 #pragma aux dpmi_free = \
30 "mov eax, 0x101" \
31 "int 0x31" \
32 parm[dx];
34 void dpmi_real_int(int inum, struct dpmi_real_regs *regs);
35 #endif /* __WATCOMC__ */
37 #ifdef __DJGPP__
38 #define dpmi_real_int(inum, regs) __dpmi_int((inum), (__dpmi_regs*)(regs))
39 #endif
41 void *dpmi_mmap(uint32_t phys_addr, unsigned int size);
42 void dpmi_munmap(void *addr);
44 #endif /* DPMI_H_ */