/*
 *  Copyright 2001-2008 Texas Instruments - http://www.ti.com/
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */


/*
 *  ======== std.h ========
 *  DSP-BIOS Bridge driver support functions for TI OMAP processors.
 *
 *! Revision History
 *! ================
 *! 16-Feb-2004 vp	GNU compiler 3.x defines inline keyword. Added appropriate 
			macros not to redefine inline keyword in this file.
 *! 24-Oct-2002	ashu	defined _TI_ and _FIXED_ symbols for 28x. 
 *! 24-Oct-2002	ashu	defined _TI_ for 24x. 
 *! 01-Mar-2002 kln	changed LARGE_MODEL and Arg definition for 28x
 *! 01-Feb-2002 kln	added definitions for 28x
 *! 08-Dec-2000 kw:	added 'ArgToInt' and 'ArgToPtr' macros
 *! 30-Nov-2000 mf:	Added _64_, _6x_; removed _7d_
 *! 30-May-2000 srid:	Added   __TMS320C55X__ for 55x; Arg is void * for 55 .
 *! 18-Jun-1999 dr:	Added '_TI_', fixed __inline for SUN4, added inline
 *! 10-Feb-1999 rt:	Added '55' support, changed 54's symbol to _TMS320C5XX
 *! 29-Aug-1998 mf: 	fixed typo, removed obsolete targets
 *! 08-Jun-1998 mf: 	_67_ is synonym for _7d_
 *! 10-Oct-1997 rt;	added _7d_ for Raytheon C7DSP triggered by _TMS320C6700
 *! 04-Aug-1997 cc:	added _29_ for _TMS320C2XX
 *! 11-Jul-1997 dlr:	_5t_, and STD_SPOXTASK keyword for Tasking
 *! 12-Jun-1997 mf: 	_TMS320C60 -> _TMS320C6200
 *! 13-Feb-1997 mf:	_62_, with 32-bit LgInt
 *! 26-Nov-1996 kw: 	merged bios-c00's and wsx-a27's <std.h> changes
 *!			*and* revision history 
 *! 12-Sep-1996 kw: 	added C54x #ifdef's
 *! 21-Aug-1996 mf: 	removed #define main smain for _21_
 *! 14-May-1996 gp:     def'd out INT, FLOAT, and COMPLEX defines for WSX.
 *! 11-Apr-1996 kw:     define _W32_ based on _WIN32 (defined by MS compiler)
 *! 07-Mar-1996 mg:     added Win32 support
 *! 06-Sep-1995 dh:	added _77_ dynamic stack support via fxns77.h
 *! 27-Jun-1995 dh:	added _77_ support
 *! 16-Mar-1995 mf: 	for _21_: #define main smain
 *! 01-Mar-1995 mf: 	set _20_ and _60_ (as well as _21_ for both)
 *! 22-Feb-1995 mf: 	Float is float for _SUN_ and _80_
 *! 22-Dec-1994 mf: 	Added _80_ definition, for PP or MP.
 *! 09-Dec-1994 mf: 	Added _53_ definition.
 *! 22-Nov-1994 mf: 	Ptr is void * everywhere.
 *!			Added definitions of _30_, etc.
 *! 23-Aug-1994 dh	removed _21_ special case (kw)
 *! 17-Aug-1994 dh	added _51_ support
 *! 03-Aug-1994 kw	updated _80_ support
 *! 30-Jun-1994 kw	added _80_ support
 *! 05-Apr-1994 kw:	Added _SUN_ to _FLOAT_ definition
 *! 01-Mar-1994 kw: 	Made Bool an int (was MdUns) for _56_ (more efficient).
 *!			Added _53_ support.
 */

#ifndef STD_
#define STD_

#ifdef _TMS320C28X
#define _28_ 1
#ifdef LARGE_MODEL
#define _28l_ 1
#endif
#endif
#ifdef _TMS320C2XX
#define _29_ 1
#endif
#ifdef _TMS320C30
#define _30_ 1
#endif
#ifdef _TMS320C40
#define _40_ 1
#endif
#ifdef _TMS320C50
#define _50_ 1
#endif
#ifdef _TMS320C5XX
#define _54_ 1
#endif
#ifdef __TMS320C55X__
#define _55_ 1
#ifdef __LARGE_MODEL__
#define _55l_ 1
#endif
#endif
#ifdef _TMS320C6200
#define _62_ 1
#define _6x_ 1
#endif
#ifdef _TMS320C6400
#define _64_ 1
#define _6x_ 1
#endif
#ifdef _TMS320C6700
#define _67_ 1
#define _6x_ 1
#endif
#ifdef M_I86
#define _86_ 1
#endif
#ifdef _MVP_MP
#define _80_ 1
#endif
#ifdef _MVP_PP
#define _80_ 1
#endif
#ifdef _WIN32
#define _W32_ 1
#endif

/*
 *  ======== _TI_ ========
 *  _TI_ is defined for all TI targets
 */
#if defined(_29_) || defined(_30_) || defined(_40_) || defined(_50_) || defined(_54_) || defined(_55_) || defined (_6x_) || defined(_80_) || defined (_28_) || defined(_24_)
#define _TI_	1
#endif

/*
 *  ======== _FLOAT_ ========
 *  _FLOAT_ is defined for all targets that natively support floating point
 */
#if defined(_SUN_) || defined(_30_) || defined(_40_) || defined(_67_) || defined(_80_)
#define _FLOAT_	1
#endif

/*
 *  ======== _FIXED_ ========
 *  _FIXED_ is defined for all fixed point target architectures
 */
#if defined(_29_) || defined(_50_) || defined(_54_) || defined(_55_) || defined (_62_) || defined(_64_) || defined (_28_)
#define _FIXED_	1
#endif

/*
 *  ======== _TARGET_ ========
 *  _TARGET_ is defined for all target architectures (as opposed to
 *  host-side software)
 */
#if defined(_FIXED_) || defined(_FLOAT_)
#define _TARGET_ 1
#endif

/*
 *  8, 16, 32-bit type definitions
 *
 *  Sm*	- 8-bit type
 *  Md* - 16-bit type
 *  Lg* - 32-bit type
 *
 *  *Int - signed type
 *  *Uns - unsigned type
 *  *Bits - unsigned type (bit-maps)
 */
typedef char SmInt;		/* SMSIZE-bit signed integer */
typedef short MdInt;		/* MDSIZE-bit signed integer */
#if defined(_6x_)
typedef int LgInt;		/* LGSIZE-bit signed integer */
#else
typedef long LgInt;		/* LGSIZE-bit signed integer */
#endif

typedef unsigned char SmUns;	/* SMSIZE-bit unsigned integer */
typedef unsigned short MdUns;	/* MDSIZE-bit unsigned integer */
#if defined(_6x_)
typedef unsigned LgUns;		/* LGSIZE-bit unsigned integer */
#else
typedef unsigned long LgUns;	/* LGSIZE-bit unsigned integer */
#endif

typedef unsigned char SmBits;	/* SMSIZE-bit bit string */
typedef unsigned short MdBits;	/* MDSIZE-bit bit string */
#if defined(_6x_)
typedef unsigned LgBits;	/* LGSIZE-bit bit string */
#else
typedef unsigned long LgBits;	/* LGSIZE-bit bit string */
#endif

/*
 *  Aliases for standard C types
 */
typedef int Int;		/* for those rare occasions */
typedef long int Long;
typedef short int Short;
typedef char Char;
#define Void void

typedef char *String;		/* pointer to null-terminated character
				 * sequence
				 */

#if defined(_28_) || defined(_29_) || defined(_50_) || defined(_54_) || defined(_55_) || defined(_6x_)
typedef unsigned Uns;
#else
typedef unsigned long Uns;
#endif

#if defined(_80_)
typedef int Bool;		/* boolean */
#elif defined(_W32_)
typedef long Bool;		/* boolean to match Windows boolean def */
#else
typedef MdUns Bool;		/* boolean */
#endif

typedef SmBits Byte;		/* smallest unit of addressable store */
typedef void *Ptr;		/* pointer to arbitrary type */

/* Arg should be size of Ptr */
#if defined(M_I86SM) || defined(_29_) || defined(_50_) || defined(_54_) || defined(_6x_)
typedef Int Arg;
#elif defined(_55_) || defined(_28_)
typedef void *Arg;
#else
typedef LgInt Arg;		/* uninterpreted LGSIZE-bit word */
#endif

typedef Int(*Fxn) ();		/* generic function type */

#if defined(_80_) || defined(_SUN_) || defined(_67_)
typedef float Float;
#else
typedef double Float;
#endif

#ifndef NULL
#define NULL 0
#endif

#ifndef TRUE
#define FALSE ((Bool)0)
#define TRUE  ((Bool)1)
#endif

/*
 * These macros are used to cast 'Arg' types to 'Int' or 'Ptr'.
 * These macros were added for the 55x since Arg is not the same
 * size as Int and Ptr in 55x large model.
 */
#if defined(_28l_) || defined(_55l_)
#define ArgToInt(A)	((Int)((long)(A) & 0xffff))
#define ArgToPtr(A)	((Ptr)(A))
#else
#define ArgToInt(A)	((Int)(A))
#define ArgToPtr(A)	((Ptr)(A))
#endif

/*
 *  ======== __inline ========
 *  The following definitions define the macro __inline for those
 *  C compilers that do not use __inline to indicate inline
 *  expansion of functions.
 *
 *  The TI C compilers support the "inline" keyword (ala C++).  Both 
 *  Microsoft and GNU C compilers support the "__inline" keyword.  The
 *  native SUN OS 4.x C compiler doesn't understand either.
 */
#ifdef _TI_
#ifdef _LINT_
#define __inline
#else
#define __inline inline
#endif
#endif

#ifdef _SUN4_
#define __inline
#endif

/*
 *  ======== inline ========
 *  Define "inline" so that all C code can optionally use the "inline"
 *  keyword. don't define if we are compiling with GNU C compiler version greater than 3.x
 */
#if !defined(inline) && !defined(__cplusplus) && !defined(_TI_)
#if !((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
#define inline	__inline
#endif
#endif

#endif				/* STD_ */
