Guardian Procedure Calls Reference Manual
Returned Value
INT
A file-system error code that indicates the outcome of the call.
22
• The address of a parameter is extended, but either the extended data segment is invalid or the address is
for a selectable segment that is not in use at the time of the call.
• The address of a parameter is extended, but it is an absolute address and the caller is not privileged.
Considerations
• EpTAL callers must set toggle
EpTAL callers must set the toggle _64BIT_CALLS before sourcing the
FILE_READUPDATELOCK64_ procedure section from EXTDECS.
• Familiar semantics
Unless otherwise described, the semantic behavior of FILE_READUPDATELOCK64_ is the same
as that of READUPDATELOCKX.
• Nowait I/O and FILE_READUPDATELOCK64_
If FILE_READUPDATELOCK64_ is called on a file opened for nowait I/O, then the operation
must be completed by calling either FILE_AWAITIO64_ or FILE_COMPLETEL_.
WARNING! When using nowait file I/O, data corruption might occur if the read buffer is
modified before FILE_AWAITIO64_ or FILE_COMPLETEL_ completes the call. The buffer space
must not be freed or reused while the I/O is in progress.
• Nondisk files
If FILE_READUPDATELOCK64_ is performed on nondisk files, an error is returned.
• Random processing
For key-sequenced, relative, and entry-sequenced files, random processing implies that a
designated record must exist. Therefore, positioning for FILE_READUPDATELOCK64_ 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 FILE_READUPDATELOCK64_ is rejected with file-system
error 11.
• Queue files
To use FILE_READUPDATELOCK64_, a queue file must be opened with write access and with
a sync-or-receive-depth of 0.
• Buffer considerations
The buffer and count transferred can be in the user stack or in an extended data segment.
The buffer and count transferred cannot be in the user code space.
◦
◦ The buffer and count transferred address must be relative; they cannot be an absolute
extended address.
◦ If the buffer or count transferred is in a selectable extended data segment, the segment
must be in use at the time of the call. Flat segments allocated by a process are always
accessible to the process.
◦ The size of the transfer is subject to current restrictions for the type of file.
◦ If the file is opened for nowait I/O, and the buffer is in an extended data segment, you
must not deallocate or reduce the size of the extended data segment before the I/O
494 Guardian Procedure Calls (F)