Guardian Procedure Calls Reference Manual (G06.25+)

Guardian Procedure Calls (W-Z)
Guardian Procedure Calls Reference Manual522629-013
16-41
XBNDSTEST Procedure
(Superseded by REFPARAM_BOUNDSCHECK_
-1 Out of bounds or illegal address
-2 Incorrectly aligned on word boundary
-3 Undefined flag value
-4 In bounds, but in an extensible extended data segment that cannot be
extended (usually due to lack of additional disk space for the swap file)
param input
STRING .EXT:ref:*
is the parameter to be bounds-checked.
bytelen input
INT:value
is the unsigned length of the parameter, in bytes {0:65535}.
flags input
INT:value
is defined as:
<0:12> must be zero
<13> use extended address limits from constants
<14> parameter must be word-aligned
<15> skip the bounds test and return 0
constants input
FIXED:value
is a set of constant values generated by XSTACKTEST.
Considerations
XBNDSTEST can perform extended address checking against either the current
extended address limit or the limit in effect at the time XSTACKTEST was called.
The latter may be specified by setting bit <13> of the
flags parameter.
XBNDSTEST will normally reject all relative extended address references to the
system data segment (segment 1) as well as all absolute extended addresses.
Procedures that support privileged callers may disable these checks by either:
setting bit <15> of the flags parameter, which will disable all address
checking.
calling XSTACKTEST with bit <14> of the flags parameter set, which will
generate a
constants value that permits privileged mode addressing but still
performs the normal checks on other addresses.
Prior to the D20 RVU, the following status conditions were handled differently: