Blob


1 /*
2 * THIS FILE IS NOT IDENTICAL TO THE ORIGINAL
3 * FROM THE BZIP2 DISTRIBUTION.
4 *
5 * It has been modified, mainly to break the library
6 * into smaller pieces.
7 *
8 * Russ Cox
9 * rsc@plan9.bell-labs.com
10 * July 2000
11 */
13 /*---------------------------------------------*/
14 /*--
15 Place a 1 beside your platform, and 0 elsewhere.
16 Attempts to autosniff this even if you don't.
17 --*/
20 /*--
21 Generic 32-bit Unix.
22 Also works on 64-bit Unix boxes.
23 --*/
24 #define BZ_UNIX 1
26 /*--
27 Win32, as seen by Jacob Navia's excellent
28 port of (Chris Fraser & David Hanson)'s excellent
29 lcc compiler.
30 --*/
31 #define BZ_LCCWIN32 0
33 #if defined(_WIN32) && !defined(__CYGWIN__)
34 #undef BZ_LCCWIN32
35 #define BZ_LCCWIN32 1
36 #undef BZ_UNIX
37 #define BZ_UNIX 0
38 #endif
40 /*--
41 Plan 9 from Bell Labs
42 --*/
43 #define BZ_PLAN9 0
45 #if defined(PLAN9)
46 #undef BZ_UNIX
47 #define BZ_UNIX 0
48 #undef BZ_PLAN9
49 #define BZ_PLAN9 1
50 #endif
52 #if BZ_UNIX
53 # include "unix.h"
54 #elif BZ_LCCWIN32
55 # include "lccwin32.h"
56 #elif BZ_PLAN9
57 # include "plan9.h"
58 #endif
60 #ifdef __GNUC__
61 # define NORETURN __attribute__ ((noreturn))
62 #else
63 # define NORETURN /**/
64 #endif
66 /*--
67 Some more stuff for all platforms :-)
68 This might have to get moved into the platform-specific
69 header files if we encounter a machine with different sizes.
70 --*/
72 typedef char Char;
73 typedef unsigned char Bool;
74 typedef unsigned char UChar;
75 typedef int Int32;
76 typedef unsigned int UInt32;
77 typedef short Int16;
78 typedef unsigned short UInt16;
80 #define True ((Bool)1)
81 #define False ((Bool)0)
83 /*--
84 IntNative is your platform's `native' int size.
85 Only here to avoid probs with 64-bit platforms.
86 --*/
87 typedef int IntNative;