The OSI fields that are significant to this discussion are:
- osi_asy1, which signifies Part 1
- osi_asy2, which signifies Part 2
- osi_asytok, which holds the LFS's token on entry to Part 1 and
the PFS's token on entry to Part 2.
- osi_ok2compimd, which indicates that the PFS may complete the
operation immediately, if possible. See Asynchronous I/O flow details for
details.
- osi_compimd, which is returned by the PFS to indicate that it
has completed the operation immediately. This is valid only if osi_ok2compimd
is on.
- osi_commbuff, which indicates that Part 2 of Async I/O must not
occur. Within the PFS, the changes from normal Async I/O flow are:
- Received data can be copied directly to the user's buffers from
the PFS's inbound data handler.
- osi_sched is called after the data has been copied.
- The amount of data being returned must be supplied to osi_sched.
- There must be no dependence on Part 2 being called.
Note: The last four fields are meaningful only when osi_asy1
or osi_asy2 are on; they should not be referred to otherwise.
These fields are covered in more detail in Figure 1.