| United States-English |
|
|
|
![]() |
ACC Programmer's Reference Guide > Chapter 3 ZCOM Tables and Data StructuresResponse Records |
|
Response records are used to keep track of the issue-and-wait operations in the ZCOM subsystem. Currently, it is used for the send-with-wait (for example, zsend mode 8), port configuration (zport and zconfig routines), interface card control (zconfig), and remote API calls. When a program requests a issue-and-wait operation, the LDM allocates a spare response record from the pool, sets up the sleeping address, and puts the caller to sleep. At a later time, when the operation is completed, the driver (LDM or DAM) sets up the return status and wakes up the waiter. The waiter then reads the return status and releases the response record back to the pool. The layout of the response record (zrsp_type) is shown below. Table 3-25 Response Record Structure
RPADDR - Waiter sleeping address The LDM puts an appropriate address into this field and puts the application to sleep on this address. This field is zero when the record is not being used. When this field is set, the remaining fields of the structure will contain valid information. RPTYPE - Expected response type This field contains the type of response the waiter is expecting. The LDM sets up the response type when it initializes the record. This field is validated when a response is returned. Currently, it may contain one of the values Table 3-26 “Response Type Field”. Table 3-26 Response Type Field
A buffer completion response is returned when a local request (e.g. port configuration) is completed. A remote completion response is returned when a remote API request is processed in the remote system. An interface request response is returned when ZCOM has completed an interface control request. RPNODE - Remote node This contains the remote node number for a remote completion response. It is initialized by the LDM before a remote request is sent, and is used to validate the returned response. RPSEQN - Request/Response sequence number For remote and interface requests, the LDM generates and stores a request sequence number in this field. This number is used to validate the returned response. RPEXPT - Response expiration timeout value This filed contains the expiration time (Coordinated Universal Time, in seconds) of an outstanding request. The LDM generates a timeout response if the current time exceeds this value. Currently, only the remote completion response uses this field to trigger timeout processing. RPCODE - Return status or error code When a response is received, the response status or error code is temporarily stored in this field. The value is then picked up by the waiting process when it resumes execution. RPBUFQ - Response buffer queue When a response carries data in addition to just a status or error code, the data is stored in this queue temporarily. The data is retrieved by the waiting process when it resumes execution. Currently, only remote completion responses use this queue for data storage. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||