Open System Services System Calls Reference Manual (G06.28+, H06.05+)

System Functions (s and S) SPT_WRITEUPDATEUNLOCKX(2)
Considerations
Buffer use SPT_WRITEUPDATEUNLOCKX()
is intended for use with
32-bit extended addresses. Therefore, the data buffer for
SPT_WRITEUPDATEUNLOCKX()
can be either in the
callers stack segment or any extended data segment.
Nowait I/O and SPT_WRITEUPDATEUNLOCKX()
The SPT_WRITEUPDATEUNLOCKX()
function must com-
plete with a corresponding call to the Guardian AWAITIOX pro-
cedure when used with a le that is opened for nowait I/O.
For les audited by the Transaction Management Facility
(TMF), You must call the AWAITIOX procedure to complete
the SPT_WRITEUPDATEUNLOCKX()
operation before
SPT_ENDTRANSACTION()
or
SPT_ABORTTRANSACTION()
is called.
Do not change the contents of the data buffer between the initia-
tion and completion of a nowait write operation. A retry can
copy the data again from the user buffer and cause the wrong
data to be written. Avoid sharing a buffer between a write and
another I/O operation because this creates the contents of the
write buffer might change before the write is completed.
Random processing and SPT_WRITEUPDATEUNLOCKX()
For key-sequenced, relative, and entry-sequenced les, random
processing implies that a designated record must exist. Position-
ing for SPT_WRITEUPDATEUNLOCKX() is always to the
record described by the exact value of the current key and
current-key specier. If such a record does not exist, the call to
SPT_WRITEUPDATEUNLOCKX() is rejected with Guardian
le-system error 11 (record does not exist).
Unstructured files (pointers unchanged)
For unstructured les, data is written in the position indicated by
the current-record pointer. A call to
SPT_WRITEUPDATEUNLOCKX() for an unstructured le
typically follows a call to the Guardian POSITION procedure or
SPT_READUPDATEX(). The current-record and next-record
pointers are not changed by a call to
SPT_WRITEUPDATEUNLOCKX().
How SPT_WRITEUPDATEUNLOCKX() works
The record unlocking performed by
SPT_WRITEUPDATEUNLOCKX() functions in the same
manner as SPT_UNLOCKREC().
Record does not exist
Positioning for SPT_WRITEUPDATEUNLOCKX() is always
to the record described by the exact value of the current key and
current-key specier. Therefore, if such a record does not exist,
the call to SPT_WRITEUPDATEUNLOCKX() is rejected
with Guardian le-system error 11.
527186-007 Hewlett-Packard Company 7353