Guardian Procedure Calls Reference Manual (G06.25+)

Guardian Procedure Calls (W-Z)
Guardian Procedure Calls Reference Manual522629-013
16-32
WRITEUPDATE[X] Procedures
When WRITEUPDATE[X] is used with magnetic tape the number of bytes to be
written must fit exactly; otherwise, information on the tape can be lost. However,
no error indication is given.
Limitation of WRITEUPDATE[X] to the same record
Five is the maximum number of times a WRITEUPDATE[X] can be executed to the
same record on tape.
Considerations for WRITEUPDATEX Only
The buffer and count transferred may be in the user stack or in an extended data
segment. The buffer and count transferred cannot be in the user code space.
If the buffer or count transferred is in a selectable extended data segment, the
segment must be in use at the time of the call. Flat segments allocated by a
process are always accessible to the process.
If the file is opened for nowait I/O, and the buffer is in an extended data segment,
you cannot deallocate or reduce the size of the extended data segment before the
I/O completes with a call to AWAITIOX or is canceled by a call to CANCEL or
CANCELREQ.
If the file is opened for nowait I/O, you must not modify the buffer before the I/O
completes with a call to AWAITIOX. This also applies to other processes that may
be sharing the segment. It is the application’s responsibility to ensure this.
If the file is opened for nowait I/O, and the I/O has been initiated with these
routines, the I/O must be completed with a call to AWAITIOX (not AWAITIO).
If the file is opened for nowait I/O, the extended segment containing the buffer
need not be in use at the time of the call to AWAITIOX.
Nowait I/O initiated with these routines may be canceled with a call to CANCEL or
CANCELREQ. The I/O is canceled if the file is closed before the I/O completes or
AWAITIOX is called with a positive time limit and specific file number and the
request times out.
If the extended address of the buffer is odd, bounds checking rounds the address
to the next lower word boundary and checks an extra byte as well. The odd
address is used for the transfer.
Errors for WRITEUPDATEX Only
In addition to the errors returned from the WRITEUPDATE procedure, file-system error
22 is returned when:
The segment is in use at the time of the call or the segment in use is invalid.
The address of a parameter is extended, but it is an absolute address and the
caller is not privileged.
The file system cannot use the user's segment when needed.