cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cciss_defs.h (3281B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2#ifndef CCISS_DEFS_H
      3#define CCISS_DEFS_H
      4
      5#include <linux/types.h>
      6
      7/* general boundary definitions */
      8#define SENSEINFOBYTES          32 /* note that this value may vary
      9				      between host implementations */
     10
     11/* Command Status value */
     12#define CMD_SUCCESS             0x0000
     13#define CMD_TARGET_STATUS       0x0001
     14#define CMD_DATA_UNDERRUN       0x0002
     15#define CMD_DATA_OVERRUN        0x0003
     16#define CMD_INVALID             0x0004
     17#define CMD_PROTOCOL_ERR        0x0005
     18#define CMD_HARDWARE_ERR        0x0006
     19#define CMD_CONNECTION_LOST     0x0007
     20#define CMD_ABORTED             0x0008
     21#define CMD_ABORT_FAILED        0x0009
     22#define CMD_UNSOLICITED_ABORT   0x000A
     23#define CMD_TIMEOUT             0x000B
     24#define CMD_UNABORTABLE		0x000C
     25
     26/* transfer direction */
     27#define XFER_NONE               0x00
     28#define XFER_WRITE              0x01
     29#define XFER_READ               0x02
     30#define XFER_RSVD               0x03
     31
     32/* task attribute */
     33#define ATTR_UNTAGGED           0x00
     34#define ATTR_SIMPLE             0x04
     35#define ATTR_HEADOFQUEUE        0x05
     36#define ATTR_ORDERED            0x06
     37#define ATTR_ACA                0x07
     38
     39/* cdb type */
     40#define TYPE_CMD				0x00
     41#define TYPE_MSG				0x01
     42
     43/* Type defs used in the following structs */
     44#define BYTE __u8
     45#define WORD __u16
     46#define HWORD __u16
     47#define DWORD __u32
     48
     49#define CISS_MAX_LUN	1024
     50
     51#define LEVEL2LUN   1 /* index into Target(x) structure, due to byte swapping */
     52#define LEVEL3LUN   0
     53
     54#pragma pack(1)
     55
     56/* Command List Structure */
     57typedef union _SCSI3Addr_struct {
     58   struct {
     59    BYTE Dev;
     60    BYTE Bus:6;
     61    BYTE Mode:2;        /* b00 */
     62  } PeripDev;
     63   struct {
     64    BYTE DevLSB;
     65    BYTE DevMSB:6;
     66    BYTE Mode:2;        /* b01 */
     67  } LogDev;
     68   struct {
     69    BYTE Dev:5;
     70    BYTE Bus:3;
     71    BYTE Targ:6;
     72    BYTE Mode:2;        /* b10 */
     73  } LogUnit;
     74} SCSI3Addr_struct;
     75
     76typedef struct _PhysDevAddr_struct {
     77  DWORD             TargetId:24;
     78  DWORD             Bus:6;
     79  DWORD             Mode:2;
     80  SCSI3Addr_struct  Target[2]; /* 2 level target device addr */
     81} PhysDevAddr_struct;
     82
     83typedef struct _LogDevAddr_struct {
     84  DWORD            VolId:30;
     85  DWORD            Mode:2;
     86  BYTE             reserved[4];
     87} LogDevAddr_struct;
     88
     89typedef union _LUNAddr_struct {
     90  BYTE               LunAddrBytes[8];
     91  SCSI3Addr_struct   SCSI3Lun[4];
     92  PhysDevAddr_struct PhysDev;
     93  LogDevAddr_struct  LogDev;
     94} LUNAddr_struct;
     95
     96typedef struct _RequestBlock_struct {
     97  BYTE   CDBLen;
     98  struct {
     99    BYTE Type:3;
    100    BYTE Attribute:3;
    101    BYTE Direction:2;
    102  } Type;
    103  HWORD  Timeout;
    104  BYTE   CDB[16];
    105} RequestBlock_struct;
    106
    107typedef union _MoreErrInfo_struct{
    108  struct {
    109    BYTE  Reserved[3];
    110    BYTE  Type;
    111    DWORD ErrorInfo;
    112  } Common_Info;
    113  struct{
    114    BYTE  Reserved[2];
    115    BYTE  offense_size; /* size of offending entry */
    116    BYTE  offense_num;  /* byte # of offense 0-base */
    117    DWORD offense_value;
    118  } Invalid_Cmd;
    119} MoreErrInfo_struct;
    120typedef struct _ErrorInfo_struct {
    121  BYTE               ScsiStatus;
    122  BYTE               SenseLen;
    123  HWORD              CommandStatus;
    124  DWORD              ResidualCnt;
    125  MoreErrInfo_struct MoreErrInfo;
    126  BYTE               SenseInfo[SENSEINFOBYTES];
    127} ErrorInfo_struct;
    128
    129#pragma pack()
    130
    131#endif /* CCISS_DEFS_H */