nuclear@7: #ifndef DPMI_H_ nuclear@7: #define DPMI_H_ nuclear@7: nuclear@7: #include "inttypes.h" nuclear@7: nuclear@7: struct dpmi_real_regs { nuclear@7: uint32_t edi, esi, ebp; nuclear@7: uint32_t reserved; nuclear@7: uint32_t ebx, edx, ecx, eax; nuclear@7: uint16_t flags; nuclear@7: uint16_t es, ds, fs, gs; nuclear@7: uint16_t ip, cs, sp, ss; nuclear@7: }; nuclear@7: nuclear@7: unsigned short dpmi_alloc(unsigned int par); nuclear@7: #pragma aux dpmi_alloc = \ nuclear@7: "mov eax, 0x100" \ nuclear@7: "int 0x31" \ nuclear@7: value[ax] parm[ebx]; nuclear@7: nuclear@7: void dpmi_real_int(int inum, struct dpmi_real_regs *regs); nuclear@7: nuclear@7: void *dpmi_mmap(uint32_t phys_addr, unsigned int size); nuclear@7: void dpmi_munmap(void *addr); nuclear@7: nuclear@7: #endif /* DPMI_H_ */