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