The data types that are used in the parameter tables for each ILE CEE API are defined in Data Type Definitions across ILE Languages. The information in the ILE RPG column assumes RPG D-Specification coding.
Data Type Definitions across ILE Languages
Data Type | Description | ILE C | ILE COBOL | ILE RPG | ||
---|---|---|---|---|---|---|
CHAR | A 1-byte unsigned character | typedef unsigned char _CHAR; |
PIC X |
blank or A in data type column To/L of 1 |
||
UCHAR | A 1-byte unsigned character | typedef unsigned char _UCHAR; |
PIC X |
blank or A in data type column To/L of 1 |
||
SCHAR | A 1-byte signed character | typedef signed char _SCHAR; |
PIC X |
blank or A in data type column To/L of 1 |
||
INT2 | A 2-byte signed integer | typedef signed short _INT2; |
PIC S9(4) BINARY |
I in data type column To/L of 5 decimal positions = 0 |
||
UINT2 | A 2-byte unsigned integer | typedef unsigned short _UINT2; |
PIC 9(4) BINARY |
U in data type column To/L of 5 decimal positions = 0 |
||
INT4 | A 4-byte signed integer | typedef signed int _INT4; |
PIC S9(9) BINARY |
I in data type column To/L of 10 decimal positions = 0 |
||
UINT4 | A 4-byte unsigned integer | typedef unsigned int _UINT4; |
PIC 9(9) BINARY |
U in data type column To/L of 10 decimal positions = 0 |
||
FLOAT4 | A 4-byte single-precision floating-point number | typedef float _FLOAT4; |
COMP-1 |
F in data type column To/L of 4 |
||
FLOAT8 | An 8-byte double-precision floating-point number | typedef double _FLOAT8; |
COMP-2 |
F in data type column To/L of 8 |
||
COMPLEX8 | An 8-byte complex number, whose real and imaginary parts are each 4-byte single-precision floating-point numbers. Used only by ILE math routines. |
typedef struct { float real, imaginary; } _COMPLEX8; |
01 complex8 02 real comp-1 02 imag comp-1 |
Name To/L Entry Entry complex8 DS real 4F imaginary 4F |
||
COMPLEX16 | A 16-byte complex number whose real and imaginary parts are each 8-byte double-precision floating-point numbers. Used only by ILE math routines. |
typedef struct { double real, imaginary; } _COMPLEX16; |
01 complex16 02 real comp-2 02 imag comp-2 |
Name To/L Entry Entry complex16 DS real 8F imaginary 8F |
||
BITS | A set of adjacent bits within a single storage unit. The notation is _BITS: x, where x is the field width in bits. (BITS may also be used to define unsigned integers.) | typedef unsigned int _BITS; |
Not applicable | Not applicable | ||
POINTER | A platform-dependent address pointer | typedef void * _POINTER; |
USAGE IS POINTER |
* in data type column procedure pointer = ProcPtr basing pointer is the default if ProcPtr is not defined in the keyword section. |
||
INVPTR | An invocation pointer |
typedef void * _INVPTR; #pragma pointer (_INVPTR, INVPTR) |
Not applicable | Not applicable | ||
LBLPTR | A label pointer |
typedef void * _LBLPTR; #pragma pointer (_LBLPTR, LBLPTR) |
Not applicable | Not applicable | ||
CHARn | A string (character array) of length n | typedef char[n] _CHAR[n]; | PIC X(n) |
blank or A in data type column To/L >= 1 |
||
VFLOAT | An ILE variable-length floating-point number used for polymorphic parameter declarations. The length may be any one of 4, 8, or 16 bytes corresponding to single, double, and extended precision. |
typedef union { float TypeFloat4; double TypeFloat8; long double TypeFloat16; } _VFLOAT; |
Not applicable | Not applicable | ||
VSTRING | An ILE string of arbitrary length used for
polymorphic string parameter declarations. The string may be any one of a
fixed-length string, a null-terminated varying string (known as an "ASCIIZ") or
a length-prefixed string. |
(See note 1)
typedef union { struct { _INT2 length; _CHAR255 string; } l2pstring; struct { _INT4 length; _CHAR255 string; } l4pstring; _CHAR1 stringz; } _VSTRING; |
01 string4 02 len pic 9(9) binary 02 txt pic x(n) 01 string2 REDEFINES string4 02 len pic 9(4) binary 02 txt pic x(n) |
Name To/L Entry Entry vstring DS len 1 2I 0 txt 3 n len2 1 4I 0 txt2 5 n |
||
FEEDBACK | A mapping of the feedback (condition) token (fc) |
typedef volatile struct { _UINT2 MsgSev; _UINT2 MsgNo; _BITS Case :2; _BITS Severity :3; _BITS Control :3; _CHAR Facility_ID[3]; _UINT4 I_S_Info; } _FEEDBACK; |
01 fc 02 sev pic 9(4) binary 02 msgno pic 9(4) binary 02 flgs pic x(1) 02 facid pic x(3) 02 isi pic 9(9) binary |
Name To/L Entry Entry fc DS sev 5U msgno 5U flags 1 facid 3 isi 10U |
||
CEE-ENTRY | A generic entry constant |
struct { _POINTER address; _POINTER nesting; } |
01 STRUC-NAME. 05 STRUC-ADDRESS POINTER. 05 STRUC-NESTING POINTER. |
DCEE_ENTRY DS D Address_Ptr * ProcPtr D Nesting_Ptr * ProcPtr |
||
HDLR_ ENTRY | A procedure pointer used on the CEEHDLR and CEEHDLU APIs. |
typedef void (*_HDLR_ENTRY) ( _FEEDBACK *, _POINTER *, _INT4 *, _FEEDBACK * ); |
77 HDLR_ENTRY PROCEDURE- POINTER |
DHDLR_ENTRY * ProcPtr |
||
RTX_ENTRY | A procedure pointer used on the CEERTX and CEEUTX APIs. |
typedef void (*_RTX_ENTRY) ( _POINTER *); |
77 RTX_ENTRY PROCEDURE- POINTER |
DRTX_ENTRY * ProcPtr |
||
RAGE_ ENTRY | A procedure pointer used on the CEE4RAGE API. |
typedef void (*_RAGE_ENTRY) ( _UINT4 *, _UINT4 *, _UINT4 *, _UINT4 * ); |
77 RAGE_ENTRY PROCEDURE- POINTER |
DRAGE_ENTRY * ProcPtr |
||
CEELABEL | A target label to a code point within a call stack entry. |
typedef volatile struct { _INVPTR invocation; _LBLPTR label; } _CEELABEL; |
Not applicable | Not applicable | ||
Note:
|
Strong alignment is assumed in all data structures. Each item is aligned on the proper boundary for its type, with padding if necessary.
For more information about using ILE CEE APIs, see the following sections:
Top | ILE CEE APIs | APIs by category |