Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)
System Functions (n - p) PUT_WRITEUPDATEX(2)
The buffer and count transferred can 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 pro-
cess are always accessible to the process.
Use on files opened for nowait I/O
• If 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 the Guardian AWAITIOX procedure or is canceled by a
call to the PUT_CANCEL( ) function or the Guardian CANCELREQ
procedure.
• You must not modify the buffer before the I/O completes with a call to
AWAITIOX. This also applies to other processes that might be sharing
the segment. It is the application’s responsibility to ensure this.
• If you initiated the I/O with PUT_WRITEUPDATEX(), the I/O must
be completed with a call to the Guardian AWAITIOX procedure.
• The extended segment containing the buffer need not be in use at the
time of the call to AWAITIOX.
• Nowait I/O initiated with PUT_WRITEUPDATEX() can be canceled
with a call to the PUT_CANCEL( ) function or the Guardian CANCEL-
REQ procedure. 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.
Bounds checking
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.
Magnetic Tape Considerations
Supported equipment
PUT_WRITEUPDATEX() is permitted only on the 3202 Controller for the
5103 or 5104 Tape Drives. This function is not supported on any other
controller/tape drive combination. PUT_WRITEUPDATEX() is specifically
not permitted on the following controller/tape drive pairs:
• 3206 Controller and the 5106 Tri-Density Tape Drive
• 3207 Controller and the 5103 & 5104 Tape Drives
• 3208 Controller and the 5130 & 5131 Tape Drives
Specifying the correct number of bytes written
When PUT_WRITEUPDATEX() 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.
527186-023 Hewlett-Packard Company 5−309