Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)

PUT_WRITEUPDATEUNLOCKX(2) OSS System Calls Reference Manual
For programming information about the WRITEUPDATEUNLOCKX procedure, see the
Enscribe Programmer’s Guide and the Guardian Programmer’s Guide.
To use this function on systems running J06.10 or later RVUs or H06.21 or later RVUs, you must
perform all of the following tasks:
Include the pthread.h header file in the application.
Compile the application using the _PUT_MODEL_ feature test macro or equivalent
compiler command option.
Link the application to the zputdll library.
On systems running H06.24 or later H-series RVUs or J06.13 or later J-series RVUs, you can use
this function with 32-bit or 64-bit applications.
To use this function in a 32-bit application on systems running H06.24 or later RVUs or J06.13 or
later RVUs, perform the same tasks (described above) used to enable the function on systems
running H06.21/J06.10 or later RVUs.
To use this function in a 64-bit application on systems running H06.24 or later RVUs or J06.13 or
later RVUs, you must perform all of the following tasks:
Include the pthread.h header file in the application.
Compile the application using the _PUT_MODEL_ feature test macro or equivalent
compiler command option.
Compile the application using the -Wlp64 compiler command option.
Link the application to the yputdll library (/G/system/zdllnnn/yputdll).
Considerations
Buffer use PUT_WRITEUPDATEUNLOCKX() is intended for use with 32-bit extended
addresses and 64-bit extended addresses. The data buffer for
PUT_WRITEUPDATEUNLOCKX() can be either in the callers stack seg-
ment or any extended data segment.
Nowait I/O and PUT_WRITEUPDATEUNLOCKX()
The PUT_WRITEUPDATEUNLOCKX() function must complete with a
corresponding call to the Guardian AWAITIOX procedure when used with a file
that is opened for nowait I/O.
For files audited by the Transaction Management Facility (TMF), You must call
the AWAITIOX procedure to complete the
PUT_WRITEUPDATEUNLOCKX() operation before
PUT_ENDTRANSACTION() or PUT_ABORTTRANSACTION() is called.
Do not change the contents of the data buffer between the initiation and comple-
tion 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 PUT_WRITEUPDATEUNLOCKX()
For key-sequenced, relative, and entry-sequenced files, random processing
implies that a designated record must exist. Positioning for
PUT_WRITEUPDATEUNLOCKX() is always to the record described by the
exact value of the current key and current-key specifier. If such a record does
not exist, the call to PUT_WRITEUPDATEUNLOCKX() is rejected with
5302 Hewlett-Packard Company 527186-023