1 /********************************************************************
2  *                                                                  *
3  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
4  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
5  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
7  *                                                                  *
8  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
9  * by the Xiph.Org Foundation http://www.xiph.org/                  *
10  *                                                                  *
11  ********************************************************************
12 
13  function: #ifdef jail to whip a few platforms into the UNIX ideal.
14  last mod: $Id: os_types.h 16649 2009-10-25 00:49:58Z ds $
15 
16  ********************************************************************/
17 #ifndef _OS_TYPES_H
18 #define _OS_TYPES_H
19 
20 /* make it easy on the folks that want to compile the libs with a
21    different malloc than stdlib */
22 #define _ogg_malloc  malloc
23 #define _ogg_calloc  calloc
24 #define _ogg_realloc realloc
25 #define _ogg_free    free
26 
27 #if defined(_WIN32)
28 
29 #  if defined(__CYGWIN__)
30 #    include <stdint.h>
31      typedef int16_t ogg_int16_t;
32      typedef uint16_t ogg_uint16_t;
33      typedef int32_t ogg_int32_t;
34      typedef uint32_t ogg_uint32_t;
35      typedef int64_t ogg_int64_t;
36      typedef uint64_t ogg_uint64_t;
37 #  elif defined(__MINGW32__)
38 #    include <sys/types.h>
39      typedef short ogg_int16_t;
40      typedef unsigned short ogg_uint16_t;
41      typedef int ogg_int32_t;
42      typedef unsigned int ogg_uint32_t;
43      typedef long long ogg_int64_t;
44      typedef unsigned long long ogg_uint64_t;
45 #  elif defined(__MWERKS__)
46      typedef long long ogg_int64_t;
47      typedef int ogg_int32_t;
48      typedef unsigned int ogg_uint32_t;
49      typedef short ogg_int16_t;
50      typedef unsigned short ogg_uint16_t;
51 #  else
52      /* MSVC/Borland */
53      typedef __int64 ogg_int64_t;
54      typedef __int32 ogg_int32_t;
55      typedef unsigned __int32 ogg_uint32_t;
56      typedef __int16 ogg_int16_t;
57      typedef unsigned __int16 ogg_uint16_t;
58 #  endif
59 
60 #elif defined(__MACOS__)
61 
62 #  include <sys/types.h>
63    typedef SInt16 ogg_int16_t;
64    typedef UInt16 ogg_uint16_t;
65    typedef SInt32 ogg_int32_t;
66    typedef UInt32 ogg_uint32_t;
67    typedef SInt64 ogg_int64_t;
68 
69 #elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */
70 
71 #  include <sys/types.h>
72    typedef int16_t ogg_int16_t;
73    typedef u_int16_t ogg_uint16_t;
74    typedef int32_t ogg_int32_t;
75    typedef u_int32_t ogg_uint32_t;
76    typedef int64_t ogg_int64_t;
77 
78 #elif defined(__HAIKU__)
79 
80   /* Haiku */
81 #  include <sys/types.h>
82    typedef short ogg_int16_t;
83    typedef unsigned short ogg_uint16_t;
84    typedef int ogg_int32_t;
85    typedef unsigned int ogg_uint32_t;
86    typedef long long ogg_int64_t;
87 
88 #elif defined(__BEOS__)
89 
90    /* Be */
91 #  include <inttypes.h>
92    typedef int16_t ogg_int16_t;
93    typedef u_int16_t ogg_uint16_t;
94    typedef int32_t ogg_int32_t;
95    typedef u_int32_t ogg_uint32_t;
96    typedef int64_t ogg_int64_t;
97 
98 #elif defined (__EMX__)
99 
100    /* OS/2 GCC */
101    typedef short ogg_int16_t;
102    typedef unsigned short ogg_uint16_t;
103    typedef int ogg_int32_t;
104    typedef unsigned int ogg_uint32_t;
105    typedef long long ogg_int64_t;
106 
107 #elif defined (DJGPP)
108 
109    /* DJGPP */
110    typedef short ogg_int16_t;
111    typedef int ogg_int32_t;
112    typedef unsigned int ogg_uint32_t;
113    typedef long long ogg_int64_t;
114 
115 #elif defined(R5900)
116 
117    /* PS2 EE */
118    typedef long ogg_int64_t;
119    typedef int ogg_int32_t;
120    typedef unsigned ogg_uint32_t;
121    typedef short ogg_int16_t;
122 
123 #elif defined(__SYMBIAN32__)
124 
125    /* Symbian GCC */
126    typedef signed short ogg_int16_t;
127    typedef unsigned short ogg_uint16_t;
128    typedef signed int ogg_int32_t;
129    typedef unsigned int ogg_uint32_t;
130    typedef long long int ogg_int64_t;
131 
132 #elif defined(__TMS320C6X__)
133 
134    /* TI C64x compiler */
135    typedef signed short ogg_int16_t;
136    typedef unsigned short ogg_uint16_t;
137    typedef signed int ogg_int32_t;
138    typedef unsigned int ogg_uint32_t;
139    typedef long long int ogg_int64_t;
140 
141 #else
142 
143 #  include <sys/types.h>
144 #  include <ogg/config_types.h>
145 
146 #endif
147 
148 #endif  /* _OS_TYPES_H */
149