[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

OpenVMS Programming Concepts Manual


Previous Contents Index

E.12 RPG II Implementations

Table E-12 lists the OpenVMS data types and their corresponding RPG II data type declarations.

Table E-12 RPG II Implementations
OpenVMS Data Type RPG II Declarations
access_bit_names na
access_mode Declare as text string of 1 byte. When using this data structure, you must interpret the ASCII contents of the string to determine access_mode.
address L 1
address_range Q 1
arg_list na
ast_procedure L 1
boolean na
byte_signed Declare as text string of 1 byte. When using this data structure, you must interpret the ASCII contents of the string.
byte_unsigned Same as for byte_signed. 1
channel W 1
char_string TEXT STRING
complex_number DATA STRUCTURE
cond_value cond_value GIVNG OPCODE
context L 1
date_time Q 1
device_name TEXT STRING
ef_cluster_name TEXT STRING
ef_number L 1
exit_handler_block DATA STRUCTURE
fab Implicitly generated by the compiler on your behalf. You cannot access the fab data structure from an RPG II program.
file_protection W 1
floating_point F
D
function_code F
identifier L 1
io_status_block Q
item_list_pair DATA STRUCTURE
item_list_2 DATA STRUCTURE
item_list_3 DATA STRUCTURE
item_quota_list na
lock_id L 1
lock_status_block DATA STRUCTURE
lock_value_block DATA STRUCTURE
logical_name TEXT STRING
longword_signed L
longword_unsigned L 1
mask_byte Same as for byte_signed 1
mask_longword L 1
mask_quadword Q 1
mask_word W 1
null_arg na
octaword_signed DATA STRUCTURE
octaword_unsigned DATA STRUCTURE
page_protection L 1
procedure L 1
process_id L 1
process_name TEXT STRING
quadword_signed Q
quadword_unsigned Q 1
rights_holder Q 1
rights_id L 1
rab Implicitly generated by the compiler on your behalf. You cannot access the rab data structure from an RPG II program.
section_id Q 1
section_name TEXT STRING
system_access_id Q 1
time_name TEXT STRING
transaction_id DATA STRUCTURE
uic L 1
user_arg L 1
varying_arg Depends on the application.
vector_byte_signed ARRAY OF TEXT STRING
vector_byte_unsigned ARRAY OF TEXT STRING 1
vector_longword_signed ARRAY OF LONGWORD INTEGER (SIGNED) L
vector_longword_unsigned RAY OF LONGWORD INTEGER L 1
vector_quadword_signed na
vector_quadword_unsigned na
vector_word_signed ARRAY OF WORD INTEGER (SIGNED) W
vector_word_unsigned ARRAY OF WORD INTEGER W 1
word_signed W
word_unsigned W 1

1Technically, RPG II does not support unsigned data structures. However, unsigned information may be passed using the signed equivalent, provided the contents do not exceed the range of the signed data structure.

E.13 SCAN Implementations

Table E-13 lists the OpenVMS data types and their corresponding SCAN data type declarations.

Table E-13 SCAN Implementations
OpenVMS Data Type SCAN Declarations
access_bit_name FILL(8*32) 1
access_mode FILL(1) 1
address POINTER
address_range RECORD
start: POINTER,
end: POINTER,

END RECORD
arg_list RECORD
count: INTEGER,
arg1: POINTER, ! if by reference
arg2: INTEGER, ! if by value
... ! depending on needs

END RECORD
ast_procedure POINTER
boolean BOOLEAN 2
byte_signed FILL(1) 1
byte_unsigned FILL(1) 1
channel FILL(2) 1
char_string FIXED STRING( x), where x is the length.
complex_number FILL( x), where x is the length. 1
cond_value INTEGER
context INTEGER
date_time FILL(8) 1
device_name FIXED STRING( x), where x is the length.
ef_cluster_name FIXED STRING( x), where x is the length.
ef_number INTEGER
exit_handler_block FILL( x), where x is the length. 1
fab A FAB data type is too large a structure to include in this table (see the OpenVMS Record Management Services Reference Manual); most of the fields can be described with a SCAN record. However, fab data structures are simpler to use with less coding errors when accessed from other languages that have the record predefined.
file_protection FILL(2) 1
floating_point FILL( x), where x is the length. 1
function_code INTEGER
identifier POINTER
io_status_block FILL(8) 1
item_list_2 RECORD
item1: FILL(8),
item2: FILL(8),
...
terminator: INTEGER,

END RECORD 1
item_list_3 RECORD
item1: FILL(12),
item2: FILL(12),
...
terminator: INTEGER,

END RECORD 1
item_list_pair RECORD
pair_1: RECORD ! 2 integer pair
long1: INTEGER,
long2: INTEGER,
END RECORD,

pair_2: RECORD ! integer-real pair
long1: INTEGER,
long2: FILL(4),
END RECORD,

... ! depending on need
terminator: INTEGER,

END RECORD
item_quota_list RECORD
item1: RECORD
type: FILL(1),
value: INTEGER,

END RECORD
item2: RECORD
type: FILL(1),
value: INTEGER,

END RECORD,
...
terminator: FILL(1),

END RECORD 1
lock_id INTEGER
lock_status_block RECORD
status: FILL(2),
reserved: FILL(2),
ock_id: INTEGER,

END RECORD 1
lock_value_block FILL(16) 1
logical_name FIXED STRING( x), where x is the length.
longword_signed INTEGER
longword_unsigned INTEGER
mask_byte FILL(1) 1
mask_longword INTEGER
mask_quadword RECORD
first_half: INTEGER,
second_half: INTEGER,

END RECORD
mask_word FILL(2) 1
null_arg Use asterisk (*) for argument.
octaword_signed FILL(16) 1
octaword_unsigned FILL(16) 1
page_protection INTEGER
procedure POINTER
process_id INTEGER
process_name FIXED STRING( x), where x is the length.
quadword_signed FILL(8) 1
quadword_unsigned FILL(8) 1
rights_holder RECORD
rights_id: INTEGER,
bitmask: INTEGER,

END RECORD
rights_id INTEGER
rab A rab data type is too large a structure to include in this table (see the OpenVMS Record Management Services Reference Manual); most of the fields can be described with a SCAN record. However, RAB data structures are simpler to use with less coding errors when accessed from other languages that have the record predefined.
second_name FILL(8) 1
section_name FIXED STRING( x), where x is the length.
system_access_id FILL(8) 1
time_name FIXED STRING( x), where x is the length.
transaction_id FILL(16) 1
uic INTEGER
user_arg INTEGER
varying_arg INTEGER
vector_byte_signed FILL( x), where x is the length. 1
vector_byte_unsigned FILL( x), where x is the length. 1
vector_longword_signed FILL(4* x), where x is the length. 1
vector_longword_unsigned FILL(4* x), where x is the length. 1
vector_quadword_signed FILL(8* x), where x is the length. 1
vector_quadword_unsigned FILL(8* x), where x is the length. 1
vector_word_signed FILL(2* x), where x is the length. 1
vector_word_unsigned FILL(2* x), where x is the length. 1
word_signed FILL(2) 1
word_unsigned FILL(2) 1

1FILL is a data type that can always be used. A FILL is an object between 0 and 65K bytes in length. SCAN does not interpret the contents of an object. Thus, it can be used to pass or return the object to another language that does understand the type.
2SCAN Boolean is just 1 byte.


Previous Next Contents Index