/***************************************************************************
 *
 *                         INFORMIX SOFTWARE, INC.
 *
 *                            PROPRIETARY DATA
 *
 *      THIS DOCUMENT CONTAINS TRADE SECRET DATA WHICH IS THE PROPERTY OF
 *      INFORMIX SOFTWARE, INC.  THIS DOCUMENT IS SUBMITTED TO RECIPIENT IN
 *      CONFIDENCE.  INFORMATION CONTAINED HEREIN MAY NOT BE USED, COPIED OR
 *      DISCLOSED IN WHOLE OR IN PART EXCEPT AS PERMITTED BY WRITTEN AGREEMENT
 *      SIGNED BY AN OFFICER OF INFORMIX SOFTWARE, INC.
 *
 *      THIS MATERIAL IS ALSO COPYRIGHTED AS AN UNPUBLISHED WORK UNDER
 *      SECTIONS 104 AND 408 OF TITLE 17 OF THE UNITED STATES CODE.
 *      UNAUTHORIZED USE, COPYING OR OTHER REPRODUCTION IS PROHIBITED BY LAW.
 *
 *
 *  Title:      ifxtypes.h
 *  Description:
 *              Informix data types
 *
 ***************************************************************************
 */

#ifndef _IFXTYPES_H_
#define _IFXTYPES_H_

#ifndef _MITYPES_INCL

#define _MITYPES_INCL

/* Warning: Do not delete line below. Delimits ESQL/C predefined types */
/* ESQLC_PREDEFS */
/* typedef's in this section must start with "typedef" in the first column */
/* and the have the complete statment on one line. */

/************************************************************************
 * Define standard 1 byte, 2 byte, and 4 byte integers
 */

/* The int4/int2/int1 types are defined under _MITYPES_INCL 
 * to ensure compatibilty  with 9.14
 */
typedef long            int4;
typedef short           int2;
typedef char            int1;
 
typedef int             mint;
typedef long            mlong;

/************************************************************************
 * Define standard machine dependent types - a way of mapping data types
 * to various machine specific data types. One of the reasons is to
 * support write atomicity for all primary data types. For example,
 * write atomicities for short and char are not supported on DEC ALPHA.
 * If write atomicity is required for some variables or components of data
 * structures, one can define them as MSHORT or MCHAR and map MSHORT or
 * MCHAR in ifxtypes.h to other type for which write atomicity is supported.
 *
 */
typedef short           MSHORT;
typedef char            MCHAR;
 
/* ESQLC_PREDEFS */
/* Warning: Do not delete line above. Delimits ESQL/C predefined types */

/************************************************************************
 * Define standard unsigned integers.
 */

/* The unsigned int4/int2/int1 types are defined under _MITYPES_INCL 
 * to ensure compatibilty with 9.14
 */
typedef unsigned long   uint4;
typedef unsigned short  uint2;
typedef unsigned char   uint1;

#endif /* _MITYPES_INCL */

typedef unsigned int    muint;
typedef unsigned long   mulong;

/************************************************************************
 * Define standard unsigned machine dependent types.
 */
typedef unsigned short  MUSHORT;
typedef unsigned char   MUCHAR;

#define MI_INT_SIZE     32
#define MI_LONG_SIZE    32
#define MI_PTR_SIZE     32

#endif /* _IFXTYPES_H_ */
