vbeinfo

annotate 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
rev   line source
nuclear@0 1 #ifndef DPMI_H_
nuclear@0 2 #define DPMI_H_
nuclear@0 3
nuclear@3 4 #ifdef __DJGPP__
nuclear@3 5 #include <dpmi.h>
nuclear@3 6 #endif
nuclear@3 7
nuclear@0 8 #include "inttypes.h"
nuclear@0 9
nuclear@0 10 struct dpmi_real_regs {
nuclear@0 11 uint32_t edi, esi, ebp;
nuclear@0 12 uint32_t reserved;
nuclear@0 13 uint32_t ebx, edx, ecx, eax;
nuclear@0 14 uint16_t flags;
nuclear@0 15 uint16_t es, ds, fs, gs;
nuclear@0 16 uint16_t ip, cs, sp, ss;
nuclear@0 17 };
nuclear@0 18
nuclear@3 19 uint16_t dpmi_alloc(unsigned int par, uint16_t *sel);
nuclear@3 20 void dpmi_free(uint16_t sel);
nuclear@3 21
nuclear@3 22 #ifdef __WATCOMC__
nuclear@0 23 #pragma aux dpmi_alloc = \
nuclear@0 24 "mov eax, 0x100" \
nuclear@0 25 "int 0x31" \
nuclear@3 26 "mov [edi], dx" \
nuclear@3 27 value[ax] parm[ebx][edi];
nuclear@3 28
nuclear@3 29 #pragma aux dpmi_free = \
nuclear@3 30 "mov eax, 0x101" \
nuclear@3 31 "int 0x31" \
nuclear@3 32 parm[dx];
nuclear@0 33
nuclear@0 34 void dpmi_real_int(int inum, struct dpmi_real_regs *regs);
nuclear@3 35 #endif /* __WATCOMC__ */
nuclear@3 36
nuclear@3 37 #ifdef __DJGPP__
nuclear@3 38 #define dpmi_real_int(inum, regs) __dpmi_int((inum), (__dpmi_regs*)(regs))
nuclear@3 39 #endif
nuclear@0 40
nuclear@0 41 void *dpmi_mmap(uint32_t phys_addr, unsigned int size);
nuclear@0 42 void dpmi_munmap(void *addr);
nuclear@0 43
nuclear@0 44 #endif /* DPMI_H_ */