Data type definitions

To insure a consistent interpretation of the arguments, the data type definitions listed in Table 1 are used in the callable service descriptions. When declaring fixed length strings in C or C++ of size n, specify a length of n+1 so the NULL can be placed in the n+1 position. Language Environment neither sets nor interrogates the n+1st position. A stack frame in the next section is equivalent to a DSA.
Table 1. Data type definitions for callable services
Data type Definition
CEE_COND A condition variable, as defined by the type pthread_cond_t
CEE_CONDATTR A condition variable attributes object, as defined by the type pthread_condattr_t
CEE_ENTRY Entry point address of a Language Environment-conforming function to be run on a new thread
CEE_LOCKATTR A mutex attributes object, as defined by the type pthread_mutexattr_t, or a read-write lock attributes object, as defined by the type pthread_rwlockattr_t
CEE_MUTEX A mutex object, as defined by the type pthread_mutex_t
CEE_PTAT A thread attributes object, as defined by the type pthread_attr_t
CEE_RWLOCK A read/write lock, as defined by the type pthread_rwlock_t
CEE_THDID An identifier representing a pthread-crafted thread, as defined by the type pthread_t
CEE_THDKEY A key identifier, as defined by the type pthread_key_t, that is used to associate thread-specific data with a given thread
CEE_TOKEN A miscellaneous identifier, used in specific instances where more general data types do not apply
CHARn A string (character array) of length n
CONST INT A fullword constant numeric value
ENTRY Language-dependent entry constant and/or entry variable
FEED_BACK A mapping of the feedback (condition) code; see Condition representation.
FLOAT4 A 4-byte single-precision floating-point number
FLOAT8 A 8-byte double-precision floating-point number
INT2 A 2-byte signed integer
INT4 A 4-byte signed integer
LABEL Language-dependent label variable
LABEL370 370 extensions to CSC label variable; see LABEL variable
POINTER A fullword address pointer
VSTRING A Language Environment® string of arbitrary length, which is 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 string), or a length-prefixed string. Language Environment assumes the following defaults for VSTRING:
  • For input parameters, assume a halfword length-prefixed character string.
  • For output parameters, assume a fixed-length 80-character string padded right with blanks.

Strong alignment is assumed in all data structures. Each item is aligned on the proper boundary for its type with padding, if necessary.