X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=blobdiff_plain;f=src%2Fdos%2Fcdpmi.h;h=4fc2c30e21b64120f8861438a645572b32a2bdf3;hp=cdfd2f7e9e1b91c1cfbf300a7f10614618ae6d49;hb=2c4602e53eaab44272ea5cd62667c939e6d2f61b;hpb=e306e700b04607927f659948590c2c2ed234157e diff --git a/src/dos/cdpmi.h b/src/dos/cdpmi.h index cdfd2f7..4fc2c30 100644 --- a/src/dos/cdpmi.h +++ b/src/dos/cdpmi.h @@ -6,7 +6,9 @@ #endif #include "inttypes.h" +#include "util.h" +#pragma pack (push, 1) struct dpmi_regs { uint32_t edi, esi, ebp; uint32_t reserved; @@ -14,7 +16,8 @@ struct dpmi_regs { uint16_t flags; uint16_t es, ds, fs, gs; uint16_t ip, cs, sp, ss; -}; +} PACKED; +#pragma pack (pop) uint16_t dpmi_alloc(unsigned int par, uint16_t *sel); void dpmi_free(uint16_t sel); @@ -27,6 +30,9 @@ void dpmi_munmap(void *addr); "mov ax, 0x100" \ "int 0x31" \ "mov [edi], dx" \ + "jnc alloc_skip_err" \ + "xor ax, ax" \ + "alloc_skip_err:" \ value[ax] \ parm[ebx][edi];