]> git.saurik.com Git - apple/objc4.git/blob - runtime/standard.h
objc4-371.1.tar.gz
[apple/objc4.git] / runtime / standard.h
1 /*
2 ------------------------------------------------------------------------------
3 Standard definitions and types, Bob Jenkins
4 ------------------------------------------------------------------------------
5 */
6 #ifndef STANDARD
7 # define STANDARD
8
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <stdint.h>
12 #include <string.h>
13
14 typedef uint64_t ub8;
15 #define UB8MAXVAL 0xffffffffffffffffLL
16 #define UB8BITS 64
17 typedef int64_t sb8;
18 #define SB8MAXVAL 0x7fffffffffffffffLL
19 typedef uint32_t ub4; /* unsigned 4-byte quantities */
20 #define UB4MAXVAL 0xffffffff
21 typedef int32_t sb4;
22 #define UB4BITS 32
23 #define SB4MAXVAL 0x7fffffff
24 typedef uint16_t ub2;
25 #define UB2MAXVAL 0xffff
26 #define UB2BITS 16
27 typedef int16_t sb2;
28 #define SB2MAXVAL 0x7fff
29 typedef uint8_t ub1;
30 #define UB1MAXVAL 0xff
31 #define UB1BITS 8
32 typedef int8_t sb1; /* signed 1-byte quantities */
33 #define SB1MAXVAL 0x7f
34 typedef int word; /* fastest type available */
35
36 #define bis(target,mask) ((target) |= (mask))
37 #define bic(target,mask) ((target) &= ~(mask))
38 #define bit(target,mask) ((target) & (mask))
39 #ifndef min
40 # define min(a,b) (((a)<(b)) ? (a) : (b))
41 #endif /* min */
42 #ifndef max
43 # define max(a,b) (((a)<(b)) ? (b) : (a))
44 #endif /* max */
45 #ifndef align
46 # define align(a) (((ub4)a+(sizeof(void *)-1))&(~(sizeof(void *)-1)))
47 #endif /* align */
48 #ifndef abs
49 # define abs(a) (((a)>0) ? (a) : -(a))
50 #endif
51 #define TRUE 1
52 #define FALSE 0
53
54 #endif /* STANDARD */