1 #ifndef EXEC_TYPES_H 2 #define EXEC_TYPES_H 3 4 /* 5 exec type definitions (V50) 6 7 Copyright © 2002 The MorphOS Development Team, All Rights Reserved. 8 */ 9 10 #define INCLUDE_VERSION 50 11 12 #define GLOBAL extern 13 #define IMPORT extern 14 #define STATIC static 15 #define REGISTER register 16 17 #ifndef VOID 18 #define VOID void 19 #endif 20 21 #ifndef CONST 22 #if __STDC__ 23 #define CONST const 24 #else 25 #define CONST 26 #endif 27 #endif 28 29 #ifndef VOLATILE 30 #if __STDC__ 31 #define VOLATILE volatile 32 #else 33 #define VOLATILE 34 #endif 35 #endif 36 37 38 #ifndef APTR_TYPEDEF 39 #define APTR_TYPEDEF 40 typedef void *APTR; 41 #endif 42 typedef CONST void *CONST_APTR; 43 44 45 #ifndef LONG_TYPEDEF 46 #define LONG_TYPEDEF 47 typedef long LONG; 48 #endif 49 50 #ifndef ULONG_TYPEDEF 51 #define ULONG_TYPEDEF 52 typedef unsigned long ULONG; 53 #endif 54 55 #ifndef LONGBITS_TYPEDEF 56 #define LONGBITS_TYPEDEF 57 typedef unsigned long LONGBITS; 58 #endif 59 60 #ifndef WORD_TYPEDEF 61 #define WORD_TYPEDEF 62 typedef short WORD; 63 #endif 64 65 #ifndef UWORD_TYPEDEF 66 #define UWORD_TYPEDEF 67 typedef unsigned short UWORD; 68 #endif 69 70 #ifndef WORDBITS_TYPEDEF 71 #define WORDBITS_TYPEDEF 72 typedef unsigned short WORDBITS; 73 #endif 74 75 #ifndef QUAD_TYPEDEF 76 #define QUAD_TYPEDEF 77 typedef signed long long QUAD; 78 #endif 79 80 #ifndef UQUAD_TYPEDEF 81 #define UQUAD_TYPEDEF 82 typedef unsigned long long UQUAD; 83 #endif 84 85 #ifndef BYTE_TYPEDEF 86 #define BYTE_TYPEDEF 87 #if __STDC__ 88 typedef signed char BYTE; 89 #else 90 typedef char BYTE; 91 #endif 92 #endif 93 94 #ifndef UBYTE_TYPEDEF 95 #define UBYTE_TYPEDEF 96 typedef unsigned char UBYTE; 97 #endif 98 99 #ifndef BYTEBITS_TYPEDEF 100 #define BYTEBITS_TYPEDEF 101 typedef unsigned char BYTEBITS; 102 #endif 103 104 #ifndef RPTR_TYPEDEF 105 #define RPTR_TYPEDEF 106 typedef unsigned short RPTR; 107 #endif 108 109 #ifndef STRPTR_TYPEDEF 110 #define STRPTR_TYPEDEF 111 #ifdef __cplusplus 112 typedef char *STRPTR; 113 typedef CONST char *CONST_STRPTR; 114 #else 115 #if defined(__GNUC__) && __GNUC__ >= 4 116 typedef char *STRPTR; 117 typedef CONST char *CONST_STRPTR; 118 #else 119 typedef unsigned char *STRPTR; 120 typedef CONST unsigned char *CONST_STRPTR; 121 #endif 122 #endif 123 #endif 124 125 #ifndef WSTRPTR_TYPEDEF 126 #define WSTRPTR_TYPEDEF 127 typedef int *WSTRPTR; 128 typedef CONST int *CONST_WSTRPTR; 129 #endif 130 131 #ifndef SHORT_TYPEDEF 132 #define SHORT_TYPEDEF 133 typedef short SHORT; 134 #endif 135 136 #ifndef USHORT_TYPEDEF 137 #define USHORT_TYPEDEF 138 typedef unsigned short USHORT; 139 #endif 140 141 #ifndef COUNT_TYPEDEF 142 #define COUNT_TYPEDEF 143 typedef short COUNT; 144 #endif 145 146 #ifndef UCOUNT_TYPEDEF 147 #define UCOUNT_TYPEDEF 148 typedef unsigned short UCOUNT; 149 #endif 150 151 #ifndef CPTR_TYPEDEF 152 #define CPTR_TYPEDEF 153 typedef ULONG CPTR; 154 #endif 155 156 #ifndef FLOAT_TYPEDEF 157 #define FLOAT_TYPEDEF 158 typedef float FLOAT; 159 #endif 160 161 #ifndef DOUBLE_TYPEDEF 162 #define DOUBLE_TYPEDEF 163 typedef double DOUBLE; 164 #endif 165 166 #ifndef BOOL_TYPEDEF 167 #define BOOL_TYPEDEF 168 typedef short BOOL; 169 #endif 170 171 #ifndef TEXT_TYPEDEF 172 #define TEXT_TYPEDEF 173 typedef unsigned char TEXT; 174 #endif 175 176 #ifndef WCHAR_TYPEDEF 177 #define WCHAR_TYPEDEF 178 typedef int WCHAR; 179 #endif 180 181 #if defined(__VEC__) 182 /* 183 * Vectors 184 */ 185 #if (((__GNUC__ >= 3) && (__GNUC__ < 5)) || defined(__STRICT_ANSI__)) && !defined(vector) 186 #define vector __vector 187 #define _vector_workaround_defined 188 #endif 189 190 #ifndef VECTOR_ULONG_TYPEDEF 191 #define VECTOR_ULONG_TYPEDEF 192 typedef vector unsigned int VECTOR_ULONG; 193 #endif 194 195 #ifndef VECTOR_LONG_TYPEDEF 196 #define VECTOR_LONG_TYPEDEF 197 typedef vector signed int VECTOR_LONG; 198 #endif 199 200 #ifndef VECTOR_UWORD_TYPEDEF 201 #define VECTOR_UWORD_TYPEDEF 202 typedef vector unsigned short VECTOR_UWORD; 203 #endif 204 205 #ifndef VECTOR_WORD_TYPEDEF 206 #define VECTOR_WORD_TYPEDEF 207 typedef vector signed short VECTOR_WORD; 208 #endif 209 210 #ifndef VECTOR_UBYTE_TYPEDEF 211 #define VECTOR_UBYTE_TYPEDEF 212 typedef vector unsigned char VECTOR_UBYTE; 213 #endif 214 215 #ifndef VECTOR_BYTE_TYPEDEF 216 #define VECTOR_BYTE_TYPEDEF 217 typedef vector signed char VECTOR_BYTE; 218 #endif 219 220 #ifndef VECTOR_FLOAT_TYPEDEF 221 #define VECTOR_FLOAT_TYPEDEF 222 typedef vector float VECTOR_FLOAT; 223 #endif 224 225 #if (((__GNUC__ >= 3) && (__GNUC__ < 5)) || defined(__STRICT_ANSI__)) && defined(_vector_workaround_defined) 226 #undef vector 227 #undef _vector_workaround_defined 228 #endif 229 230 #endif /* __VEC__ */ 231 232 #ifndef TRUE 233 #define TRUE 1 234 #endif 235 #ifndef FALSE 236 #define FALSE 0 237 #endif 238 #ifndef NULL 239 #define NULL 0 240 #endif 241 242 243 /* Some AROS stuff */ 244 245 typedef unsigned long IPTR; 246 typedef long SIPTR; 247 248 typedef IPTR STACKIPTR; 249 typedef SIPTR STACKSIPTR; 250 typedef LONG STACKLONG; 251 typedef ULONG STACKULONG; 252 typedef QUAD STACKQUAD; 253 typedef UQUAD STACKUQUAD; 254 255 typedef signed int STACKWORD; 256 typedef unsigned int STACKUWORD; 257 typedef signed int STACKBYTE; 258 typedef unsigned int STACKUBYTE; 259 typedef double STACKFLOAT; 260 261 262 #define BYTEMASK 0xff 263 264 265 #define LIBRARY_MINIMUM 33 266 267 #if __STDC__ 268 #define __CLIB_PROTOTYPE(a) a 269 #else 270 #define __CLIB_PROTOTYPE(a) 271 #endif 272 273 #endif