ips.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 1,297 行 · 第 1/3 页

H
1,297
字号
   #define IPS_BIOS_HEADER             0xC0   /* time oriented stuff */   #define IPS_IS_LEAP_YEAR(y)           (((y % 4 == 0) && ((y % 100 != 0) || (y % 400 == 0))) ? 1 : 0)   #define IPS_NUM_LEAP_YEARS_THROUGH(y) ((y) / 4 - (y) / 100 + (y) / 400)   #define IPS_SECS_MIN                 60   #define IPS_SECS_HOUR                3600   #define IPS_SECS_8HOURS              28800   #define IPS_SECS_DAY                 86400   #define IPS_DAYS_NORMAL_YEAR         365   #define IPS_DAYS_LEAP_YEAR           366   #define IPS_EPOCH_YEAR               1970   /*    * Scsi_Host Template    */#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)   static int ips_proc24_info(char *, char **, off_t, int, int, int);   static void ips_select_queue_depth(struct Scsi_Host *, Scsi_Device *);   static int ips_biosparam(Disk *disk, kdev_t dev, int geom[]);#else   int ips_proc_info(struct Scsi_Host *, char *, char **, off_t, int, int);   static int ips_biosparam(struct scsi_device *sdev, struct block_device *bdev,		sector_t capacity, int geom[]);   int ips_slave_configure(Scsi_Device *SDptr);#endif/* * Raid Command Formats */typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  log_drv;   uint8_t  sg_count;   uint32_t lba;   uint32_t sg_addr;   uint16_t sector_count;   uint8_t  segment_4G;   uint8_t  enhanced_sg;   uint32_t ccsar;   uint32_t cccr;} IPS_IO_CMD, *PIPS_IO_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint16_t reserved;   uint32_t reserved2;   uint32_t buffer_addr;   uint32_t reserved3;   uint32_t ccsar;   uint32_t cccr;} IPS_LD_CMD, *PIPS_LD_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  reserved;   uint8_t  reserved2;   uint32_t reserved3;   uint32_t buffer_addr;   uint32_t reserved4;} IPS_IOCTL_CMD, *PIPS_IOCTL_CMD; typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  channel;   uint8_t  reserved3;   uint8_t  reserved4;   uint8_t  reserved5;   uint8_t  reserved6;   uint8_t  reserved7;   uint8_t  reserved8;   uint8_t  reserved9;   uint8_t  reserved10;   uint8_t  reserved11;   uint8_t  reserved12;   uint8_t  reserved13;   uint8_t  reserved14;   uint8_t  adapter_flag;} IPS_RESET_CMD, *PIPS_RESET_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint16_t reserved;   uint32_t reserved2;   uint32_t dcdb_address;   uint16_t reserved3;   uint8_t  segment_4G;   uint8_t  enhanced_sg;   uint32_t ccsar;   uint32_t cccr;} IPS_DCDB_CMD, *PIPS_DCDB_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  channel;   uint8_t  source_target;   uint32_t reserved;   uint32_t reserved2;   uint32_t reserved3;   uint32_t ccsar;   uint32_t cccr;} IPS_CS_CMD, *PIPS_CS_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  log_drv;   uint8_t  control;   uint32_t reserved;   uint32_t reserved2;   uint32_t reserved3;   uint32_t ccsar;   uint32_t cccr;} IPS_US_CMD, *PIPS_US_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  reserved;   uint8_t  state;   uint32_t reserved2;   uint32_t reserved3;   uint32_t reserved4;   uint32_t ccsar;   uint32_t cccr;} IPS_FC_CMD, *PIPS_FC_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  reserved;   uint8_t  desc;   uint32_t reserved2;   uint32_t buffer_addr;   uint32_t reserved3;   uint32_t ccsar;   uint32_t cccr;} IPS_STATUS_CMD, *PIPS_STATUS_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  page;   uint8_t  write;   uint32_t reserved;   uint32_t buffer_addr;   uint32_t reserved2;   uint32_t ccsar;   uint32_t cccr;} IPS_NVRAM_CMD, *PIPS_NVRAM_CMD;typedef struct {    uint8_t  op_code;    uint8_t  command_id;    uint16_t reserved;    uint32_t count;    uint32_t buffer_addr;    uint32_t reserved2;} IPS_VERSION_INFO, *PIPS_VERSION_INFO;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  reset_count;   uint8_t  reset_type;   uint8_t  second;   uint8_t  minute;   uint8_t  hour;   uint8_t  day;   uint8_t  reserved1[4];   uint8_t  month;   uint8_t  yearH;   uint8_t  yearL;   uint8_t  reserved2;} IPS_FFDC_CMD, *PIPS_FFDC_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  type;   uint8_t  direction;   uint32_t count;   uint32_t buffer_addr;   uint8_t  total_packets;   uint8_t  packet_num;   uint16_t reserved;} IPS_FLASHFW_CMD, *PIPS_FLASHFW_CMD;typedef struct {   uint8_t  op_code;   uint8_t  command_id;   uint8_t  type;   uint8_t  direction;   uint32_t count;   uint32_t buffer_addr;   uint32_t offset;} IPS_FLASHBIOS_CMD, *PIPS_FLASHBIOS_CMD;typedef union {   IPS_IO_CMD         basic_io;   IPS_LD_CMD         logical_info;   IPS_IOCTL_CMD      ioctl_info;   IPS_DCDB_CMD       dcdb;   IPS_CS_CMD         config_sync;   IPS_US_CMD         unlock_stripe;   IPS_FC_CMD         flush_cache;   IPS_STATUS_CMD     status;   IPS_NVRAM_CMD      nvram;   IPS_FFDC_CMD       ffdc;   IPS_FLASHFW_CMD    flashfw;   IPS_FLASHBIOS_CMD  flashbios;   IPS_VERSION_INFO   version_info;   IPS_RESET_CMD      reset;} IPS_HOST_COMMAND, *PIPS_HOST_COMMAND;typedef struct {   uint8_t  logical_id;   uint8_t  reserved;   uint8_t  raid_level;   uint8_t  state;   uint32_t sector_count;} IPS_DRIVE_INFO, *PIPS_DRIVE_INFO;typedef struct {   uint8_t       no_of_log_drive;   uint8_t       reserved[3];   IPS_DRIVE_INFO drive_info[IPS_MAX_LD];} IPS_LD_INFO, *PIPS_LD_INFO;typedef struct {   uint8_t   device_address;   uint8_t   cmd_attribute;   uint16_t  transfer_length;   uint32_t  buffer_pointer;   uint8_t   cdb_length;   uint8_t   sense_length;   uint8_t   sg_count;   uint8_t   reserved;   uint8_t   scsi_cdb[12];   uint8_t   sense_info[64];   uint8_t   scsi_status;   uint8_t   reserved2[3];} IPS_DCDB_TABLE, *PIPS_DCDB_TABLE;typedef struct {   uint8_t   device_address;   uint8_t   cmd_attribute;   uint8_t   cdb_length;   uint8_t   reserved_for_LUN; 	    uint32_t  transfer_length;   uint32_t  buffer_pointer;   uint16_t  sg_count;   uint8_t   sense_length;   uint8_t   scsi_status;   uint32_t  reserved;   uint8_t   scsi_cdb[16];   uint8_t   sense_info[56];} IPS_DCDB_TABLE_TAPE, *PIPS_DCDB_TABLE_TAPE;typedef union {   struct {      volatile uint8_t  reserved;      volatile uint8_t  command_id;      volatile uint8_t  basic_status;      volatile uint8_t  extended_status;   } fields;   volatile uint32_t    value;} IPS_STATUS, *PIPS_STATUS;typedef struct {   IPS_STATUS           status[IPS_MAX_CMDS + 1];   volatile PIPS_STATUS p_status_start;   volatile PIPS_STATUS p_status_end;   volatile PIPS_STATUS p_status_tail;   volatile uint32_t    hw_status_start;   volatile uint32_t    hw_status_tail;} IPS_ADAPTER, *PIPS_ADAPTER;typedef struct {   uint8_t  ucLogDriveCount;   uint8_t  ucMiscFlag;   uint8_t  ucSLTFlag;   uint8_t  ucBSTFlag;   uint8_t  ucPwrChgCnt;   uint8_t  ucWrongAdrCnt;   uint8_t  ucUnidentCnt;   uint8_t  ucNVramDevChgCnt;   uint8_t  CodeBlkVersion[8];   uint8_t  BootBlkVersion[8];   uint32_t ulDriveSize[IPS_MAX_LD];   uint8_t  ucConcurrentCmdCount;   uint8_t  ucMaxPhysicalDevices;   uint16_t usFlashRepgmCount;   uint8_t  ucDefunctDiskCount;   uint8_t  ucRebuildFlag;   uint8_t  ucOfflineLogDrvCount;   uint8_t  ucCriticalDrvCount;   uint16_t usConfigUpdateCount;   uint8_t  ucBlkFlag;   uint8_t  reserved;   uint16_t usAddrDeadDisk[IPS_MAX_CHANNELS * (IPS_MAX_TARGETS + 1)];} IPS_ENQ, *PIPS_ENQ;typedef struct {   uint8_t  ucInitiator;   uint8_t  ucParameters;   uint8_t  ucMiscFlag;   uint8_t  ucState;   uint32_t ulBlockCount;   uint8_t  ucDeviceId[28];} IPS_DEVSTATE, *PIPS_DEVSTATE;typedef struct {   uint8_t  ucChn;   uint8_t  ucTgt;   uint16_t ucReserved;   uint32_t ulStartSect;   uint32_t ulNoOfSects;} IPS_CHUNK, *PIPS_CHUNK;typedef struct {   uint16_t ucUserField;   uint8_t  ucState;   uint8_t  ucRaidCacheParam;   uint8_t  ucNoOfChunkUnits;   uint8_t  ucStripeSize;   uint8_t  ucParams;   uint8_t  ucReserved;   uint32_t ulLogDrvSize;   IPS_CHUNK chunk[IPS_MAX_CHUNKS];} IPS_LD, *PIPS_LD;typedef struct {   uint8_t  board_disc[8];   uint8_t  processor[8];   uint8_t  ucNoChanType;   uint8_t  ucNoHostIntType;   uint8_t  ucCompression;   uint8_t  ucNvramType;   uint32_t ulNvramSize;} IPS_HARDWARE, *PIPS_HARDWARE;typedef struct {   uint8_t        ucLogDriveCount;   uint8_t        ucDateD;   uint8_t        ucDateM;   uint8_t        ucDateY;   uint8_t        init_id[4];   uint8_t        host_id[12];   uint8_t        time_sign[8];   uint32_t       UserOpt;   uint16_t       user_field;   uint8_t        ucRebuildRate;   uint8_t        ucReserve;   IPS_HARDWARE   hardware_disc;   IPS_LD         logical_drive[IPS_MAX_LD];   IPS_DEVSTATE   dev[IPS_MAX_CHANNELS][IPS_MAX_TARGETS+1];   uint8_t        reserved[512];} IPS_CONF, *PIPS_CONF;typedef struct {   uint32_t  signature;   uint8_t   reserved1;   uint8_t   adapter_slot;   uint16_t  adapter_type;   uint8_t   ctrl_bios[8];   uint8_t   versioning;                   /* 1 = Versioning Supported, else 0 */   uint8_t   version_mismatch;             /* 1 = Versioning MisMatch,  else 0 */   uint8_t   reserved2;   uint8_t   operating_system;   uint8_t   driver_high[4];   uint8_t   driver_low[4];   uint8_t   BiosCompatibilityID[8];   uint8_t   ReservedForOS2[8];   uint8_t   bios_high[4];                 /* Adapter's Flashed BIOS Version   */   uint8_t   bios_low[4];   uint8_t   adapter_order[16];            /* BIOS Telling us the Sort Order   */   uint8_t   Filler[60];} IPS_NVRAM_P5, *PIPS_NVRAM_P5;/*--------------------------------------------------------------------------*//* Data returned from a GetVersion Command                                  *//*--------------------------------------------------------------------------*/                                             /* SubSystem Parameter[4]      */#define  IPS_GET_VERSION_SUPPORT 0x00018000  /* Mask for Versioning Support */typedef struct {   uint32_t  revision;   uint8_t   bootBlkVersion[32];   uint8_t   bootBlkAttributes[4];   uint8_t   codeBlkVersion[32];   uint8_t   biosVersion[32];   uint8_t   biosAttributes[4];   uint8_t   compatibilityId[32];   uint8_t   reserved[4];} IPS_VERSION_DATA;typedef struct _IPS_SUBSYS {   uint32_t  param[128];} IPS_SUBSYS, *PIPS_SUBSYS;/** ** SCSI Structures **//* * Inquiry Data Format */typedef struct {   uint8_t   DeviceType;   uint8_t   DeviceTypeQualifier;   uint8_t   Version;   uint8_t   ResponseDataFormat;   uint8_t   AdditionalLength;   uint8_t   Reserved;   uint8_t   Flags[2];   uint8_t   VendorId[8];   uint8_t   ProductId[16];   uint8_t   ProductRevisionLevel[4];   uint8_t   Reserved2;                                  /* Provides NULL terminator to name */} IPS_SCSI_INQ_DATA, *PIPS_SCSI_INQ_DATA;

⌨️ 快捷键说明

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