You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

610 lines
20 KiB
C

1 year ago
/************************************************************************/
/* SISCO SOFTWARE MODULE HEADER *****************************************/
/************************************************************************/
/* (c) Copyright Systems Integration Specialists Company, Inc., */
/* 1986 - 2004, All Rights Reserved. */
/* */
/* PROPRIETARY AND CONFIDENTIAL */
/* */
/* MODULE NAME : glbtypes.h */
/* PRODUCT(S) : MMSEASE */
/* */
/* MODULE DESCRIPTION : */
/* */
/* GLOBAL FUNCTIONS DEFINED IN THIS MODULE : */
/* */
/* MODIFICATION LOG : */
/* Date Who Rev Comments */
/* -------- --- ------ ------------------------------------------- */
/* 02/12/04 JRB 27 Disable ST_CONST for LINUX. */
/* 01/08/04 EJV 26 Checked SD_BIG_ENDIAN on sun, rem pragma msg.*/
/* 12/09/03 JRB 25 Add LYNX, don't def ST_CONST for LYNX. */
/* 02/19/03 JRB 24 Define SD_BYTE_ORDER for each system. */
/* 02/19/03 JRB 23 Del VAX-VMS & PSOS code. */
/* 02/17/03 CRM 22 Added "defined(linux)" code. */
/* 02/17/03 JRB 21 Del unsupported __IC86__ */
/* Del obsolete DEBUG_MMS, DEBUG_SUIC, etc. */
/* Del NEW_SYSTEM.. defines (not very useful). */
/* 02/27/02 JRB 20 Include compiler option file "glbopt.h". */
/* 10/05/01 EJV 19 sun supports ST_INT64 (long long) */
/* 01/02/01 EJV 18 disabled SD_CONST macro for _AIX */
/* enabled SD_CONST macro for QNX */
/* 06/16/00 JRB 17 Define "*INT64" only if INT64_SUPPORT defined*/
/* 03/13/00 MDE 16 disabled SD_CONST macro for WIN32 */
/* 09/24/99 JRB 15 disabled SD_CONST macro for QNX */
/* 09/13/99 MDE 14 Added SD_CONST modifiers */
/* 04/14/99 MDE 13 Changed SYSTEM_SEL defines */
/* 01/19/99 EJV 12 AIX: Added 64 bit integer support */
/* 08/26/98 EJV 11 Deleted CPU_SEL and all releated defines. */
/* __hpux supports 64-bit integers. */
/* Eliminated spaces at the end of lines. */
/* 02/09/98 RKR 10 Removed PRODUCT_ONLY_VMS_ALPHA */
/* 01/23/98 EJV 09 Digital UNIX: revised. */
/* 12/11/97 JRB 08 Cleaned up PSOS ifdefs. Define PSOS_SYSTEM */
/* to compile. Use new SYSTEM_SEL=SYS_PSOS. */
/* 12/11/97 JRB 07 Deleted _MRI ifdef (for Modicon/MICROTEC) */
/* Deleted EMBEDDED_6800 SYSTEM_SEL. */
/* 10/27/97 EJV 06 AIX: revised types, deleted pragma message() */
/* 09/23/97 JRB 05 QNX: pragma stops unused symbol warnings. */
/* 08/16/97 EJV 04 For QNX corrected ST_INT16, ST_UINT16. */
/* 08/15/97 JRB 03 Use MOTO_68000 consistently. */
/* 08/13/97 EJV 02 Changed #if (A && B) statements to avoid */
/* warning if A or B has not been defined. */
/* 06/20/97 MDE 01 Added 64 bit integer support for 95/NT */
/* 04/02/97 DTL 7.00 MMSEASE 7.0 release. See MODL70.DOC for */
/* history. */
/************************************************************************/
#ifndef GBLTYPES_INCLUDED
#define GBLTYPES_INCLUDED
#pragma pack(1)/*added by wwl:2005-8-27 10:13*/
#include "glbopt.h" /* Global compiler options. */
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************/
/************************************************************************/
/************************************************************************/
/* General purpose defines, same for all platforms */
#define SD_TRUE 1
#define SD_FALSE 0
#define SD_SUCCESS 0
#define SD_FAILURE 1
#define SD_BIG_ENDIAN 0
#define SD_LITTLE_ENDIAN 1
/* Define used for 'const' modifier */
#if defined(MMS_LITE) && !defined(FOUNDRY) && !defined(_WIN32) && \
!defined(_AIX) && !defined(__LYNX) && !defined(linux)
#define SD_CONST const
#else
#define SD_CONST
#endif
/************************************************************************/
/************************************************************************/
/************************************************************************/
/************************************************************************/
/* SYSTEM_SEL defines - bit masked */
#define SYSTEM_SEL_MSOFT 0x0001
#define SYSTEM_SEL_OS2 0x0008
#define SYSTEM_SEL_OPEN_VMS 0x0010
#define SYSTEM_SEL_SYS_5 0x0020
#define SYSTEM_SEL_SYS_BSD 0x0040
#define SYSTEM_SEL_QNX_C86 0x0100
#define SYSTEM_SEL_SYSVXWORKS 0x0800
#define SYSTEM_SEL_SYS_QNX4 0x1000
/* For backwards compatibility only, do not use. Will be deleted soon. */
#if !defined(MSOFT)
#define MSOFT SYSTEM_SEL_MSOFT
#endif
#if !defined(OS2)
#define OS2 SYSTEM_SEL_OS2
#endif
#if !defined(OPEN_VMS)
#define OPEN_VMS SYSTEM_SEL_OPEN_VMS
#endif
#if !defined(SYS_5)
#define SYS_5 SYSTEM_SEL_SYS_5
#endif
#if !defined(SYS_BSD)
#define SYS_BSD SYSTEM_SEL_SYS_BSD
#endif
#if !defined(QNX_C86)
#define QNX_C86 SYSTEM_SEL_QNX_C86
#endif
#if !defined(SYSVXWORKS)
#define SYSVXWORKS SYSTEM_SEL_SYSVXWORKS
#endif
#if !defined(SYS_QNX4)
#define SYS_QNX4 SYSTEM_SEL_SYS_QNX4
#endif
/************************************************************************/
/************************************************************************/
/* SYSTEM and CPU select defines. These are based on built in compiler */
/* defines which allow automatic detection of the compiler. */
/************************************************************************/
/************************************************************************/
/* MS-DOS and WINDOWS */
/************************************************************************/
#if defined(MSDOS) || defined(__MSDOS__) /* Microsoft or Borland */
#if !defined(_WINDOWS) && !defined(_Windows)
#define PLAIN_DOS /* straight and pure DOS */
#endif
#define SD_BYTE_ORDER SD_LITTLE_ENDIAN
#define SYSTEM_SEL SYSTEM_SEL_MSOFT
#define SD_END_STRUCT
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
/* SD_TRUE or SD_FALSE only */
#define ST_BOOLEAN unsigned char
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* WINDOWS 95/NT */
/************************************************************************/
#if defined(_WIN32) /* VC++, 32-Bit */
#define SD_BYTE_ORDER SD_LITTLE_ENDIAN
#define SYSTEM_SEL SYSTEM_SEL_MSOFT
#define SD_END_STRUCT
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_INT64 __int64
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_UINT64 __int64
#define ST_BOOLEAN unsigned char
/* This define shows that we really have support for 64 bit integers */
#define INT64_SUPPORT
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* OS/2 - IBM C/SET2 and C/SET++ */
/************************************************************************/
#if defined(__OS2__) /* IBM C Set/2 */
#pragma message("Please look over the OS/2 system detect & defines")
#pragma data_seg(alldata)
#define SD_BYTE_ORDER SD_LITTLE_ENDIAN
#define SYSTEM_SEL SYSTEM_SEL_OS2
#define SD_END_STRUCT
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_BOOLEAN unsigned char
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* SUN */
/************************************************************************/
#if defined(sun) /* SUN */
#define SD_BYTE_ORDER SD_BIG_ENDIAN
#define SYSTEM_SEL SYS_5
#define SD_END_STRUCT long end_of; /* force struct to quad word allign */
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_INT64 signed long long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_UINT64 unsigned long long
#define ST_BOOLEAN unsigned char
/* This define shows that we really have support for 64 bit integers */
#define INT64_SUPPORT
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* AIX */
/************************************************************************/
#if defined(_AIX) /* AIX */
#define SD_BYTE_ORDER SD_BIG_ENDIAN
#define SYSTEM_SEL SYS_5
#define SD_END_STRUCT long end_of; /* force struct to quad word allign */
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_INT64 signed long long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_UINT64 unsigned long long
#define ST_BOOLEAN unsigned char
/* This define shows that we really have support for 64 bit integers */
#define INT64_SUPPORT
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* OpenVMS AXP */
/************************************************************************/
#if defined(__ALPHA) && defined(__VMS) /* OpenVMS AXP uses DECC*/
#define SD_BYTE_ORDER SD_LITTLE_ENDIAN
#define SYSTEM_SEL SYSTEM_SEL_OPEN_VMS
#define SD_END_STRUCT long end_of;
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_BOOLEAN unsigned char
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* Digital UNIX */
/************************************************************************/
#if defined(__alpha) && !defined(__VMS)
#define SD_BYTE_ORDER SD_LITTLE_ENDIAN
#define SYSTEM_SEL SYSTEM_SEL_SYS_5
#define SD_END_STRUCT long end_of;
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed int
#define ST_INT64 signed long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned int
#define ST_UINT64 unsigned long
#define ST_BOOLEAN unsigned char
/* This define shows that we really have support for 64 bit integers */
#define INT64_SUPPORT
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* VXWORKS - VXWORKS on Motorola 680x0 processor */
/************************************************************************/
#if defined(VXWORKS)
#define SD_BYTE_ORDER SD_BIG_ENDIAN
#define SYSTEM_SEL SYSTEM_SEL_SYSVXWORKS
#define SD_END_STRUCT
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_BOOLEAN unsigned char
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* QNX */
/************************************************************************/
#ifdef __QNX__ /* This should be defined automatically by compiler. */
#pragma off (unreferenced) /* don't warn about unused symbols. */
#define SD_BYTE_ORDER SD_LITTLE_ENDIAN
#define SYSTEM_SEL SYSTEM_SEL_SYS_QNX4
#define SD_END_STRUCT
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_BOOLEAN unsigned char
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* HP-UX */
/************************************************************************/
#if defined(__hpux) /* HP-UX */
#define SD_BYTE_ORDER SD_BIG_ENDIAN
#define SYSTEM_SEL SYS_5
#define SD_END_STRUCT long end_of; /* force struct to quad word allign */
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_INT64 signed long long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_UINT64 unsigned long long
#define ST_BOOLEAN unsigned char
/* This define shows that we really have support for 64 bit integers */
#define INT64_SUPPORT
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif
/************************************************************************/
/* LINUX SYSTEM */
/* OR LYNXOS SYSTEM (same types) */
/************************************************************************/
#if defined(linux) || defined(__LYNX)
#define SD_BYTE_ORDER SD_LITTLE_ENDIAN
#define SD_END_STRUCT
/* We can tolerate machine-dependent sizes for these types */
#define ST_CHAR char
#define ST_INT signed int
#define ST_LONG signed long int
#define ST_UCHAR unsigned char
#define ST_UINT unsigned int
#define ST_ULONG unsigned long
#define ST_VOID void
#define ST_DOUBLE double
#define ST_FLOAT float
/* General purpose return code */
#define ST_RET signed int
/* We need specific sizes for these types */
#define ST_INT8 signed char
#define ST_INT16 signed short
#define ST_INT32 signed long
#define ST_INT64 signed long long
#define ST_UINT8 unsigned char
#define ST_UINT16 unsigned short
#define ST_UINT32 unsigned long
#define ST_UINT64 unsigned long long
#define ST_BOOLEAN unsigned char
/* This define shows that we really have support for 64 bit integers */
#define INT64_SUPPORT
/* This define shows that we have supplied all required */
#define _SISCOTYPES_DEFINED
#endif /* linux */
/************************************************************************/
/************************************************************************/
/* Make sure that this module has identified the target system */
#if !defined(_SISCOTYPES_DEFINED)
#error Warning: System not correctly identified by glbtypes.h
#endif
#if !defined(SD_BYTE_ORDER)
#error SD_BYTE_ORDER not defined
#endif
/************************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* #ifndef GBLTYPES_INCLUDED */