/* Various type definitions
 *
 * whs_types.h
 *
 * By W.H.Scholten 1996-1998
 *
 * This file is in the public domain.
 */


#ifndef _WHS__whs_types_h
#define _WHS__whs_types_h

/* use POSIX int16_t/u_int16_t etc ? */

typedef unsigned char	byte;
typedef signed char		sbyte;

typedef signed char		int8;	/* =sbyte */
typedef short			int16;
typedef int				int32;

typedef unsigned char	uint8;	/* =byte */
typedef unsigned short	uint16;
typedef unsigned int	uint32;

typedef unsigned char	u8;	/* =byte */
typedef unsigned short	u16;
typedef unsigned int	u32;

typedef float           float32;
typedef double          float64;
typedef long double     float80;


/* Extended range types */
#if defined(HAVE_LONG_64) || defined(HAVE_LONG_LONG_64)
#  define HAVE_INT64
#endif

#ifdef HAVE_LONG_64 /* For 64 bit machines */
typedef   unsigned long        uint64;
typedef   long                 int64;
#endif
#ifdef HAVE_LONG_LONG_64 /* For 32 bit machines */
typedef   unsigned long long   uint64;
typedef   long long            int64;
#endif

typedef int		boolean; /* Could use byte */

#ifndef False
#  define 	False	0
#endif
#ifndef True
#  define	True	1
#endif


#endif /* _WHS__whs_types_h */
