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 5303