/************************************************************************
 *
 * This file defines all of the platform symbolic names.
 *
 *	Copyright (C) 1999-2008 Cincom Systems, Inc.
 *
 ************************************************************************/

/* The following is a list of all defined platforms.
 *
 * The defined symbols may be used on #if lines for platform code variations.
 * Do not use these symbols in non-platform code.
 *
 * Full 64-bit implementation platforms have a code of 64 or above.
 */

/* Current production platforms */

#define platHPPA			25	/* PA-RISC, HPUX 10 & 11 */
#define platLinux86			40	/* x86 Linux */
#define platLinuxPPC	   	42	/* PowerPC Linux */
#define platLinuxSPARC		43	/* SPARC Linux */
#define platLinuxx86_64		64	/* AMD x86-64, Linux 64-bit OE & OS */
#define platMacX			39	/* PowerPC MacOS X using Aqua WM */
#define platMacXX11			46	/* PowerPC MacOS X using X11 WM */
#define platMacX86			52	/* x86 MacOS X using Aqua WM */
#define platMacX86X11		53	/* x86 MacOS X using X11 WM */
#define platNTPentium		41	/* x86 Pentium or compatible, NT/'95 et al */
#define platPowerMac		32	/* PowerPC MacOS 8 & 9 */
#define platRS6000			21	/* PowerPC AIX */
#define platAix				21	/* a.k.a. PowerPC AIX */
#define platSgi				62	/* MIPS R4000 or better, SGI Irix 6.x */
#define platSolaris4		29	/* Solaris 5.x SPARC32 */
#define platSolaris64		65	/* SPARC64, Solaris 5.x 64-bit OE & OS */
#define platSolaris86       51	/* x86 Solaris10 */
#define platSolarisx86_64	66	/* x86_64, Solaris 10 64-bit OE & OS */
#define platWinCEARM		48	/* StrongARM/XScale, WinCE 4.x */
#define platWinCEEmulator	49	/* Synonym for WinCEPentium */
#define platWinCEPentium	49	/* x86 Pentium or compatible, WinCE 4.x */


/* Prospective or experimental platforms in development */

#define platLinux68k		44	/* m68k Linux */
#define platLinuxARM		45	/* StrongARM/XScale Linux */
#define platLinuxPS2		50	/* MIPS "Emotion Engine" PlayStation/2 Linux Kit */
#define platWin32Pentium	47	/* IA-32 Pentium et al, Win32 no 16-bit */


/* Lapsed platforms */

#define platAOSF			35	/* Alpha AXP OSF 32-bit OE, 64-bit OS	*/
#define platSolaris4SP		31	/* SPARC Solaris4 with mmap shared permspace*/
#define platRS6000power2	38	/* Power2 AIX							*/
#define platSni				63	/* MIPS, Siemens Nixdorf SIENIX 5.x		*/


/* Possible future platforms. */

#define platAix64			67	/* PowerPC 64, AIX 5.x 64-bit OE & OS */
#define platHPPA64			68	/* PA-RISC64, HPUX 11 64-bit OE & OS */
#define platWin64x86_64		69	/* x86-64, Win64 64-bit OE & OS */
#define platSgi64			70	/* MIPS R12000, SGI Irix 6.x 64-bit OE & OS */
#define platMacX64			71	/* PowerPC/x86-64? 64, MacOS X 64-bit OE & OS */

#define platLinuxx86_64SP	74	/* platLinuxx86_64 with mmap shared permspace */
#define platSolaris64SP		75	/* platSolaris64 with mmap shared permspace */
#define platSolarisx86_64SP	76	/* platSolarisx86_64 with mmap shared permspc */
#define platAix64SP			77	/* platAix64 with mmap shared permspace */
#define platHPPA64SP		78	/* platHPPA64 with mmap shared permspace */
#define platWin64x86_64SP	79	/* platWin64x86_64 with mmap shared permspace */
#define platSgi64SP			80	/* platSgi64 with mmap shared permspace */
#define platMacX64SP		81	/* platMacX64 with mmap shared permspace */

/* #define platLinuxESA390	54	IBM ESA/390, Linux */
/* #define platNTMIPS		30	NTMips */
/* #define platOpenVMS		33	DEC VAX */
/* #define platAOSF64		71	Alpha AXP COMPAQ True64 64-bit OE & OS */


/* Obsoleted platforms. */
/* It is almost guaranteed that obsolete platforms will not build or run. */

/* #define platSun2			1		-- obsolete -- */
/* #define platSun3			2		-- obsolete -- */
/* #define platSun4			3		-- obsolete -- */
/* #define platIntel386		4		-- obsolete -- */
/* #define platSun386i		5		-- obsolete -- */
/* #define platSun3X10		6		-- obsolete -- */
/* #define platIsiX10		7		-- obsolete -- */
/* #define platMIPS			8		-- obsolete -- */
/* #define platMSDOS386		9		-- obsolete -- */
/* #define platSun3X		10		-- obsolete -- */
/* #define platSun4X11		11		-- obsolete -- */
/* #define platSun4			12		-- obsolete -- */
/* #define platTitanNil		13		-- obsolete -- */
/* #define platMIPSNil		14		-- obsolete -- */
/* #define platVaxX11		15		-- obsolete -- */
/* #define platDecMips		16		-- obsolete -- */
/* #define platMac			17		-- obsolete -- */
/* #define platHP300		18		-- obsolete -- */
/* #define platSun386iX11	19		-- obsolete -- */
/* #define platApollo		20		-- obsolete -- */
/* #define platSCO386		22		-- obsolete -- */
/* #define platSeq386		23		-- obsolete -- */
/* #define platNeXT			24		-- obsolete -- */
/* #define platNT386		26		-- obsolete -- */
/* #define platOS2			27		-- obsolete -- */
/* #define platWin386		28		-- obsolete -- */
/* #define platANT			34		-- obsolete -- */
/* #define platSun4SP		36		-- obsolete -- */


#define	platNil				99	/* NilPlat */

#ifdef NCUO
#	define platformThumbprint(platCode) ((platCode)|128)
#else
#	define platformThumbprint(platCode) ((platCode)&~128)
#endif
