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