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

PUT_WRITEX(2) OSS System Calls Reference Manual
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_WRITEX() is intended for use with 32-bit extended addresses and 64-bit
extended addresses. The data buffer for PUT_WRITE() can be either in the
caller’s stack segment or any extended data segment.
Waited I/O and PUT_WRITEX() calls
If a waited PUT_WRITEX() call is executed, the count_written parameter indi-
cates the number of bytes actually written.
Nowait I/O and PUT_WRITEX() calls
If a nowait PUT_WRITE () call is executed, count_written has no meaning and
can be omitted. The count of the number of bytes written is obtained when the
I/O operation completes through the count-transferred parameter of the Guar-
dian AWAITIOX procedure.
The PUT_WRITEX() function must complete with a corresponding call to the
Guardian AWAITIOX procedure when used with a file that is opened for nowait
I/O.
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 the contents of the write buffer might
change before the write is completed.
Disk File Considerations
Large data transfers for unstructured files using default mode
Default mode allows I/O sizes for unstructured files to be as large as 56KB
(57,344), excepting writes to audited files, if the unstructured buffer size (or
block size) is 4KB (4096). Default mode refers to the mode of the file if
PUT_SETMODE() function 141 is not invoked.
For an unstructured file with an unstructured buffer size other than 4KB, DP2
automatically adjusts the unstructured buffer size to 4KB, if possible, when an
I/O larger than 4KB is attempted. However, this adjustment is not possible for
files that have extents with an odd number of pages; in such cases, an I/O over
4KB is not possible. The switch to a different unstructured buffer size will have
a transient performance impact, so HP recommends that the size be initially set
5312 Hewlett-Packard Company 527186-023