5 uint16_t dpmi_alloc(unsigned int par, uint16_t *sel)
11 int386(0x31, ®s, ®s);
21 void dpmi_free(uint16_t sel)
23 union REGS regs = {0};
27 int386(0x31, ®s, ®s);
30 void dpmi_int(int inum, struct dpmi_regs *dregs)
32 union REGS regs = {0};
35 regs.x.edi = (uint32_t)dregs;
36 regs.x.ebx = inum & 0xff;
37 int386(0x31, ®s, ®s);
40 void *dpmi_mmap(uint32_t phys_addr, unsigned int size)
42 union REGS regs = {0};
45 regs.w.bx = phys_addr >> 16;
46 regs.w.cx = phys_addr;
47 regs.w.si = size >> 16;
50 int386(0x31, ®s, ®s);
55 return (void*)(((uint32_t)regs.w.bx << 16) | regs.w.cx);
58 void dpmi_munmap(void *addr)
60 union REGS regs = {0};
62 regs.w.bx = (uint32_t)addr >> 16;
63 regs.w.cx = (uint32_t)addr;
64 int386(0x31, ®s, ®s);
67 int stop_gcc_warn_empty_watdpmi_c = 0;
68 #endif /* __WATCOM__ */