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