1 /*
2 ------------------------------------------------------------------------------
3 Standard definitions and types, Bob Jenkins
4 
5 Modified by Pat Thoyts for MSVC++ compatability.
6 ------------------------------------------------------------------------------
7 */
8 #ifndef STANDARD
9 # define STANDARD
10 # ifndef STDIO
11 #  include <stdio.h>
12 #  define STDIO
13 # endif
14 # ifndef STDDEF
15 #  include <stddef.h>
16 #  define STDDEF
17 # endif
18 #if (_MSC_VER >= 1000)
19 typedef  unsigned __int64  ub8;
20 typedef    signed __int64  sb8;
21 typedef  unsigned __int32  ub4;
22 typedef    signed __int32  sb4;
23 typedef  unsigned __int16  ub2;
24 typedef    signed __int16  sb2;
25 typedef  unsigned __int8   ub1;
26 typedef    signed __int8   sb1;
27 #else
28 typedef  unsigned long long  ub8;
29 typedef    signed long long  sb8;
30 typedef  unsigned long  int  ub4;
31 typedef    signed long  int  sb4;
32 typedef  unsigned short int  ub2;
33 typedef    signed short int  sb2;
34 typedef  unsigned       char ub1;
35 typedef    signed       char sb1;
36 #endif
37 
38 #define UB8MAXVAL 0xffffffffffffffffLL
39 #define UB8BITS 64
40 #define SB8MAXVAL 0x7fffffffffffffffLL
41 #define UB4MAXVAL 0xffffffff
42 #define UB4BITS 32
43 #define SB4MAXVAL 0x7fffffff
44 #define UB2MAXVAL 0xffff
45 #define UB2BITS 16
46 #define SB2MAXVAL 0x7fff
47 #define UB1MAXVAL 0xff
48 #define UB1BITS 8
49 #define SB1MAXVAL 0x7f
50 
51 typedef                 int  word;  /* fastest type available */
52 
53 #define bis(target,mask)  ((target) |=  (mask))
54 #define bic(target,mask)  ((target) &= ~(mask))
55 #define bit(target,mask)  ((target) &   (mask))
56 #ifndef min
57 # define min(a,b) (((a)<(b)) ? (a) : (b))
58 #endif /* min */
59 #ifndef max
60 # define max(a,b) (((a)<(b)) ? (b) : (a))
61 #endif /* max */
62 #ifndef align
63 # define align(a) (((ub4)a+(sizeof(void *)-1))&(~(sizeof(void *)-1)))
64 #endif /* align */
65 #ifndef abs
66 # define abs(a)   (((a)>0) ? (a) : -(a))
67 #endif
68 #define TRUE  1
69 #define FALSE 0
70 #define SUCCESS 0  /* 1 on VAX */
71 
72 #endif /* STANDARD */
73