X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.h;h=fec8c7789500652633d1625a54a38e552ad4db9d;hb=5f0bd05a15aaf93f46baf9b8aa3e9b0bfbca26ab;hp=387c68672b73c9e2f1dc2846d2dfe9b3978de00a;hpb=b727b3bff6f2a989e8e20e199945c2bf768214a9;p=sbcl.git diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h index 387c686..fec8c77 100644 --- a/src/runtime/runtime.h +++ b/src/runtime/runtime.h @@ -199,14 +199,25 @@ extern sigset_t blockable_sigset; /* even on alpha, int happens to be 4 bytes. long is longer. */ /* FIXME: these names really shouldn't reflect their length and this is not quite right for some of the FFI stuff */ +#if defined(LISP_FEATURE_WIN32)&&defined(LISP_FEATURE_X86_64) +typedef unsigned long long u64; +typedef signed long long s64; +#else typedef unsigned long u64; typedef signed long s64; +#endif typedef unsigned int u32; typedef signed int s32; /* this is an integral type the same length as a machine pointer */ typedef uintptr_t pointer_sized_uint_t; +#ifdef _WIN64 +#define AMD64_SYSV_ABI __attribute__((sysv_abi)) +#else +#define AMD64_SYSV_ABI +#endif + #include #if defined(LISP_FEATURE_SB_THREAD) @@ -312,12 +323,12 @@ make_lispobj(void *o, int low_tag) #define MAKE_FIXNUM(n) (n << N_FIXNUM_TAG_BITS) static inline lispobj -make_fixnum(long n) +make_fixnum(sword_t n) { return MAKE_FIXNUM(n); } -static inline long +static inline sword_t fixnum_value(lispobj n) { return n >> N_FIXNUM_TAG_BITS;