diff options
author | midipix <writeonce@midipix.org> | 2015-03-29 00:03:40 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-02-25 07:33:20 -0500 |
commit | 2184c4043cb7e8ce93b9b09a29cecbc7c6c748bb (patch) | |
tree | cc21fc563dce7bf622a09bfe066d70ed1517b72a /include/psxtypes/compiler/__psx_compiler_gcc.h | |
parent | ee333f18625a5968d464656e9e83e96c45fe816d (diff) | |
download | psxtypes-2184c4043cb7e8ce93b9b09a29cecbc7c6c748bb.tar.bz2 psxtypes-2184c4043cb7e8ce93b9b09a29cecbc7c6c748bb.tar.xz |
psxtypes headers: renewed commit.
Diffstat (limited to 'include/psxtypes/compiler/__psx_compiler_gcc.h')
-rw-r--r-- | include/psxtypes/compiler/__psx_compiler_gcc.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/include/psxtypes/compiler/__psx_compiler_gcc.h b/include/psxtypes/compiler/__psx_compiler_gcc.h new file mode 100644 index 0000000..6797182 --- /dev/null +++ b/include/psxtypes/compiler/__psx_compiler_gcc.h @@ -0,0 +1,93 @@ +#ifndef _PSXTYPES_COMPILER_GCC_H_ +#define _PSXTYPES_COMPILER_GCC_H_ + + +/* compiler identification */ +#define __COMPILER__ __GCC__ +#define __COMPILER_DEPENDENT_SUFFIX__ __gcc + + +/* x86 processor model */ +#if defined(__i986__) + #define __X86_MODEL 986 +#elif defined(__i886__) + #define __X86_MODEL 886 +#elif defined(__i786__) + #define __X86_MODEL 786 +#elif defined(__i686__) + #define __X86_MODEL 686 +#elif defined(__i586__) + #define __X86_MODEL 586 +#elif defined(__i486__) + #define __X86_MODEL 486 +#elif defined(__i386__) + #define __X86_MODEL 386 +#endif + + +/* x86_64 processor model */ +#if defined(__amd64) && (__amd64) + #define __X86_64_MODEL __amd64 +#endif + + +/* va_list */ +#define __CUSTOM_OR_BUILTIN_va_list__ __builtin_va_list + + +/* compiler keywords */ +#define __in +#define __out +#define __in_opt +#define __out_opt +#define __in_out +#define __in_out_opt +#define __reserved +#define __optional +#define __simplified +#define __caller_allocated +#define __caller_initialized +#define __null_placeholder (0x0) + + +/* compiler attributes */ +#define __attr_aligned__(x) __attribute__((__aligned__(x))) +#define __attr_ptr_size_aligned__ __attr_aligned__(__SIZEOF_POINTER__) +#define __attr_packed__ __attribute__((__packed__)) +#define __attr_export__ __attribute__((dllexport)) +#define __attr_import__ __attribute__((dllimport)) +#define __attr_naked__ +#define __attr_hidden__ __attribute__ ((visibility("hidden"))) +#define __attr_public__ __attribute__ ((visibility("default"))) +#define __attr_protected__ __attribute__ ((visibility("protected"))) + + +/* compiler-dependent assertions */ +#define __assert_aligned_size(s,a) typedef char __assert##s [-(sizeof(s) % a)] +#define __assert_struct_size(s1,s2) typedef char __assert##s1##s2 [sizeof(s2) -sizeof(s1)] + + +/* calling conventions */ +#ifndef __cdecl +#define __cdecl +#endif + +#ifndef __fastcall +#define __fastcall +#endif + +#ifndef __stdcall +#define __stdcall +#endif + +#undef APIENTRY +#undef CALLBACK +#undef NTAPI +#undef WINAPI + +#define APIENTRY +#define CALLBACK +#define NTAPI +#define WINAPI + +#endif /* _PSXTYPES_COMPILER_GCC_H_ */ |