Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)
PUT_READX(2) OSS System Calls Reference Manual
• 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).
General Considerations
Buffer use PUT_READX() is intended for use with 32-bit extended addresses and 64-bit
extended addresses. The data buffer for PUT_READX() can be either in the
caller’s stack segment or any extended data segment.
Waited PUT_READX()
If a waited PUT_READX() call is executed, the count_read parameter indicates
the number of bytes actually read.
Nowait PUT_READX()
If a nowait PUT_READX() call is executed, count_read has no meaning and
can be omitted. The count of the number of bytes read is obtained through the
count-transferre d parameter of the Guardian AWAITIOX procedure when the
I/O operation completes.
The PUT_READX() function must complete with a call to the Guardian
AWAITIOX procedure when it is used with a file that is opened for nowait I/O.
It is possible to initiate concurrent nowait read operations that share the same
data buffer. To do this successfully with files opened by PUT_FILE_OPEN_(),
you must use PUT_SETMODE() function 72 to cause the system to use an
intermediate buffer in the process file segment (PFS) for I/O transfers.
PUT_READX() call when default locking mode is in effect
If the default locking mode is in effect when a call to PUT_READX() is made
to a locked file, but the filenum of the locked file differs from the filenum in the
call, the caller of PUT_READX( ) is suspended and queued in the locking queue
behind other processes attempting to lock or read the file or record.
A deadlock condition occurs if a call to PUT_READX( ) is made by a process
having multiple opens on the same file and the filenum used to lock the file
differs from the filenum supplied to PUT
_READX( ).
5−244 Hewlett-Packard Company 527186-023