Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)
System Functions (n - p) PUT_WRITEUPDATEUNLOCKX(2)
Guardian file-system error 11 (record does not exist).
Unstructured files (pointers unchanged)
For unstructured files, data is written in the position indicated by the current-
record pointer. A call to PUT_WRITEUPDATEUNLOCKX() for an unstruc-
tured file typically follows a call to the Guardian POSITION procedure or
PUT_READUPDATEX(). The current-record and next-record pointers are not
changed by a call to PUT_WRITEUPDATEUNLOCKX().
How PUT_WRITEUPDATEUNLOCKX() works
The record unlocking performed by PUT_WRITEUPDATEUNLOCKX()
functions in the same manner as PUT_UNLOCKREC( ).
Record does not exist
Positioning for PUT_WRITEUPDATEUNLOCKX() is always to the record
described by the exact value of the current key and current-key specifier. There-
fore, if such a record does not exist, the call to
PUT_WRITEUPDATEUNLOCKX() is rejected with Guardian file-system
error 11.
Invalid write operations to queue files
DP2 rejects PUT_WRITEUPDATEUNLOCKX() operations with a Guardian
file-system error 2.
Location of buffer and count_written
The buffer and count transferred can be in the user stack or in an extended data
segment. The buffer and count_w ritten cannot be in the user code space.
If the buff er and count_w ritten are 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
the Guardian AWAITIOX procedure. This restriction 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_WRITEUPDATEUNLOCKX(), the
I/O must be completed with a call to the Guardian AWAITIOX pro-
cedure.
• A selectable extended data segment containing the buffer need not be in
use at the time of the call to AWAITIOX.
• Nowait I/O initiated with PUT_WRITEUPDATEUNLOCKX() can be
canceled with a call to PUT_CANCEL() or CANCELREQ. The I/O is
canceled if the file is closed before the I/O completes or if the Guardian
AWAITIOX procedure is called with a positive time limit and specific
file number and the request times out.
527186-023 Hewlett-Packard Company 5−303