X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=ia32rtools.git;a=blobdiff_plain;f=c_auto.h;h=8ae2eeebd1de5f20602f3919683350befa36b8e8;hp=31e89e19b3af75ead206e5c1df491d0efd49c213;hb=ee554c95296119b6b8d82856fbb09ffb8c9dc419;hpb=11437ea1ca9b117227bb3f417796582be70116e7 diff --git a/c_auto.h b/c_auto.h index 31e89e1..8ae2eee 100644 --- a/c_auto.h +++ b/c_auto.h @@ -35,6 +35,12 @@ typedef struct { #define BYTE2(x) (*((u8*)&(x)+2)) #define BYTE3(x) (*((u8*)&(x)+3)) +#ifndef __WINE__ +#define DECL_IMPORT __declspec(dllimport) +#else +#define DECL_IMPORT +#endif + #define memcpy_0 memcpy #define noreturn __attribute__((noreturn)) @@ -45,6 +51,19 @@ static inline BOOL PtInRect_sa(LPCRECT r, int x, int y) return PtInRect(r, p); } +static inline int do_parity(unsigned int v) +{ + v ^= v >> 4; + v ^= v >> 2; + v ^= v >> 1; + return (v ^ 1) & 1; +} + #define do_skip_code_abort() \ printf("%s:%d: skip_code_abort\n", __FILE__, __LINE__); \ *(volatile int *)0 = 1 + +#define barrier() \ + asm volatile("" ::: "memory") + +// vim:ts=2:sw=2:expandtab