[MKISOFS]
[reactos.git] / reactos / sdk / tools / mkisofs / schilytools / include / schily / standard.h
1 /* @(#)standard.h 1.40 13/05/01 Copyright 1985-2013 J. Schilling */
2 /*
3 * standard definitions
4 *
5 * This file should be included past:
6 *
7 * mconfig.h / config.h
8 * stdio.h
9 * stdlib.h (better use schily/stdlib.h)
10 * unistd.h (better use schily/unistd.h) needed f. LARGEFILE support
11 *
12 * If you need stdio.h, you must include it before standard.h
13 *
14 * Copyright (c) 1985-2013 J. Schilling
15 */
16 /*
17 * The contents of this file are subject to the terms of the
18 * Common Development and Distribution License, Version 1.0 only
19 * (the "License"). You may not use this file except in compliance
20 * with the License.
21 *
22 * See the file CDDL.Schily.txt in this distribution for details.
23 *
24 * When distributing Covered Code, include this CDDL HEADER in each
25 * file and include the License file CDDL.Schily.txt from this distribution.
26 */
27
28 #ifndef _SCHILY_STANDARD_H
29 #define _SCHILY_STANDARD_H
30
31 #ifndef _SCHILY_MCONFIG_H
32 #include <schily/mconfig.h>
33 #endif
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 #ifdef M68000
40 # ifndef tos
41 # define JOS 1
42 # endif
43 #endif
44
45 /*
46 * fundamental constants
47 */
48 #ifndef NULL
49 # define NULL 0
50 #endif
51 #ifndef TRUE
52 # define TRUE 1
53 # define FALSE 0
54 #endif
55
56 /*
57 * Program exit codes used with comerr(), comexit() and similar.
58 *
59 * Exit codes between -2 and -63 are currently available to flag
60 * program specific error conditions.
61 */
62 #define EX_BAD (-1) /* Default error exit code */
63 #define EX_CLASH (-64) /* Exit code used with exit clashes */
64
65 /*
66 * standard storage class definitions
67 */
68 #define GLOBAL extern
69 #define IMPORT extern
70 #define EXPORT
71 #define INTERN static
72 #define LOCAL static
73 #define FAST register
74
75 #ifndef PROTOTYPES
76 # ifndef const
77 # define const
78 # endif
79 # ifndef signed
80 # define signed
81 # endif
82 # ifndef volatile
83 # define volatile
84 # endif
85 #endif /* PROTOTYPES */
86
87 /*
88 * standard type definitions
89 *
90 * The hidden Schily BOOL definition is used in case we need to deal
91 * with other BOOL defines on systems we like to port to.
92 */
93 typedef int __SBOOL;
94 typedef int BOOL;
95 #ifdef JOS
96 # ifndef __GNUC__
97 # define NO_VOID
98 # endif
99 #endif
100 #ifdef NO_VOID
101 # ifndef lint
102 typedef int void;
103 # endif
104 #endif
105
106 #if defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(off_t)
107 # ifndef FOUND_OFF_T
108 # define FOUND_OFF_T
109 # endif
110 #endif
111 #if defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(size_t)
112 # ifndef FOUND_SIZE_T
113 # define FOUND_SIZE_T
114 # endif
115 #endif
116 #if defined(_MSC_VER) && !defined(_SIZE_T_DEFINED)
117 # undef FOUND_SIZE_T
118 #endif
119
120 #ifdef __never_def__
121 /*
122 * It turns out that we cannot use the folloginw definition because there are
123 * some platforms that do not behave application friendly. These are mainly
124 * BSD-4.4 based systems (which #undef a definition when size_t is available.
125 * We actually removed this code because of a problem with QNX Neutrino.
126 * For this reason, it is important not to include <sys/types.h> directly but
127 * via the Schily SING include files so we know whether it has been included
128 * before we come here.
129 */
130 #if defined(_SIZE_T) || defined(_T_SIZE_) || defined(_T_SIZE) || \
131 defined(__SIZE_T) || defined(_SIZE_T_) || \
132 defined(_GCC_SIZE_T) || defined(_SIZET_) || \
133 defined(__sys_stdtypes_h) || defined(___int_size_t_h) || defined(size_t)
134
135 #ifndef FOUND_SIZE_T
136 # define FOUND_SIZE_T /* We already included a size_t definition */
137 #endif
138 #endif
139 #endif /* __never_def__ */
140
141 #ifdef __cplusplus
142 }
143 #endif
144
145 #if defined(_JOS) || defined(JOS)
146 # ifndef _SCHILY_SCHILY_H
147 # include <schily/schily.h>
148 # endif
149
150 # ifndef _SCHILY_JOS_DEFS_H
151 # include <schily/jos_defs.h>
152 # endif
153
154 # ifndef _SCHILY_JOS_IO_H
155 # include <schily/jos_io.h>
156 # endif
157 #endif
158
159 #endif /* _SCHILY_STANDARD_H */