Guardian Procedure Calls Reference Manual (G06.25+)

Guardian Procedure Calls (R)
Guardian Procedure Calls Reference Manual522629-013
13-47
REFPARAM_BOUNDSCHECK_ Procedure
flags input
INT:value
specifies options. The bits indicate the following:
<0:13> must be zero.
<14> = 0 specifies that absolute addressing is not allowed for native processes.
= 1 allows absolute addressing even if REFPARAM_BOUNDSCHECK_ is
called from a native process. No checking is performed and
REFPARAM_BOUNDSCHECK_ returns without error.
<15> = 0 checks the area for read/write access.
= 1 checks the area for read-only access.
Considerations
To pass the tests performed by REFPARAM_BOUNDSCHECK_, a correct
reference parameter must meet the following criteria:
The reference address must start within a range that is mapped into the users
logical address space.
The entire referenced area specified by start-address and area-length
is within the same logical addressing space as the
start-address. That is,
it must be entirely within one of the following: the TNS data stack, the main
stack, or a single selectable extended data segment. In the case of TNS code
segments, the address must be within a single code space if the TNS code
segment spans multiple code spaces.
The reference parameter must be within an unprotected logical addressing
space. For TNS processors, this addressing space is either the TNS data
stack, an unprivileged selectable extended data segment, or certain relative
code segments. On native processors, this area can be the TNS data stack,
the main stack, an unprivileged selectable extended data segment, or any of
the code areas mapped into KUSEG.
For CALLABLE procedures running on the TNS data stack, no part of the
reference parameter can be within an area that starts at the base of the
CALLABLE procedure’s stack and extends to 0 locations beyond the L register
of the CALLABLE procedure. This is true only for procedures that run on a
TNS processor and are not running on the TOSSSTACK, or for TAL
procedures running on a native processor.
For CALLABLE procedures with parameters within a valid code area, the
parameter address is valid only if the CALLABLE procedure is making a read-
only reference.
If the address area is in bounds in an extensible segment and disk space for the
extensible segment needs to be allocated, REFPARAM_BOUNDSCHECK_