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