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