SG_GET_REQUEST_TABLE 0x2286. This ioctl outputs an array of information about the status of requests associated with the current file descriptor. Its 3rd argument should point to memory large enough to receive SG_MAX_QUEUE objects of the sg_req_info_t structure. This structure has the following members:
req_state 0 -> request not in use 1 -> request has been sent, but is not finished (i.e. it is between stages 1 and 2 in the "theory of operation") 2 -> request is ready to be read() (i.e. it is between stages 2 and 3 in the "theory of operation") orphan 0 -> normal request 1 -> request sent by SG_IO ioctl() which has been interrupted by a signal sg_io_owned 0 -> request sent by a write() 1 -> request sent by a SG_IO ioctl() problem 0 -> no problem (or 1 == req_state) 1 -> req_state is 2 and either masked_status, host_status or driver_status is non-zero duration [if 1 == req_state] time since request was sent (in millisecs) [if 2 == req_state] duration of request (in millisecs). Clock is stopped when stage 2 in "theory of operation" is reached pack_id usr_ptr these are user provided values in the sg_io_hdr_t (or struct sg_header) that sent the request |