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