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

📄 mbox_defs.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 2 页
字号:
	uint8_t		ldrv_op_counter;	uint8_t		ldrv_opid;	uint8_t		ldrv_opcmd;	uint8_t		ldrv_opstatus;	uint8_t		ldrv_state_counter;	uint8_t		ldrv_state_id;	uint8_t		ldrv_state_new;	uint8_t		ldrv_state_old;	uint8_t		pdrv_state_counter;	uint8_t		pdrv_state_id;	uint8_t		pdrv_state_new;	uint8_t		pdrv_state_old;	uint8_t		pdrv_fmt_counter;	uint8_t		pdrv_fmt_id;	uint8_t		pdrv_fmt_val;	uint8_t		pdrv_fmt_rsvd;	uint8_t		targ_xfer_counter;	uint8_t		targ_xfer_id;	uint8_t		targ_xfer_val;	uint8_t		targ_xfer_rsvd;	uint8_t		fcloop_id_chg_counter;	uint8_t		fcloopid_pdrvid;	uint8_t		fcloop_id0;	uint8_t		fcloop_id1;	uint8_t		fcloop_state_counter;	uint8_t		fcloop_state0;	uint8_t		fcloop_state1;	uint8_t		fcloop_state_rsvd;} __attribute__ ((packed)) mraid_notify_t;/** * mraid_inquiry3_t - enquiry for device information * * @data_size		: current size in bytes (not including resvd) * @notify		: * @notify_rsvd		: * @rebuild_rate	: rebuild rate (0% - 100%) * @cache_flush_int	: cache flush interval in seconds * @sense_alert		: * @drive_insert_count	: drive insertion count * @battery_status	: * @num_ldrv		: no. of Log Drives configured * @recon_state		: state of reconstruct * @ldrv_op_status	: logdrv Status * @ldrv_size		: size of each log drv * @ldrv_prop		: * @ldrv_state		: state of log drives * @pdrv_state		: state of phys drvs. * @pdrv_format		: * @targ_xfer		: phys device transfer rate * @pad1k		: 761 + 263reserved = 1024 bytes total size */#define MAX_NOTIFY_SIZE		0x80#define CUR_NOTIFY_SIZE		sizeof(mraid_notify_t)typedef struct {	uint32_t	data_size;	mraid_notify_t	notify;	uint8_t		notify_rsvd[MAX_NOTIFY_SIZE - CUR_NOTIFY_SIZE];	uint8_t		rebuild_rate;	uint8_t		cache_flush_int;	uint8_t		sense_alert;	uint8_t		drive_insert_count;	uint8_t		battery_status;	uint8_t		num_ldrv;	uint8_t		recon_state[MAX_LOGICAL_DRIVES_40LD / 8];	uint16_t	ldrv_op_status[MAX_LOGICAL_DRIVES_40LD / 8];	uint32_t	ldrv_size[MAX_LOGICAL_DRIVES_40LD];	uint8_t		ldrv_prop[MAX_LOGICAL_DRIVES_40LD];	uint8_t		ldrv_state[MAX_LOGICAL_DRIVES_40LD];	uint8_t		pdrv_state[FC_MAX_PHYSICAL_DEVICES];	uint16_t	pdrv_format[FC_MAX_PHYSICAL_DEVICES / 16];	uint8_t		targ_xfer[80];	uint8_t		pad1k[263];} __attribute__ ((packed)) mraid_inquiry3_t;/** * mraid_adapinfo_t - information about the adapter * @max_commands		: max concurrent commands supported * @rebuild_rate		: rebuild rate - 0% thru 100% * @max_targ_per_chan		: max targ per channel * @nchannels			: number of channels on HBA * @fw_version			: firmware version * @age_of_flash		: number of times FW has been flashed * @chip_set_value		: contents of 0xC0000832 * @dram_size			: in MB * @cache_flush_interval	: in seconds * @bios_version		: * @board_type			: * @sense_alert			: * @write_config_count		: increase with every configuration change * @drive_inserted_count	: increase with every drive inserted * @inserted_drive		: channel:Id of inserted drive * @battery_status		: bit 0: battery module missing *				bit 1: VBAD *				bit 2: temprature high *				bit 3: battery pack missing *				bit 4,5: *					00 - charge complete *					01 - fast charge in progress *					10 - fast charge fail *					11 - undefined *				bit 6: counter > 1000 *				bit 7: Undefined * @dec_fault_bus_info		: */typedef struct {	uint8_t		max_commands;	uint8_t		rebuild_rate;	uint8_t		max_targ_per_chan;	uint8_t		nchannels;	uint8_t		fw_version[4];	uint16_t	age_of_flash;	uint8_t		chip_set_value;	uint8_t		dram_size;	uint8_t		cache_flush_interval;	uint8_t		bios_version[4];	uint8_t		board_type;	uint8_t		sense_alert;	uint8_t		write_config_count;	uint8_t		battery_status;	uint8_t		dec_fault_bus_info;} __attribute__ ((packed)) mraid_adapinfo_t;/** * mraid_ldrv_info_t - information about the logical drives * @nldrv	: Number of logical drives configured * @rsvd	: * @size	: size of each logical drive * @prop	: * @state	: state of each logical drive */typedef struct {	uint8_t		nldrv;	uint8_t		rsvd[3];	uint32_t	size[MAX_LOGICAL_DRIVES_8LD];	uint8_t		prop[MAX_LOGICAL_DRIVES_8LD];	uint8_t		state[MAX_LOGICAL_DRIVES_8LD];} __attribute__ ((packed)) mraid_ldrv_info_t;/** * mraid_pdrv_info_t - information about the physical drives * @pdrv_state	: state of each physical drive */typedef struct {	uint8_t		pdrv_state[MBOX_MAX_PHYSICAL_DRIVES];	uint8_t		rsvd;} __attribute__ ((packed)) mraid_pdrv_info_t;/** * mraid_inquiry_t - RAID inquiry, mailbox command 0x05 * @mraid_adapinfo_t	: adapter information * @mraid_ldrv_info_t	: logical drives information * @mraid_pdrv_info_t	: physical drives information */typedef struct {	mraid_adapinfo_t	adapter_info;	mraid_ldrv_info_t	logdrv_info;	mraid_pdrv_info_t	pdrv_info;} __attribute__ ((packed)) mraid_inquiry_t;/** * mraid_extinq_t - RAID extended inquiry, mailbox command 0x04 * * @raid_inq		: raid inquiry * @phys_drv_format	: * @stack_attn		: * @modem_status	: * @rsvd		: */typedef struct {	mraid_inquiry_t	raid_inq;	uint16_t	phys_drv_format[MAX_MBOX_CHANNELS];	uint8_t		stack_attn;	uint8_t		modem_status;	uint8_t		rsvd[2];} __attribute__ ((packed)) mraid_extinq_t;/** * adap_device_t - device information * @channel	: channel fpor the device * @target	: target ID of the device */typedef struct {	uint8_t		channel;	uint8_t		target;}__attribute__ ((packed)) adap_device_t;/** * adap_span_40ld_t - 40LD span * @start_blk	: starting block * @num_blks	: number of blocks */typedef struct {	uint32_t	start_blk;	uint32_t	num_blks;	adap_device_t	device[MAX_ROW_SIZE_40LD];}__attribute__ ((packed)) adap_span_40ld_t;/** * adap_span_8ld_t - 8LD span * @start_blk	: starting block * @num_blks	: number of blocks */typedef struct {	uint32_t	start_blk;	uint32_t	num_blks;	adap_device_t	device[MAX_ROW_SIZE_8LD];}__attribute__ ((packed)) adap_span_8ld_t;/** * logdrv_param_t - logical drives parameters * * @span_depth	: total number of spans * @level	: RAID level * @read_ahead	: read ahead, no read ahead, adaptive read ahead * @stripe_sz	: encoded stripe size * @status	: status of the logical drive * @write_mode	: write mode, write_through/write_back * @direct_io	: direct io or through cache * @row_size	: number of stripes in a row */typedef struct {	uint8_t		span_depth;	uint8_t		level;	uint8_t		read_ahead;	uint8_t		stripe_sz;	uint8_t		status;	uint8_t		write_mode;	uint8_t		direct_io;	uint8_t		row_size;} __attribute__ ((packed)) logdrv_param_t;/** * logdrv_40ld_t - logical drive definition for 40LD controllers * @lparam	: logical drives parameters * @span	: span */typedef struct {	logdrv_param_t		lparam;	adap_span_40ld_t	span[SPAN_DEPTH_8_SPANS];}__attribute__ ((packed)) logdrv_40ld_t;/** * logdrv_8ld_span8_t - logical drive definition for 8LD controllers * @lparam	: logical drives parameters * @span	: span * * 8-LD logical drive with upto 8 spans */typedef struct {	logdrv_param_t	lparam;	adap_span_8ld_t	span[SPAN_DEPTH_8_SPANS];}__attribute__ ((packed)) logdrv_8ld_span8_t;/** * logdrv_8ld_span4_t - logical drive definition for 8LD controllers * @lparam	: logical drives parameters * @span	: span * * 8-LD logical drive with upto 4 spans */typedef struct {	logdrv_param_t	lparam;	adap_span_8ld_t	span[SPAN_DEPTH_4_SPANS];}__attribute__ ((packed)) logdrv_8ld_span4_t;/** * phys_drive_t - physical device information * @type	: Type of the device * @cur_status	: current status of the device * @tag_depth	: Level of tagging * @sync_neg	: sync negotiation - ENABLE or DISBALE * @size	: configurable size in terms of 512 byte */typedef struct {	uint8_t		type;	uint8_t		cur_status;	uint8_t		tag_depth;	uint8_t		sync_neg;	uint32_t	size;}__attribute__ ((packed)) phys_drive_t;/** * disk_array_40ld_t - disk array for 40LD controllers * @numldrv	: number of logical drives * @resvd	: * @ldrv	: logical drives information * @pdrv	: physical drives information */typedef struct {	uint8_t		numldrv;	uint8_t		resvd[3];	logdrv_40ld_t	ldrv[MAX_LOGICAL_DRIVES_40LD];	phys_drive_t	pdrv[MBOX_MAX_PHYSICAL_DRIVES];}__attribute__ ((packed)) disk_array_40ld_t;/** * disk_array_8ld_span8_t - disk array for 8LD controllers * @numldrv	: number of logical drives * @resvd	: * @ldrv	: logical drives information * @pdrv	: physical drives information * * Disk array for 8LD logical drives with upto 8 spans */typedef struct {	uint8_t			numldrv;	uint8_t			resvd[3];	logdrv_8ld_span8_t	ldrv[MAX_LOGICAL_DRIVES_8LD];	phys_drive_t		pdrv[MBOX_MAX_PHYSICAL_DRIVES];}__attribute__ ((packed)) disk_array_8ld_span8_t;/** * disk_array_8ld_span4_t - disk array for 8LD controllers * @numldrv	: number of logical drives * @resvd	: * @ldrv	: logical drives information * @pdrv	: physical drives information * * Disk array for 8LD logical drives with upto 4 spans */typedef struct {	uint8_t			numldrv;	uint8_t			resvd[3];	logdrv_8ld_span4_t	ldrv[MAX_LOGICAL_DRIVES_8LD];	phys_drive_t		pdrv[MBOX_MAX_PHYSICAL_DRIVES];}__attribute__ ((packed)) disk_array_8ld_span4_t;/** * private_bios_data - bios private data for boot devices * @geometry	: bits 0-3 - BIOS geometry, 0x0001 - 1GB, 0x0010 - 2GB, *		0x1000 - 8GB, Others values are invalid * @unused	: bits 4-7 are unused * @boot_drv	: logical drive set as boot drive, 0..7 - for 8LD cards, * 		0..39 - for 40LD cards * @cksum	: 0-(sum of first 13 bytes of this structure) */struct private_bios_data {	uint8_t		geometry	:4;	uint8_t		unused		:4;	uint8_t		boot_drv;	uint8_t		rsvd[12];	uint16_t	cksum;} __attribute__ ((packed));/** * mbox_sgl64 - 64-bit scatter list for mailbox based controllers * @address	: address of the buffer * @length	: data transfer length */typedef struct {	uint64_t	address;	uint32_t	length;} __attribute__ ((packed)) mbox_sgl64;/** * mbox_sgl32 - 32-bit scatter list for mailbox based controllers * @address	: address of the buffer * @length	: data transfer length */typedef struct {	uint32_t	address;	uint32_t	length;} __attribute__ ((packed)) mbox_sgl32;#endif		// _MRAID_MBOX_DEFS_H_/* vim: set ts=8 sw=8 tw=78: */

⌨️ 快捷键说明

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