| @@ -1,5 +1,5 @@ | |||
| /* | |||
| Copyright (C) 2004-2009 Grame | |||
| Copyright (C) 2004-2012 Grame | |||
| This program is free software; you can redistribute it and/or modify | |||
| it under the terms of the GNU Lesser General Public License as published by | |||
| @@ -20,66 +20,101 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| #ifndef __jack_systemdeps_h__ | |||
| #define __jack_systemdeps_h__ | |||
| #if defined(WIN32) && !defined(__CYGWIN__) && !defined(GNU_WIN32) | |||
| #ifndef POST_PACKED_STRUCTURE | |||
| #ifdef __GNUC__ | |||
| /* POST_PACKED_STRUCTURE needs to be a macro which | |||
| expands into a compiler directive. The directive must | |||
| tell the compiler to arrange the preceding structure | |||
| declaration so that it is packed on byte-boundaries rather | |||
| than use the natural alignment of the processor and/or | |||
| compiler. | |||
| */ | |||
| #define PRE_PACKED_STRUCTURE | |||
| #define POST_PACKED_STRUCTURE __attribute__((__packed__)) | |||
| #else | |||
| #ifdef _MSC_VER | |||
| #define PRE_PACKED_STRUCTURE1 __pragma(pack(push,1)) | |||
| #define PRE_PACKED_STRUCTURE PRE_PACKED_STRUCTURE1 | |||
| /* PRE_PACKED_STRUCTURE needs to be a macro which | |||
| expands into a compiler directive. The directive must | |||
| tell the compiler to arrange the following structure | |||
| declaration so that it is packed on byte-boundaries rather | |||
| than use the natural alignment of the processor and/or | |||
| compiler. | |||
| */ | |||
| #define POST_PACKED_STRUCTURE ;__pragma(pack(pop)) | |||
| /* and POST_PACKED_STRUCTURE needs to be a macro which | |||
| restores the packing to its previous setting */ | |||
| #endif | |||
| #include <windows.h> | |||
| #ifdef _MSC_VER /* Microsoft compiler */ | |||
| #define __inline__ inline | |||
| #if (!defined(int8_t) && !defined(_STDINT_H)) | |||
| #define __int8_t_defined | |||
| typedef char int8_t; | |||
| typedef unsigned char uint8_t; | |||
| typedef short int16_t; | |||
| typedef unsigned short uint16_t; | |||
| typedef long int32_t; | |||
| typedef unsigned long uint32_t; | |||
| typedef LONGLONG int64_t; | |||
| typedef ULONGLONG uint64_t; | |||
| #endif | |||
| #elif __MINGW32__ /* MINGW */ | |||
| #include <stdint.h> | |||
| #include <sys/types.h> | |||
| #else /* other compilers ...*/ | |||
| #include <inttypes.h> | |||
| #include <pthread.h> | |||
| #include <sys/types.h> | |||
| #endif | |||
| #if !defined(_PTHREAD_H) && !defined(PTHREAD_WIN32) | |||
| /** | |||
| * to make jack API independent of different thread implementations, | |||
| * we define jack_native_thread_t to HANDLE here. | |||
| */ | |||
| typedef HANDLE jack_native_thread_t; | |||
| #else | |||
| #ifdef PTHREAD_WIN32 // Added by JE - 10-10-2011 | |||
| #include <ptw32/pthread.h> // Makes sure we #include the ptw32 version ! | |||
| #if defined(WIN32) && !defined(__CYGWIN__) && !defined(GNU_WIN32) | |||
| #include <windows.h> | |||
| #ifdef _MSC_VER /* Microsoft compiler */ | |||
| #define __inline__ inline | |||
| #if (!defined(int8_t) && !defined(_STDINT_H)) | |||
| #define __int8_t_defined | |||
| typedef char int8_t; | |||
| typedef unsigned char uint8_t; | |||
| typedef short int16_t; | |||
| typedef unsigned short uint16_t; | |||
| typedef long int32_t; | |||
| typedef unsigned long uint32_t; | |||
| typedef LONGLONG int64_t; | |||
| typedef ULONGLONG uint64_t; | |||
| #endif | |||
| #elif __MINGW32__ /* MINGW */ | |||
| #include <stdint.h> | |||
| #include <sys/types.h> | |||
| #else /* other compilers ...*/ | |||
| #include <inttypes.h> | |||
| #include <pthread.h> | |||
| #include <sys/types.h> | |||
| #endif | |||
| #if !defined(_PTHREAD_H) && !defined(PTHREAD_WIN32) | |||
| /** | |||
| * to make jack API independent of different thread implementations, | |||
| * we define jack_native_thread_t to HANDLE here. | |||
| */ | |||
| typedef HANDLE jack_native_thread_t; | |||
| #else | |||
| #ifdef PTHREAD_WIN32 // Added by JE - 10-10-2011 | |||
| #include <ptw32/pthread.h> // Makes sure we #include the ptw32 version ! | |||
| #endif | |||
| /** | |||
| * to make jack API independent of different thread implementations, | |||
| * we define jack_native_thread_t to pthread_t here. | |||
| */ | |||
| typedef pthread_t jack_native_thread_t; | |||
| #endif | |||
| /** | |||
| * to make jack API independent of different thread implementations, | |||
| * we define jack_native_thread_t to pthread_t here. | |||
| */ | |||
| typedef pthread_t jack_native_thread_t; | |||
| #endif | |||
| #endif // WIN32 && !__CYGWIN__ && !GNU_WIN32 */ | |||
| #if defined(__APPLE__) || defined(__linux__) || defined(__sun__) || defined(sun) || defined(__unix__) || defined(__CYGWIN__) || defined(GNU_WIN32) | |||
| #if defined(__CYGWIN__) || defined(GNU_WIN32) | |||
| #include <stdint.h> | |||
| #endif | |||
| #include <inttypes.h> | |||
| #include <pthread.h> | |||
| #include <sys/types.h> | |||
| #if defined(__CYGWIN__) || defined(GNU_WIN32) | |||
| #include <stdint.h> | |||
| #endif | |||
| #include <inttypes.h> | |||
| #include <pthread.h> | |||
| #include <sys/types.h> | |||
| /** | |||
| * to make jack API independent of different thread implementations, | |||
| * we define jack_native_thread_t to pthread_t here. | |||
| */ | |||
| typedef pthread_t jack_native_thread_t; | |||
| /** | |||
| * to make jack API independent of different thread implementations, | |||
| * we define jack_native_thread_t to pthread_t here. | |||
| */ | |||
| typedef pthread_t jack_native_thread_t; | |||
| #endif /* __APPLE__ || __linux__ || __sun__ || sun */ | |||
| #endif /* __APPLE__ || __linux__ || __sun__ || sun */ | |||
| #endif | |||