⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scsi3.h

📁 优龙2410linux2.6.8内核源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* *  linux/drivers/message/fusion/scsi3.h *      SCSI-3 definitions and macros. *      (Ultimately) SCSI-3 definitions; for now, inheriting *      SCSI-2 definitions. * *  Copyright (c) 1996-2004 Steven J. Ralston *  Written By: Steven J. Ralston (19960517) *  (mailto:sjralston1@netscape.net) *  (mailto:mpt_linux_developer@lsil.com) * *  $Id: scsi3.h,v 1.9 2002/02/27 18:45:02 sralston Exp $ */#ifndef SCSI3_H_INCLUDED#define SCSI3_H_INCLUDED/***************************************************************************//**************************************************************************** * *  Includes */#ifdef __KERNEL__#include <linux/types.h>#else    #ifndef U_STUFF_DEFINED    #define U_STUFF_DEFINED    typedef unsigned char u8;    typedef unsigned short u16;    typedef unsigned int u32;    #endif#endif/**************************************************************************** * *  Defines *//* *    SCSI Commands */#define CMD_TestUnitReady      0x00#define CMD_RezeroUnit         0x01  /* direct-access devices */#define CMD_Rewind             0x01  /* sequential-access devices */#define CMD_RequestSense       0x03#define CMD_FormatUnit         0x04#define CMD_ReassignBlock      0x07#define CMD_Read6              0x08#define CMD_Write6             0x0A#define CMD_WriteFilemark      0x10#define CMD_Space              0x11#define CMD_Inquiry            0x12#define CMD_ModeSelect6        0x15#define CMD_ModeSense6         0x1A#define CMD_Reserve6           0x16#define CMD_Release6           0x17#define CMD_Erase              0x19#define CMD_StartStopUnit      0x1b  /* direct-access devices */#define CMD_LoadUnload         0x1b  /* sequential-access devices */#define CMD_ReceiveDiagnostic  0x1C#define CMD_SendDiagnostic     0x1D#define CMD_ReadCapacity       0x25#define CMD_Read10             0x28#define CMD_Write10            0x2A#define CMD_WriteVerify        0x2E#define CMD_Verify             0x2F#define CMD_SynchronizeCache   0x35#define CMD_ReadDefectData     0x37#define CMD_WriteBuffer        0x3B#define CMD_ReadBuffer         0x3C#define CMD_ReadLong           0x3E#define CMD_LogSelect          0x4C#define CMD_LogSense           0x4D#define CMD_ModeSelect10       0x55#define CMD_Reserve10          0x56#define CMD_Release10          0x57#define CMD_ModeSense10        0x5A#define CMD_PersistReserveIn   0x5E#define CMD_PersistReserveOut  0x5F#define CMD_ReportLuns         0xA0/* *    Control byte field */#define CONTROL_BYTE_NACA_BIT  0x04#define CONTROL_BYTE_Flag_BIT  0x02#define CONTROL_BYTE_Link_BIT  0x01/* *    SCSI Messages */#define MSG_COMPLETE             0x00#define MSG_EXTENDED             0x01#define MSG_SAVE_POINTERS        0x02#define MSG_RESTORE_POINTERS     0x03#define MSG_DISCONNECT           0x04#define MSG_IDERROR              0x05#define MSG_ABORT                0x06#define MSG_REJECT               0x07#define MSG_NOP                  0x08#define MSG_PARITY_ERROR         0x09#define MSG_LINKED_CMD_COMPLETE  0x0a#define MSG_LCMD_COMPLETE_W_FLG  0x0b#define MSG_BUS_DEVICE_RESET     0x0c#define MSG_ABORT_TAG            0x0d#define MSG_CLEAR_QUEUE          0x0e#define MSG_INITIATE_RECOVERY    0x0f#define MSG_RELEASE_RECOVRY      0x10#define MSG_TERMINATE_IO         0x11#define MSG_SIMPLE_QUEUE         0x20#define MSG_HEAD_OF_QUEUE        0x21#define MSG_ORDERED_QUEUE        0x22#define MSG_IGNORE_WIDE_RESIDUE  0x23#define MSG_IDENTIFY             0x80#define MSG_IDENTIFY_W_DISC      0xc0/* *    SCSI Phases */#define PHS_DATA_OUT  0x00#define PHS_DATA_IN   0x01#define PHS_COMMAND   0x02#define PHS_STATUS    0x03#define PHS_MSG_OUT   0x06#define PHS_MSG_IN    0x07/* *    Statuses */#define STS_GOOD                        0x00#define STS_CHECK_CONDITION             0x02#define STS_CONDITION_MET               0x04#define STS_BUSY                        0x08#define STS_INTERMEDIATE                0x10#define STS_INTERMEDIATE_CONDITION_MET  0x14#define STS_RESERVATION_CONFLICT        0x18#define STS_COMMAND_TERMINATED          0x22#define STS_TASK_SET_FULL               0x28#define    STS_QUEUE_FULL               0x28#define STS_ACA_ACTIVE                  0x30#define STS_VALID_MASK                  0x3e#define SCSI_STATUS(x)  ((x) & STS_VALID_MASK)/* *    SCSI QTag Types */#define QTAG_SIMPLE     0x20#define QTAG_HEAD_OF_Q  0x21#define QTAG_ORDERED    0x22/* *    SCSI Sense Key Definitons */#define SK_NO_SENSE         0x00#define SK_RECOVERED_ERROR  0x01#define SK_NOT_READY        0x02#define SK_MEDIUM_ERROR     0x03#define SK_HARDWARE_ERROR   0x04#define SK_ILLEGAL_REQUEST  0x05#define SK_UNIT_ATTENTION   0x06#define SK_DATA_PROTECT     0x07#define SK_BLANK_CHECK      0x08#define SK_VENDOR_SPECIFIC  0x09#define SK_COPY_ABORTED     0x0a#define SK_ABORTED_COMMAND  0x0b#define SK_EQUAL            0x0c#define SK_VOLUME_OVERFLOW  0x0d#define SK_MISCOMPARE       0x0e#define SK_RESERVED         0x0f#define SCSI_MAX_INQUIRY_BYTES  96#define SCSI_STD_INQUIRY_BYTES  36#undef USE_SCSI_COMPLETE_INQDATA/* *      Structure definition for SCSI Inquiry Data * *  NOTE: The following structure is 96 bytes in size *      iff USE_SCSI_COMPLETE_INQDATA IS defined above (i.e. w/ "#define"). *      If USE_SCSI_COMPLETE_INQDATA is NOT defined above (i.e. w/ "#undef") *      then the following structure is only 36 bytes in size. *  THE CHOICE IS YOURS! */typedef struct SCSI_Inquiry_Data{#ifdef USE_SCSI_COMPLETE_INQDATA    u8   InqByte[SCSI_MAX_INQUIRY_BYTES];#else    u8   InqByte[SCSI_STD_INQUIRY_BYTES];#endif/* * the following structure works only for little-endian (Intel, * LSB first (1234) byte order) systems with 4-byte ints. *        u32    Periph_Device_Type    : 5,               Periph_Qualifier      : 3,               Device_Type_Modifier  : 7,               Removable_Media       : 1,               ANSI_Version          : 3,               ECMA_Version          : 3,               ISO_Version           : 2,               Response_Data_Format  : 4,               reserved_0            : 3,               AERC                  : 1  ;        u32    Additional_Length     : 8,               reserved_1            :16,               SftReset              : 1,               CmdQue                : 1,               reserved_2            : 1,               Linked                : 1,               Sync                  : 1,               WBus16                : 1,               WBus32                : 1,               RelAdr                : 1  ;        u8     Vendor_ID[8];        u8     Product_ID[16];        u8     Revision_Level [4];#ifdef USE_SCSI_COMPLETE_INQDATA        u8     Vendor_Specific[20];        u8     reserved_3[40];#endif * */} SCSI_Inquiry_Data_t;#define INQ_PERIPHINFO_BYTE            0#define   INQ_Periph_Qualifier_MASK      0xe0#define   INQ_Periph_Device_Type_MASK    0x1f#define INQ_Peripheral_Qualifier(inqp) \    (int)((*((u8*)(inqp)+INQ_PERIPHINFO_BYTE) & INQ_Periph_Qualifier_MASK) >> 5)#define INQ_Peripheral_Device_Type(inqp) \    (int)(*((u8*)(inqp)+INQ_PERIPHINFO_BYTE) & INQ_Periph_Device_Type_MASK)#define INQ_DEVTYPEMOD_BYTE            1#define   INQ_RMB_BIT                    0x80#define   INQ_Device_Type_Modifier_MASK  0x7f#define INQ_Removable_Medium(inqp) \    (int)(*((u8*)(inqp)+INQ_DEVTYPEMOD_BYTE) & INQ_RMB_BIT)#define INQ_Device_Type_Modifier(inqp) \    (int)(*((u8*)(inqp)+INQ_DEVTYPEMOD_BYTE) & INQ_Device_Type_Modifier_MASK)#define INQ_VERSIONINFO_BYTE           2#define   INQ_ISO_Version_MASK           0xc0#define   INQ_ECMA_Version_MASK          0x38#define   INQ_ANSI_Version_MASK          0x07#define INQ_ISO_Version(inqp) \    (int)(*((u8*)(inqp)+INQ_VERSIONINFO_BYTE) & INQ_ISO_Version_MASK)#define INQ_ECMA_Version(inqp) \    (int)(*((u8*)(inqp)+INQ_VERSIONINFO_BYTE) & INQ_ECMA_Version_MASK)#define INQ_ANSI_Version(inqp) \    (int)(*((u8*)(inqp)+INQ_VERSIONINFO_BYTE) & INQ_ANSI_Version_MASK)#define INQ_BYTE3                      3#define   INQ_AERC_BIT                   0x80#define   INQ_TrmTsk_BIT                 0x40#define   INQ_NormACA_BIT                0x20#define   INQ_RDF_MASK                   0x0F#define INQ_AER_Capable(inqp) \    (int)(*((u8*)(inqp)+INQ_BYTE3) & INQ_AERC_BIT)#define INQ_TrmTsk(inqp) \    (int)(*((u8*)(inqp)+INQ_BYTE3) & INQ_TrmTsk_BIT)#define INQ_NormACA(inqp) \    (int)(*((u8*)(inqp)+INQ_BYTE3) & INQ_NormACA_BIT)#define INQ_Response_Data_Format(inqp) \    (int)(*((u8*)(inqp)+INQ_BYTE3) & INQ_RDF_MASK)#define INQ_CAPABILITY_BYTE            7#define   INQ_RelAdr_BIT                 0x80#define   INQ_WBus32_BIT                 0x40#define   INQ_WBus16_BIT                 0x20#define   INQ_Sync_BIT                   0x10#define   INQ_Linked_BIT                 0x08  /*      INQ_Reserved BIT               0x40 */#define   INQ_CmdQue_BIT                 0x02#define   INQ_SftRe_BIT                  0x01#define IS_RelAdr_DEV(inqp) \    (int)(*((u8*)(inqp)+INQ_CAPABILITY_BYTE) & INQ_RelAdr_BIT)#define IS_WBus32_DEV(inqp) \    (int)(*((u8*)(inqp)+INQ_CAPABILITY_BYTE) & INQ_WBus32_BIT)#define IS_WBus16_DEV(inqp) \    (int)(*((u8*)(inqp)+INQ_CAPABILITY_BYTE) & INQ_WBus16_BIT)#define IS_Sync_DEV(inqp) \    (int)(*((u8*)(inqp)+INQ_CAPABILITY_BYTE) & INQ_Sync_BIT)#define IS_Linked_DEV(inqp) \    (int)(*((u8*)(inqp)+INQ_CAPABILITY_BYTE) & INQ_Linked_BIT)#define IS_CmdQue_DEV(inqp) \    (int)(*((u8*)(inqp)+INQ_CAPABILITY_BYTE) & INQ_CmdQue_BIT)#define IS_SftRe_DEV(inqp) \    (int)(*((u8*)(inqp)+INQ_CAPABILITY_BYTE) & INQ_SftRe_BIT)#define INQ_Width_BITS \    (INQ_WBus32_BIT | INQ_WBus16_BIT)#define IS_Wide_DEV(inqp) \    (int)(*((u8*)(inqp)+INQ_CAPABILITY_BYTE) & INQ_Width_BITS)/* *      SCSI peripheral device types */#define SCSI_TYPE_DAD               0x00  /* Direct Access Device */#define SCSI_TYPE_SAD               0x01  /* Sequential Access Device */#define SCSI_TYPE_TAPE  SCSI_TYPE_SAD#define SCSI_TYPE_PRT               0x02  /* Printer */#define SCSI_TYPE_PROC              0x03  /* Processor */#define SCSI_TYPE_WORM              0x04#define SCSI_TYPE_CDROM             0x05#define SCSI_TYPE_SCAN              0x06  /* Scanner */#define SCSI_TYPE_OPTICAL           0x07  /* Magneto/Optical */#define SCSI_TYPE_CHANGER           0x08#define SCSI_TYPE_COMM              0x09  /* Communications device */#define SCSI_TYPE_UNKNOWN           0x1f#define SCSI_TYPE_UNCONFIGURED_LUN  0x7f#define SCSI_TYPE_MAX_KNOWN         SCSI_TYPE_COMM/* *      Peripheral Qualifiers */#define DEVICE_PRESENT     0x00#define LUN_NOT_PRESENT    0x01#define LUN_NOT_SUPPORTED  0x03/* *      ANSI Versions */#ifndef SCSI_1#define SCSI_1  0x01#endif#ifndef SCSI_2#define SCSI_2  0x02#endif#ifndef SCSI_3#define SCSI_3  0x03#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -