scsi: core: Add scsi_msg_to_host_byte()
Add helper to convert message byte into a host byte code. Link: https://lore.kernel.org/r/20210427083046.31620-18-hare@suse.de Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
f6b5a69706
commit
735b830c61
|
@ -335,6 +335,32 @@ static inline u8 get_host_byte(struct scsi_cmnd *cmd)
|
||||||
return (cmd->result >> 16) & 0xff;
|
return (cmd->result >> 16) & 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* scsi_msg_to_host_byte() - translate message byte
|
||||||
|
*
|
||||||
|
* Translate the SCSI parallel message byte to a matching
|
||||||
|
* host byte setting. A message of COMMAND_COMPLETE indicates
|
||||||
|
* a successful command execution, any other message indicate
|
||||||
|
* an error. As the messages themselves only have a meaning
|
||||||
|
* for the SCSI parallel protocol this function translates
|
||||||
|
* them into a matching host byte value for SCSI EH.
|
||||||
|
*/
|
||||||
|
static inline void scsi_msg_to_host_byte(struct scsi_cmnd *cmd, u8 msg)
|
||||||
|
{
|
||||||
|
switch (msg) {
|
||||||
|
case COMMAND_COMPLETE:
|
||||||
|
break;
|
||||||
|
case ABORT_TASK_SET:
|
||||||
|
set_host_byte(cmd, DID_ABORT);
|
||||||
|
break;
|
||||||
|
case TARGET_RESET:
|
||||||
|
set_host_byte(cmd, DID_RESET);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
set_host_byte(cmd, DID_ERROR);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static inline unsigned scsi_transfer_length(struct scsi_cmnd *scmd)
|
static inline unsigned scsi_transfer_length(struct scsi_cmnd *scmd)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue