z/OS UNIX System Services File System Interface Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Responsibilities for the semantics

z/OS UNIX System Services File System Interface Reference
SA23-2285-00

The semantics for the asyncio function are split between the PFS and the LFS. Some of the features whose support might be ambiguous are discussed here. Refer to aio_suspend (BPX1ASP, BPX4ASP) — Wait for an asynchronous I/O request in z/OS UNIX System Services Programming: Assembler Callable Services Reference while reading this topic.

The LFS must handle the following:
  • The aiocb structure. The interface to the PFS is through the regular vnode operations, such as vn_rdwr and vn_sndrcv.
  • The returned information. The PFS should return 0 for a successful Part 1, and the normal functional values from Part 2. In particular, the LFS handles the EINPROGRESS return_code.
  • Scheduling the SRB and calling the I/O completion notification. This includes calling the user exit, posting an ECB, and sending a signal.
  • AioSync. This appears to the PFS as a normal synchronous operation (osi_asy1=osi_asy2=OFF).
  • AioOk2CompImd, for accept and connect. The osi_ok2compimd bit is always on in the PFS for vn_accept and vn_connect, so the PFS can always complete these operations immediately without calling osi_upda or osi_sched. osi_compimd should be turned on if the PFS does happen to complete these operations immediately.
  • The select and poll functions, which are already asynchronous with respect to the PFS. The PFS continues to call osi_selpost for the vfs_batsel and vn_select operations.
The PFS must handle or contribute to the support of:
  • AioOk2CompImd, for reads (including accept_and_recv) and writes, through support for osi_ok2compimd. Even when the PFS is able to complete a read or write type of operation immediately, it must still call osi_sched whenever osi_ok2compimd=off. See Asynchronous I/O flow details for details.
  • AioCallB4 and deferred buffer allocation, by not requiring the presence of the user's data buffers during Part 1, unless osi_ok2compimd=on; and by passing the length of data that is available to be received to osi_sched.
  • The ECANCELED Return_code, by failing a request with that return code when the request has been removed from a waiting queue because of vn_cancel. The race condition between vn_cancel and data arrival can only be resolved by the PFS.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014