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
| 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. | |||||