|
Packit Service |
646995 |
/*
|
|
Packit Service |
646995 |
* this is from the linux kernel scsi_eh.h
|
|
Packit Service |
646995 |
*/
|
|
Packit Service |
646995 |
#ifndef _SCSI_SCSI_H
|
|
Packit Service |
646995 |
#define _SCSI_SCSI_H
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
#include <stdint.h>
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
/*
|
|
Packit Service |
646995 |
* This is a slightly modified SCSI sense "descriptor" format header.
|
|
Packit Service |
646995 |
* The addition is to allow the 0x70 and 0x71 response codes. The idea
|
|
Packit Service |
646995 |
* is to place the salient data from either "fixed" or "descriptor" sense
|
|
Packit Service |
646995 |
* format into one structure to ease application processing.
|
|
Packit Service |
646995 |
*
|
|
Packit Service |
646995 |
* The original sense buffer should be kept around for those cases
|
|
Packit Service |
646995 |
* in which more information is required (e.g. the LBA of a MEDIUM ERROR).
|
|
Packit Service |
646995 |
*/
|
|
Packit Service |
646995 |
struct scsi_sense_hdr { /* See SPC-3 section 4.5 */
|
|
Packit Service |
646995 |
uint8_t response_code; /* permit: 0x0, 0x70, 0x71, 0x72, 0x73 */
|
|
Packit Service |
646995 |
uint8_t sense_key;
|
|
Packit Service |
646995 |
uint8_t asc;
|
|
Packit Service |
646995 |
uint8_t ascq;
|
|
Packit Service |
646995 |
uint8_t byte4;
|
|
Packit Service |
646995 |
uint8_t byte5;
|
|
Packit Service |
646995 |
uint8_t byte6;
|
|
Packit Service |
646995 |
uint8_t additional_length; /* always 0 for fixed sense format */
|
|
Packit Service |
646995 |
};
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
static inline int scsi_sense_valid(struct scsi_sense_hdr *sshdr)
|
|
Packit Service |
646995 |
{
|
|
Packit Service |
646995 |
if (!sshdr)
|
|
Packit Service |
646995 |
return 0;
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
return (sshdr->response_code & 0x70) == 0x70;
|
|
Packit Service |
646995 |
}
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
extern int scsi_normalize_sense(const uint8_t *sense_buffer, int sb_len,
|
|
Packit Service |
646995 |
struct scsi_sense_hdr *sshdr);
|
|
Packit Service |
646995 |
|
|
Packit Service |
646995 |
#endif
|