deepstone
annotate src/dpmi.h @ 34:c6406e4aa0fb
better input, fixed emulated code to work again
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 23 Sep 2013 05:58:24 +0300 |
parents | |
children |
rev | line source |
---|---|
nuclear@21 | 1 #ifndef DPMI_H_ |
nuclear@21 | 2 #define DPMI_H_ |
nuclear@21 | 3 |
nuclear@21 | 4 #include "inttypes.h" |
nuclear@21 | 5 |
nuclear@21 | 6 struct dpmi_real_regs { |
nuclear@21 | 7 uint32_t edi, esi, ebp; |
nuclear@21 | 8 uint32_t reserved; |
nuclear@21 | 9 uint32_t ebx, edx, ecx, eax; |
nuclear@21 | 10 uint16_t flags; |
nuclear@21 | 11 uint16_t es, ds, fs, gs; |
nuclear@21 | 12 uint16_t ip, cs, sp, ss; |
nuclear@21 | 13 }; |
nuclear@21 | 14 |
nuclear@21 | 15 unsigned short dpmi_alloc(unsigned int par); |
nuclear@21 | 16 #pragma aux dpmi_alloc = \ |
nuclear@21 | 17 "mov eax, 0x100" \ |
nuclear@21 | 18 "int 0x31" \ |
nuclear@21 | 19 value[ax] parm[ebx]; |
nuclear@21 | 20 |
nuclear@21 | 21 void dpmi_real_int(int inum, struct dpmi_real_regs *regs); |
nuclear@21 | 22 |
nuclear@21 | 23 void *dpmi_mmap(uint32_t phys_addr, unsigned int size); |
nuclear@21 | 24 void dpmi_munmap(void *addr); |
nuclear@21 | 25 |
nuclear@21 | 26 #endif /* DPMI_H_ */ |