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 + -
显示快捷键?