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

SPT_WRITEUPDATEUNLOCKX(2) OSS System Calls Reference Manual
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 nowait.
For les audited by the Transaction Management Facility
(TMF), AWAITIOX must be called to complete the
SPT_WRITEUPDATEUNLOCKX()
operation before
SPT_ENDTRANSACTION()
or
SPT_ABORTTRANSACTION()
is called.
You should not change the contents of the data buffer between
the initiation and completion of a nowait write operation. This
is because a retry can copy the data again from the user buffer
and cause the wrong data to be written. You should avoid shar-
ing a buffer between a write and another I/O operation because
this creates the possibility of changing the contents of the write
buffer 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. This
means positioning 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.
7340 Hewlett-Packard Company 527186-005