/************************************************************************/
/* Copyright 1988 MBARI							*/
/************************************************************************/
/* Summary  : General Type Definitions					*/
/* Filename : TYPES.H							*/
/* Author   : Daniel Davis, Gregg Morris				*/
/* Project  : 								*/
/* $Revision: 1.1 $							*/
/* Created  : 03/05/88							*/
/* Modified : 03/27/90							*/
/* Archived :								*/
/*									    */
/* MBARI provides this documentation and code "as is", with no warranty,    */
/* express or implied, of its quality or consistency. It is provided without*/
/* support and without obligation on the part of the Monterey Bay Aquarium  */
/* Research Institute to assist in its use, correction, modification, or    */
/* enhancement. This information should not be published or distributed to  */
/* third parties without specific written permission from MBARI.            */
/*									    */
/************************************************************************/
/* Modification History:						*/
/* 26feb90 rah - added modification history, deleted MSDOS stuff	*/
/* 07mar90 rah - added BitVec						*/
/************************************************************************/

#ifndef MBARI_TYPES

#define MBARI_TYPES	1

#define Extern		extern
#define MLocal		static
#define Global		/**/

#ifndef NULL
#define NULL	((void *)0)
#endif

#ifndef Reg
#define Reg		register
#endif


/*
*	Basic types:
*/
#define Void		void	/* No value returned type		*/

typedef short int	Errno;	/* Error return code			*/

typedef short int	MBool;	/* Bool, i.e. TRUE or FALSE		*/

typedef unsigned char	Char;	/* character, whatever that is - here	*/
				/* it is 8-bit ASCII			*/

typedef unsigned char	Byte;	/* Byte - i.e. 8 bit vector, cannot add */
				/* or subtract, multiply or divide, but */
				/* can perform bit vector operations,	*/
				/* such as OR, XOR, AND, NOT, EQUAL	*/

typedef unsigned short	Word;	/* word - i.e. 16 bit vector		*/

typedef unsigned long	DWord;	/* double word - i.e. 32 bit vector	*/

typedef signed char	Int8;	/* integer, 7 bits of precision with	*/
				/* a sign, for arithmetic operations	*/

typedef short int	Int16;	/* integer, 15 bits of precision with	*/
				/* a sign, for arithmetic operations	*/

typedef long int	Int32;	/* integer, 31 bits of precision with	*/
				/* a sign, for arithmetic operations	*/

typedef int		Int;	/* integer for scratch use, don't care	*/
				/* about size				*/

typedef unsigned short	Nat16;	/* natural number, 16 bits of precision */
				/* for indexing and positive offsets	*/

typedef unsigned long	Nat32;	/* natural number, 32 bits of precision */
				/* for indexing and positive offsets	*/

typedef float		Flt32;	/* floating point number, 32 total bits	*/

typedef double		Flt64;	/* floating point number, 64 total bits	*/

typedef unsigned int	BitVec;	/* For bit vector operations		*/

#endif
