Data Types

Except for Kernel calls, each system call description lists PL/M and C data types for each call parameter. The data types, unless otherwise stated, define the acceptable range of values for a parameter. The data types used in this manual are listed below. Data types such as WORD_16, WORD_32, and NATIVE_WORD are iRMX data types, not native to PL/M or C. They are defined in the include files provided with the OS.

See also:rmxtypes.h and rmx_c.h files in the intel/include directory

CAUTION

Compiler controls (such as long64 in iC-386) allow certain data types to be larger than specified here. Use only the compiler option that provides data types conforming with the table below.

See also: long64, iC-386 Compiler User's Guide

Data Types in System Calls

C Data Type PL/M Description
UINT_8 BYTE An unsigned 8-bit binary number or character in the range of 0 to 255, contained in 1 byte of memory.
UINT_16 WORD_16 An unsigned 16-bit binary number in the range of 0 to 65535, contained in 2 contiguous bytes of memory.
UINT_32 WORD_32 An unsigned 32-bit binary number in the range of 0 to 4,294,967,295, contained in four contiguous bytes of memory.
SELECTOR SELECTOR A 16-bit index identifying a particular memory segment in a descriptor table (segmented application) or page tables (flat model). The selector is the data type for a token, which is a value that the OS assigns to an object.
data_type far * POINTER In C, the data_type can be any data type in this table, or a data structure defined in the call description, or void. The asterisk (*) is part of the name. Pointer types and sizes are:
    Compiler Type Pointer Type Pointer Size
    16-bit compact/large segmented segment:offset 16:16
(32 bits total length)
    32-bit compact segmented (e.g., PL/M-386, iC-386) segment:offset 16:32
(48 bits total length)
    32-bit flat
(non-Intel C compilers)
offset only 32 bits (near pointer even if declared far)
SOCKET_STRUCT SOCKET$STRUCT Combination of a host ID and port ID for use in message passing.
RMX_STRING or PLM_STRING_STRUCT PLM_STRING_STRUCT An array of consecutive characters with the first character defining the length of the string.
STRING_TABLE_STRUCT PLM_STRINGTABLE_STRUCT An array of consecutive RMX_STRINGs or PLM_STRING_STRUCTs.
BOOLEAN BYTE This data type corresponds to BOOLEAN logic (true or false). It is an unsigned 8-bit binary number that can take on the values FALSE (0) and TRUE (not 0 or any value greater than 0). In PL/M, TRUE must have bit 0 set to 1.
KN_TOKEN WORD_32 An unsigned 32-bit binary number in the range of 0 to 4,294,967,295, contained in four contiguous bytes of memory.
KN_STATUS WORD_32 An unsigned 32-bit binary number in the range of 0 to 4,294,967,295, contained in four contiguous bytes of memory.
KN_FLAGS WORD_32 An unsigned 32-bit binary number in the range 0 to 4,294,967,295, contained in four contiguous bytes of memory.
NATIVE_WORD (no equivalent) In C, expands type definitions of variables from 16 bits to 32 bits when using 32-bit code. The NATIVE_WORD type can be either an unsigned 16-bit or unsigned 32-bit binary number. In PL/M, you include either the 16-bit or 32-bit version of header (.ext and .lit) files to get the correct data type.