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: Define a consistent set of types on each platform.
14
15 ********************************************************************/
16#ifndef _OS_TYPES_H
17#define _OS_TYPES_H
18
19/* make it easy on the folks that want to compile the libs with a
20 different malloc than stdlib */
21#define _ogg_malloc malloc
22#define _ogg_calloc calloc
23#define _ogg_realloc realloc
24#define _ogg_free free
25
26#if defined(_WIN32)
27
28# if defined(__CYGWIN__)
29# include <stdint.h>
30 typedef int16_t ogg_int16_t;
31 typedef uint16_t ogg_uint16_t;
32 typedef int32_t ogg_int32_t;
33 typedef uint32_t ogg_uint32_t;
34 typedef int64_t ogg_int64_t;
35 typedef uint64_t ogg_uint64_t;
36# elif defined(__MINGW32__)
37# include <sys/types.h>
38 typedef short ogg_int16_t;
39 typedef unsigned short ogg_uint16_t;
40 typedef int ogg_int32_t;
41 typedef unsigned int ogg_uint32_t;
42 typedef long long ogg_int64_t;
43 typedef unsigned long long ogg_uint64_t;
44# elif defined(__MWERKS__)
45 typedef long long ogg_int64_t;
46 typedef unsigned long long ogg_uint64_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# if defined(_MSC_VER) && (_MSC_VER >= 1800) /* MSVC 2013 and newer */
53# include <stdint.h>
54 typedef int16_t ogg_int16_t;
55 typedef uint16_t ogg_uint16_t;
56 typedef int32_t ogg_int32_t;
57 typedef uint32_t ogg_uint32_t;
58 typedef int64_t ogg_int64_t;
59 typedef uint64_t ogg_uint64_t;
60# else
61 /* MSVC/Borland */
62 typedef __int64 ogg_int64_t;
63 typedef __int32 ogg_int32_t;
64 typedef unsigned __int32 ogg_uint32_t;
65 typedef unsigned __int64 ogg_uint64_t;
66 typedef __int16 ogg_int16_t;
67 typedef unsigned __int16 ogg_uint16_t;
68# endif
69# endif
70
71#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */
72
73# include <sys/types.h>
74 typedef int16_t ogg_int16_t;
75 typedef u_int16_t ogg_uint16_t;
76 typedef int32_t ogg_int32_t;
77 typedef u_int32_t ogg_uint32_t;
78 typedef int64_t ogg_int64_t;
79 typedef u_int64_t ogg_uint64_t;
80
81#elif defined(__HAIKU__)
82
83 /* Haiku */
84# include <sys/types.h>
85 typedef short ogg_int16_t;
86 typedef unsigned short ogg_uint16_t;
87 typedef int ogg_int32_t;
88 typedef unsigned int ogg_uint32_t;
89 typedef long long ogg_int64_t;
90 typedef unsigned long long ogg_uint64_t;
91
92#elif defined(__BEOS__)
93
94 /* Be */
95# include <inttypes.h>
96 typedef int16_t ogg_int16_t;
97 typedef uint16_t ogg_uint16_t;
98 typedef int32_t ogg_int32_t;
99 typedef uint32_t ogg_uint32_t;
100 typedef int64_t ogg_int64_t;
101 typedef uint64_t ogg_uint64_t;
102
103#elif defined (__EMX__)
104
105 /* OS/2 GCC */
106 typedef short ogg_int16_t;
107 typedef unsigned short ogg_uint16_t;
108 typedef int ogg_int32_t;
109 typedef unsigned int ogg_uint32_t;
110 typedef long long ogg_int64_t;
111 typedef unsigned long long ogg_uint64_t;
112
113
114#elif defined (DJGPP)
115
116 /* DJGPP */
117 typedef short ogg_int16_t;
118 typedef int ogg_int32_t;
119 typedef unsigned int ogg_uint32_t;
120 typedef long long ogg_int64_t;
121 typedef unsigned long long ogg_uint64_t;
122
123#elif defined(R5900)
124
125 /* PS2 EE */
126 typedef long ogg_int64_t;
127 typedef unsigned long ogg_uint64_t;
128 typedef int ogg_int32_t;
129 typedef unsigned ogg_uint32_t;
130 typedef short ogg_int16_t;
131
132#elif defined(__SYMBIAN32__)
133
134 /* Symbian GCC */
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 typedef unsigned long long int ogg_uint64_t;
141
142#elif defined(__TMS320C6X__)
143
144 /* TI C64x compiler */
145 typedef signed short ogg_int16_t;
146 typedef unsigned short ogg_uint16_t;
147 typedef signed int ogg_int32_t;
148 typedef unsigned int ogg_uint32_t;
149 typedef long long int ogg_int64_t;
150 typedef unsigned long long int ogg_uint64_t;
151
152#else
153
154# include <ogg/config_types.h>
155
156#endif
157
158#endif /* _OS_TYPES_H */
159