1/* 2------------------------------------------------------------------------------ 3Standard definitions and types, Bob Jenkins 4 5Modified 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) 19typedef unsigned __int64 ub8; 20typedef signed __int64 sb8; 21typedef unsigned __int32 ub4; 22typedef signed __int32 sb4; 23typedef unsigned __int16 ub2; 24typedef signed __int16 sb2; 25typedef unsigned __int8 ub1; 26typedef signed __int8 sb1; 27#else 28typedef unsigned long long ub8; 29typedef signed long long sb8; 30typedef unsigned long int ub4; 31typedef signed long int sb4; 32typedef unsigned short int ub2; 33typedef signed short int sb2; 34typedef unsigned char ub1; 35typedef 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 51typedef 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