Guardian Procedure Calls Reference Manual (G06.25+)
Guardian Procedure Calls (O)
Guardian Procedure Calls Reference Manual—522629-013
11-50
OPENER_LOST_ Procedure
•
Entries are of fixed length and are entry-size long.
•
The process handles of the primary and backup openers are stored back-to-
back (the primary preceding the backup) in contiguous 10-word fields within
each entry.
•
If the primary and backup process handles are not the first fields in the entry,
table points to the first word of the first entry’s primary-opener process
handle rather than to the first word of the table entry.
•
An unused primary or backup field is marked with a null process handle (-1 in
each word).
When an opener is lost, OPENER_LOST_ makes any necessary updates to the
primary and backup fields of the open table. If the backup opener is lost, the
backup process handle is set to null. If the primary opener is lost, the backup
process handle is moved to the primary opener field and the backup opener field is
set to null (-1 in each word).
The following illustrates a possible layout for an opener table entry:
•
Searching the open table
To search the open table, call OPENER_LOST_ repeatedly until the returned
status value is either 0 or a value that indicates an error condition. Before
making the first call, initialize
index to -1; do not alter its contents after that.
Example
index := -1; ! initialize table
! index
DO ! do until search
! is finished
BEGIN ! or an error
! occurs:
status := OPENER_LOST_ ( message:length ! search table
,table^ptr, ! for next
,index, ! affected
,num^of^entries ! entry
,entry^size );
do any necessary work
END
UNTIL status = 0 OR status = 2 OR status = 3 OR status = 7;
Section Length
process handle of primary opener 10 words
process handle of backup opener 10 words
miscellaneous information some fixed length