From 2184c4043cb7e8ce93b9b09a29cecbc7c6c748bb Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 29 Mar 2015 00:03:40 -0400 Subject: psxtypes headers: renewed commit. --- include/psxtypes/compiler/__psx_compiler_gcc.h | 93 ++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 include/psxtypes/compiler/__psx_compiler_gcc.h (limited to 'include/psxtypes/compiler/__psx_compiler_gcc.h') 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_ */ -- cgit v1.2.3