X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=c_auto.h;h=31e89e19b3af75ead206e5c1df491d0efd49c213;hb=ea43585b82e86b5c393ead41963ba6c2eca157c7;hp=c761daaaad44215769276ed547b731ae0966d989;hpb=7ba45c344765db59116cae21972f2ea5facf3815;p=ia32rtools.git diff --git a/c_auto.h b/c_auto.h index c761daa..31e89e1 100644 --- a/c_auto.h +++ b/c_auto.h @@ -10,24 +10,41 @@ #define s16 int16_t #define s32 int32_t #define s64 int64_t +typedef struct { + u64 q; + u32 d[2]; + u16 w[4]; + u8 b[8]; +} mmxr; + #define bool int -#define _BYTE BYTE -#define _WORD WORD -#define _DWORD DWORD -#define _UNKNOWN char +#define _BYTE uint8_t +#define _WORD uint16_t +#define _DWORD uint32_t +#define _UNKNOWN uint8_t #undef LOBYTE #undef LOWORD #undef HIBYTE #undef HIWORD -#define LOBYTE(x) (*((_BYTE*)&(x))) -#define LOWORD(x) (*((_WORD*)&(x))) -#define HIBYTE(x) (*((_BYTE*)&(x)+1)) -#define HIWORD(x) (*((_WORD*)&(x)+1)) -#define BYTE0(x) (*((_BYTE*)&(x)+0)) -#define BYTE1(x) (*((_BYTE*)&(x)+1)) -#define BYTE2(x) (*((_BYTE*)&(x)+2)) -#define BYTE3(x) (*((_BYTE*)&(x)+3)) +#define LOBYTE(x) (*((u8*)&(x))) +#define LOWORD(x) (*((u16*)&(x))) +#define HIBYTE(x) (*((u8*)&(x)+1)) +#define HIWORD(x) (*((u16*)&(x)+1)) +#define BYTE0(x) (*((u8*)&(x)+0)) +#define BYTE1(x) (*((u8*)&(x)+1)) +#define BYTE2(x) (*((u8*)&(x)+2)) +#define BYTE3(x) (*((u8*)&(x)+3)) #define memcpy_0 memcpy +#define noreturn __attribute__((noreturn)) + +static inline BOOL PtInRect_sa(LPCRECT r, int x, int y) +{ + POINT p = { x, y }; + return PtInRect(r, p); +} +#define do_skip_code_abort() \ + printf("%s:%d: skip_code_abort\n", __FILE__, __LINE__); \ + *(volatile int *)0 = 1