Function
The osi_upda service updates an
asynchronous request with the PFS's request token.
Requirements
Operation |
Environment |
---|
Authorization: |
Supervisor state, key 0 |
Dispatchable unit mode: |
Task or SRB |
Cross memory mode: |
Any |
AMODE: |
31-bit |
ASC mode: |
Any |
Interrupt status: |
Enabled for interrupts |
Locks: |
Unlocked |
Control parameters: |
All parameters must be addressable
by the caller and in the primary address space. |
Format
osi_upda(Osi_AsyTok,
PFS_AsyTok);
Parameters
- Osi_AsyTok
- Supplied parameter
- Type:
- Token
- Length:
- 8 bytes
The name of the field that contains the osi_asytok
value that was passed to the PFS on this vnode operation.
The
field from the input osi itself may be used on this call.
- PFS_AsyTok
- Supplied parameter.
- Type:
- Token
- Length:
- 8 bytes
The name of the field containing the PFS's token
for this asynchronous request. This value is saved by the LFS and
passed back to the PFS on the second part of the asynchronous operation,
or on vn_cancel.
Usage notes
- Refer to Asynchronous I/O processing for details on asynchronous
operations.
- osi_upda is called by the PFS early in Part 1 of an asynchronous
vnode operation. It must be called some time before there is any
possibility that osi_sched will be called for an asynchronous completion
of this I/O.
When an operation can be completed immediately, Osi_upda
does not have to be called if osi_ok2compimd=ON, or if the PFS does
not need to participate in Part 2.
- On entry to Part 1, Osi_asytok contains the LFS's request token,
and osi_upda is called so that the LFS can save the PFS's request
token.
Osi_asytok is also saved by the PFS during Part 1, and is
used later for osi_sched.
- Osi_asytok on entry to Part 2 contains this PFS_AsyTok value.
It
is important that osi_upda be called before osi_sched is called, when
the PFS is participating in Part 2, because Part 2 could run anytime
after osi_sched is called, and the LFS might not have the PFS's request
token to pass.
- This PFS_AsyTok value is also passed on vn_cancel to identify
the request that is being canceled.
Canceled requests do not generate
a call to vn_cancel if osi_upda has not been called.
- If the Osi_Asytok value is not valid, osi_upda issues an 0xEC6
abnormal end with a reason code of 0x11450727.
Characteristics and restrictions
None.