Date: Thu, 24 May 2001 12:53:16 +0300 From: Ruslan Ermilov <ru@FreeBSD.org> To: Mike Smith <msmith@FreeBSD.org> Cc: arch@FreeBSD.org Subject: mlxio.h (was: Re: Where to put include files) Message-ID: <20010524125316.E79111@sunbay.com> In-Reply-To: <Pine.BSF.4.33.0105181137390.27157-100000@herring.nlsystems.com>; from dfr@nlsystems.com on Fri, May 18, 2001 at 11:39:14AM %2B0100 References: <200105171600.f4HG0Pl05438@billy-club.village.org> <Pine.BSF.4.33.0105181137390.27157-100000@herring.nlsystems.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--+HP7ph2BbKc20aGI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Fri, May 18, 2001 at 11:39:14AM +0100, Doug Rabson wrote:
> On Thu, 17 May 2001, Warner Losh wrote:
>
> > In message <200105171233.f4HCXhb62786@hak.lan.Awfulhak.org> Brian
> > Somers writes:
> > : Solaris calls it's ioctl files /usr/include/sys/<driver>_io.h so I'd
> > : spell digiio.h /usr/include/sys/digi_io.h.
> >
> > Actually, the more I think about it, the more I like putting it in
> > /usr/include/sys/fooio.h. We have lots of other files there now. The
> > down side to this approach is that it breaks up the driver sources
> > that we've been trying to concentrate into sys/dev/foo/* (or
> > introduces asymetry such that you can't just toss in a -I/sys and have
> > the same tree that gets stuck under /usr/include).
>
> I quite like the fact that the programming interface <sys/fooio.h> is
> separated from the driver implementation. There is less chance that the
> driver writer will expose irrelavent implementation details in the API,
> which in turn makes for a more stable ABI.
>
Hi!
What I propose is to make mlxio.h self-contained to be suitable
for userland, and move it to /sys/sys where it belongs, and to
get rid of that bogus -I line in mlxcontrol/Makefile.
The attached patch merely moves the (non-kernel) part of mlxreg.h
into mlxio.h (which is IMHO belongs to API anyway), unconnects
mlxreg.h from userland, and removes _KERNEL conditional from
mlxreg.h.
If this looks acceptable, the next step would be:
1. repo-copy mlxio.h to /sys/sys (so that it gets installed into
/usr/include/sys)
2. fix mlxcontrol's #include's for the new location
3. remove CFLAGS+=-I${.CURDIR}/../../sys from mlxcontrol/Makefile.
I've verified that both mlx module and mlxcontrol build OK with
this patch.
Cheers,
--
Ruslan Ermilov Oracle Developer/DBA,
ru@sunbay.com Sunbay Software AG,
ru@FreeBSD.org FreeBSD committer,
+380.652.512.251 Simferopol, Ukraine
http://www.FreeBSD.org The Power To Serve
http://www.oracle.com Enabling The Information Age
--+HP7ph2BbKc20aGI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=p
Index: sys/dev/mlx/mlxio.h
===================================================================
RCS file: /home/ncvs/src/sys/dev/mlx/mlxio.h,v
retrieving revision 1.3
diff -u -r1.3 mlxio.h
--- sys/dev/mlx/mlxio.h 2000/04/11 02:52:44 1.3
+++ sys/dev/mlx/mlxio.h 2001/05/24 09:36:29
@@ -95,3 +95,332 @@
#define MLX_REBUILDASYNC _IOWR('M', 5, struct mlx_rebuild_request)
#define MLX_REBUILDSTAT _IOR ('M', 6, struct mlx_rebuild_status)
#define MLX_GET_SYSDRIVE _IOWR('M', 7, int)
+
+
+#define MLX_BLKSIZE 512 /* fixed feature */
+
+/*
+ * Selected command codes.
+ */
+#define MLX_CMD_ENQUIRY_OLD 0x05
+#define MLX_CMD_ENQUIRY 0x53
+#define MLX_CMD_ENQUIRY2 0x1c
+#define MLX_CMD_ENQSYSDRIVE 0x19
+#define MLX_CMD_READSG 0xb6
+#define MLX_CMD_WRITESG 0xb7
+#define MLX_CMD_READSG_OLD 0x82
+#define MLX_CMD_WRITESG_OLD 0x83
+#define MLX_CMD_FLUSH 0x0a
+#define MLX_CMD_LOGOP 0x72
+#define MLX_CMD_REBUILDASYNC 0x16
+#define MLX_CMD_CHECKASYNC 0x1e
+#define MLX_CMD_REBUILDSTAT 0x0c
+#define MLX_CMD_STOPCHANNEL 0x13
+#define MLX_CMD_STARTCHANNEL 0x12
+#define MLX_CMD_READ_CONFIG 0x4e
+#define MLX_CMD_DIRECT_CDB 0x04
+#define MLX_CMD_DEVICE_STATE 0x50
+
+
+/*
+ * Scatter-gather list format, type 1, kind 00.
+ */
+struct mlx_sgentry
+{
+ u_int32_t sg_addr;
+ u_int32_t sg_count;
+} __attribute__ ((packed));
+
+/*
+ * Command result buffers, as placed in system memory by the controller.
+ */
+
+struct mlx_enquiry_old /* MLX_CMD_ENQUIRY_OLD */
+{
+ u_int8_t me_num_sys_drvs;
+ u_int8_t res1[3];
+ u_int32_t me_drvsize[8];
+ u_int16_t me_flash_age;
+ u_int8_t me_status_flags;
+ u_int8_t me_free_state_change_count;
+ u_int8_t me_fwminor;
+ u_int8_t me_fwmajor;
+ u_int8_t me_rebuild_flag;
+ u_int8_t me_max_commands;
+ u_int8_t me_offline_sd_count;
+ u_int8_t res3;
+ u_int8_t me_critical_sd_count;
+ u_int8_t res4[3];
+ u_int8_t me_dead_count;
+ u_int8_t res5;
+ u_int8_t me_rebuild_count;
+ u_int8_t me_misc_flags;
+ struct
+ {
+ u_int8_t dd_targ;
+ u_int8_t dd_chan;
+ } __attribute__ ((packed)) me_dead[20];
+} __attribute__ ((packed));
+
+struct mlx_enquiry /* MLX_CMD_ENQUIRY */
+{
+ u_int8_t me_num_sys_drvs;
+ u_int8_t res1[3];
+ u_int32_t me_drvsize[32];
+ u_int16_t me_flash_age;
+ u_int8_t me_status_flags;
+#define MLX_ENQ_SFLAG_DEFWRERR (1<<0) /* deferred write error indicator */
+#define MLX_ENQ_SFLAG_BATTLOW (1<<1) /* battery low */
+ u_int8_t res2;
+ u_int8_t me_fwminor;
+ u_int8_t me_fwmajor;
+ u_int8_t me_rebuild_flag;
+ u_int8_t me_max_commands;
+ u_int8_t me_offline_sd_count;
+ u_int8_t res3;
+ u_int16_t me_event_log_seq_num;
+ u_int8_t me_critical_sd_count;
+ u_int8_t res4[3];
+ u_int8_t me_dead_count;
+ u_int8_t res5;
+ u_int8_t me_rebuild_count;
+ u_int8_t me_misc_flags;
+#define MLX_ENQ_MISC_BBU (1<<3) /* battery backup present */
+ struct
+ {
+ u_int8_t dd_targ;
+ u_int8_t dd_chan;
+ } __attribute__ ((packed)) me_dead[20];
+} __attribute__ ((packed));
+
+struct mlx_enquiry2 /* MLX_CMD_ENQUIRY2 */
+{
+ u_int32_t me_hardware_id;
+ u_int32_t me_firmware_id;
+ u_int32_t res1;
+ u_int8_t me_configured_channels;
+ u_int8_t me_actual_channels;
+ u_int8_t me_max_targets;
+ u_int8_t me_max_tags;
+ u_int8_t me_max_sys_drives;
+ u_int8_t me_max_arms;
+ u_int8_t me_max_spans;
+ u_int8_t res2;
+ u_int32_t res3;
+ u_int32_t me_mem_size;
+ u_int32_t me_cache_size;
+ u_int32_t me_flash_size;
+ u_int32_t me_nvram_size;
+ u_int16_t me_mem_type;
+ u_int16_t me_clock_speed;
+ u_int16_t me_mem_speed;
+ u_int16_t me_hardware_speed;
+ u_int8_t res4[12];
+ u_int16_t me_max_commands;
+ u_int16_t me_max_sg;
+ u_int16_t me_max_dp;
+ u_int16_t me_max_iod;
+ u_int16_t me_max_comb;
+ u_int8_t me_latency;
+ u_int8_t res5;
+ u_int8_t me_scsi_timeout;
+ u_int8_t res6;
+ u_int16_t me_min_freelines;
+ u_int8_t res7[8];
+ u_int8_t me_rate_const;
+ u_int8_t res8[11];
+ u_int16_t me_physblk;
+ u_int16_t me_logblk;
+ u_int16_t me_maxblk;
+ u_int16_t me_blocking_factor;
+ u_int16_t me_cacheline;
+ u_int8_t me_scsi_cap;
+ u_int8_t res9[5];
+ u_int16_t me_firmware_build;
+ u_int8_t me_fault_mgmt_type;
+ u_int8_t res10;
+ u_int32_t me_firmware_features;
+ u_int8_t res11[8];
+} __attribute__ ((packed));
+
+struct mlx_enq_sys_drive /* MLX_CMD_ENQSYSDRIVE returns an array of 32 of these */
+{
+ u_int32_t sd_size;
+ u_int8_t sd_state;
+ u_int8_t sd_raidlevel;
+ u_int16_t res1;
+} __attribute__ ((packed));
+
+struct mlx_eventlog_entry /* MLX_CMD_LOGOP/MLX_LOGOP_GET */
+{
+ u_int8_t el_type;
+ u_int8_t el_length;
+ u_char el_target:5;
+ u_char el_channel:3;
+ u_char el_lun:6;
+ u_char res1:2;
+ u_int16_t el_seqno;
+ u_char el_errorcode:7;
+ u_char el_valid:1;
+ u_int8_t el_segment;
+ u_char el_sensekey:4;
+ u_char res2:1;
+ u_char el_ILI:1;
+ u_char el_EOM:1;
+ u_char el_filemark:1;
+ u_int8_t el_information[4];
+ u_int8_t el_addsense;
+ u_int8_t el_csi[4];
+ u_int8_t el_asc;
+ u_int8_t el_asq;
+ u_int8_t res3[12];
+} __attribute__ ((packed));
+
+#define MLX_LOGOP_GET 0x00 /* operation codes for MLX_CMD_LOGOP */
+#define MLX_LOGMSG_SENSE 0x00 /* log message contents codes */
+
+struct mlx_rebuild_stat /* MLX_CMD_REBUILDSTAT */
+{
+ u_int32_t rb_drive;
+ u_int32_t rb_size;
+ u_int32_t rb_remaining;
+} __attribute__ ((packed));
+
+struct mlx_config2
+{
+ u_int16_t cf_flags1;
+#define MLX_CF2_ACTV_NEG (1<<1)
+#define MLX_CF2_NORSTRTRY (1<<7)
+#define MLX_CF2_STRGWRK (1<<8)
+#define MLX_CF2_HPSUPP (1<<9)
+#define MLX_CF2_NODISCN (1<<10)
+#define MLX_CF2_ARM (1<<13)
+#define MLX_CF2_OFM (1<<15)
+#define MLX_CF2_AEMI (MLX_CF2_ARM | MLX_CF2_OFM)
+ u_int8_t cf_oemid;
+ u_int8_t cf_oem_model;
+ u_int8_t cf_physical_sector;
+ u_int8_t cf_logical_sector;
+ u_int8_t cf_blockfactor;
+ u_int8_t cf_flags2;
+#define MLX_CF2_READAH (1<<0)
+#define MLX_CF2_BIOSDLY (1<<1)
+#define MLX_CF2_REASS1S (1<<4)
+#define MLX_CF2_FUAENABL (1<<6)
+#define MLX_CF2_R5ALLS (1<<7)
+ u_int8_t cf_rcrate;
+ u_int8_t cf_res1;
+ u_int8_t cf_blocks_per_cache_line;
+ u_int8_t cf_blocks_per_stripe;
+ u_int8_t cf_scsi_param_0;
+ u_int8_t cf_scsi_param_1;
+ u_int8_t cf_scsi_param_2;
+ u_int8_t cf_scsi_param_3;
+ u_int8_t cf_scsi_param_4;
+ u_int8_t cf_scsi_param_5;
+ u_int8_t cf_scsi_initiator_id;
+ u_int8_t cf_res2;
+ u_int8_t cf_startup_mode;
+ u_int8_t cf_simultaneous_spinup_devices;
+ u_int8_t cf_delay_between_spinups;
+ u_int8_t cf_res3;
+ u_int16_t cf_checksum;
+} __attribute__ ((packed));
+
+struct mlx_sys_drv_span
+{
+ u_int32_t sp_start_lba;
+ u_int32_t sp_nblks;
+ u_int8_t sp_arm[8];
+} __attribute__ ((packed));
+
+struct mlx_sys_drv
+{
+ u_int8_t sd_status;
+ u_int8_t sd_ext_status;
+ u_int8_t sd_mod1;
+ u_int8_t sd_mod2;
+ u_int8_t sd_raidlevel;
+#define MLX_SYS_DRV_WRITEBACK (1<<7)
+#define MLX_SYS_DRV_RAID0 0
+#define MLX_SYS_DRV_RAID1 1
+#define MLX_SYS_DRV_RAID3 3
+#define MLX_SYS_DRV_RAID5 5
+#define MLX_SYS_DRV_RAID6 6
+#define MLX_SYS_DRV_JBOD 7
+ u_int8_t sd_valid_arms;
+ u_int8_t sd_valid_spans;
+ u_int8_t sd_init_state;
+#define MLX_SYS_DRV_INITTED 0x81;
+ struct mlx_sys_drv_span sd_span[4];
+} __attribute__ ((packed));
+
+struct mlx_phys_drv
+{
+ u_int8_t pd_flags1;
+#define MLX_PHYS_DRV_PRESENT (1<<0)
+ u_int8_t pd_flags2;
+#define MLX_PHYS_DRV_OTHER 0x00
+#define MLX_PHYS_DRV_DISK 0x01
+#define MLX_PHYS_DRV_SEQUENTIAL 0x02
+#define MLX_PHYS_DRV_CDROM 0x03
+#define MLX_PHYS_DRV_FAST20 (1<<3)
+#define MLX_PHYS_DRV_SYNC (1<<4)
+#define MLX_PHYS_DRV_FAST (1<<5)
+#define MLX_PHYS_DRV_WIDE (1<<6)
+#define MLX_PHYS_DRV_TAG (1<<7)
+ u_int8_t pd_status;
+#define MLX_PHYS_DRV_DEAD 0x00
+#define MLX_PHYS_DRV_WRONLY 0x02
+#define MLX_PHYS_DRV_ONLINE 0x03
+#define MLX_PHYS_DRV_STANDBY 0x10
+ u_int8_t pd_res1;
+ u_int8_t pd_period;
+ u_int8_t pd_offset;
+ u_int32_t pd_config_size;
+} __attribute__ ((packed));
+
+struct mlx_core_cfg
+{
+ u_int8_t cc_num_sys_drives;
+ u_int8_t cc_res1[3];
+ struct mlx_sys_drv cc_sys_drives[32];
+ struct mlx_phys_drv cc_phys_drives[5 * 16];
+} __attribute__ ((packed));
+
+struct mlx_dcdb
+{
+ u_int8_t dcdb_target:4;
+ u_int8_t dcdb_channel:4;
+ u_int8_t dcdb_flags;
+#define MLX_DCDB_NO_DATA 0x00
+#define MLX_DCDB_DATA_IN 0x01
+#define MLX_DCDB_DATA_OUT 0x02
+#define MLX_DCDB_EARLY_STATUS (1<<2)
+#define MLX_DCDB_TIMEOUT_10S 0x10
+#define MLX_DCDB_TIMEOUT_60S 0x20
+#define MLX_DCDB_TIMEOUT_20M 0x30
+#define MLX_DCDB_TIMEOUT_24H 0x40
+#define MLX_DCDB_NO_AUTO_SENSE (1<<6)
+#define MLX_DCDB_DISCONNECT (1<<7)
+ u_int16_t dcdb_datasize;
+ u_int32_t dcdb_physaddr;
+ u_int8_t dcdb_cdb_length:4;
+ u_int8_t dcdb_datasize_high:4;
+ u_int8_t dcdb_sense_length;
+ u_int8_t dcdb_cdb[12];
+ u_int8_t dcdb_sense[64];
+ u_int8_t dcdb_status;
+ u_int8_t res1;
+} __attribute__ ((packed));
+
+struct mlx_bbtable_entry
+{
+ u_int32_t bbt_block_number;
+ u_int8_t bbt_extent;
+ u_int8_t res1;
+ u_int8_t bbt_entry_type;
+ u_int8_t bbt_system_drive:5;
+ u_int8_t res2:3;
+} __attribute__ ((packed));
+
Index: sys/dev/mlx/mlxreg.h
===================================================================
RCS file: /home/ncvs/src/sys/dev/mlx/mlxreg.h,v
retrieving revision 1.7
diff -u -r1.7 mlxreg.h
--- sys/dev/mlx/mlxreg.h 2000/04/11 02:52:45 1.7
+++ sys/dev/mlx/mlxreg.h 2001/05/24 09:36:29
@@ -26,32 +26,6 @@
* $FreeBSD: src/sys/dev/mlx/mlxreg.h,v 1.7 2000/04/11 02:52:45 msmith Exp $
*/
-#define MLX_BLKSIZE 512 /* fixed feature */
-
-/*
- * Selected command codes.
- */
-#define MLX_CMD_ENQUIRY_OLD 0x05
-#define MLX_CMD_ENQUIRY 0x53
-#define MLX_CMD_ENQUIRY2 0x1c
-#define MLX_CMD_ENQSYSDRIVE 0x19
-#define MLX_CMD_READSG 0xb6
-#define MLX_CMD_WRITESG 0xb7
-#define MLX_CMD_READSG_OLD 0x82
-#define MLX_CMD_WRITESG_OLD 0x83
-#define MLX_CMD_FLUSH 0x0a
-#define MLX_CMD_LOGOP 0x72
-#define MLX_CMD_REBUILDASYNC 0x16
-#define MLX_CMD_CHECKASYNC 0x1e
-#define MLX_CMD_REBUILDSTAT 0x0c
-#define MLX_CMD_STOPCHANNEL 0x13
-#define MLX_CMD_STARTCHANNEL 0x12
-#define MLX_CMD_READ_CONFIG 0x4e
-#define MLX_CMD_DIRECT_CDB 0x04
-#define MLX_CMD_DEVICE_STATE 0x50
-
-#ifdef _KERNEL
-
#define MLX_CFG_BASE0 0x10 /* first region */
#define MLX_CFG_BASE1 0x14 /* second region (type 3 only) */
@@ -190,312 +164,7 @@
#define MLX_V5_FWERROR_PEND (1<<2) /* firmware error pending */
-#endif /* _KERNEL */
-
/*
- * Scatter-gather list format, type 1, kind 00.
- */
-struct mlx_sgentry
-{
- u_int32_t sg_addr;
- u_int32_t sg_count;
-} __attribute__ ((packed));
-
-/*
- * Command result buffers, as placed in system memory by the controller.
- */
-
-struct mlx_enquiry_old /* MLX_CMD_ENQUIRY_OLD */
-{
- u_int8_t me_num_sys_drvs;
- u_int8_t res1[3];
- u_int32_t me_drvsize[8];
- u_int16_t me_flash_age;
- u_int8_t me_status_flags;
- u_int8_t me_free_state_change_count;
- u_int8_t me_fwminor;
- u_int8_t me_fwmajor;
- u_int8_t me_rebuild_flag;
- u_int8_t me_max_commands;
- u_int8_t me_offline_sd_count;
- u_int8_t res3;
- u_int8_t me_critical_sd_count;
- u_int8_t res4[3];
- u_int8_t me_dead_count;
- u_int8_t res5;
- u_int8_t me_rebuild_count;
- u_int8_t me_misc_flags;
- struct
- {
- u_int8_t dd_targ;
- u_int8_t dd_chan;
- } __attribute__ ((packed)) me_dead[20];
-} __attribute__ ((packed));
-
-struct mlx_enquiry /* MLX_CMD_ENQUIRY */
-{
- u_int8_t me_num_sys_drvs;
- u_int8_t res1[3];
- u_int32_t me_drvsize[32];
- u_int16_t me_flash_age;
- u_int8_t me_status_flags;
-#define MLX_ENQ_SFLAG_DEFWRERR (1<<0) /* deferred write error indicator */
-#define MLX_ENQ_SFLAG_BATTLOW (1<<1) /* battery low */
- u_int8_t res2;
- u_int8_t me_fwminor;
- u_int8_t me_fwmajor;
- u_int8_t me_rebuild_flag;
- u_int8_t me_max_commands;
- u_int8_t me_offline_sd_count;
- u_int8_t res3;
- u_int16_t me_event_log_seq_num;
- u_int8_t me_critical_sd_count;
- u_int8_t res4[3];
- u_int8_t me_dead_count;
- u_int8_t res5;
- u_int8_t me_rebuild_count;
- u_int8_t me_misc_flags;
-#define MLX_ENQ_MISC_BBU (1<<3) /* battery backup present */
- struct
- {
- u_int8_t dd_targ;
- u_int8_t dd_chan;
- } __attribute__ ((packed)) me_dead[20];
-} __attribute__ ((packed));
-
-struct mlx_enquiry2 /* MLX_CMD_ENQUIRY2 */
-{
- u_int32_t me_hardware_id;
- u_int32_t me_firmware_id;
- u_int32_t res1;
- u_int8_t me_configured_channels;
- u_int8_t me_actual_channels;
- u_int8_t me_max_targets;
- u_int8_t me_max_tags;
- u_int8_t me_max_sys_drives;
- u_int8_t me_max_arms;
- u_int8_t me_max_spans;
- u_int8_t res2;
- u_int32_t res3;
- u_int32_t me_mem_size;
- u_int32_t me_cache_size;
- u_int32_t me_flash_size;
- u_int32_t me_nvram_size;
- u_int16_t me_mem_type;
- u_int16_t me_clock_speed;
- u_int16_t me_mem_speed;
- u_int16_t me_hardware_speed;
- u_int8_t res4[12];
- u_int16_t me_max_commands;
- u_int16_t me_max_sg;
- u_int16_t me_max_dp;
- u_int16_t me_max_iod;
- u_int16_t me_max_comb;
- u_int8_t me_latency;
- u_int8_t res5;
- u_int8_t me_scsi_timeout;
- u_int8_t res6;
- u_int16_t me_min_freelines;
- u_int8_t res7[8];
- u_int8_t me_rate_const;
- u_int8_t res8[11];
- u_int16_t me_physblk;
- u_int16_t me_logblk;
- u_int16_t me_maxblk;
- u_int16_t me_blocking_factor;
- u_int16_t me_cacheline;
- u_int8_t me_scsi_cap;
- u_int8_t res9[5];
- u_int16_t me_firmware_build;
- u_int8_t me_fault_mgmt_type;
- u_int8_t res10;
- u_int32_t me_firmware_features;
- u_int8_t res11[8];
-} __attribute__ ((packed));
-
-struct mlx_enq_sys_drive /* MLX_CMD_ENQSYSDRIVE returns an array of 32 of these */
-{
- u_int32_t sd_size;
- u_int8_t sd_state;
- u_int8_t sd_raidlevel;
- u_int16_t res1;
-} __attribute__ ((packed));
-
-struct mlx_eventlog_entry /* MLX_CMD_LOGOP/MLX_LOGOP_GET */
-{
- u_int8_t el_type;
- u_int8_t el_length;
- u_char el_target:5;
- u_char el_channel:3;
- u_char el_lun:6;
- u_char res1:2;
- u_int16_t el_seqno;
- u_char el_errorcode:7;
- u_char el_valid:1;
- u_int8_t el_segment;
- u_char el_sensekey:4;
- u_char res2:1;
- u_char el_ILI:1;
- u_char el_EOM:1;
- u_char el_filemark:1;
- u_int8_t el_information[4];
- u_int8_t el_addsense;
- u_int8_t el_csi[4];
- u_int8_t el_asc;
- u_int8_t el_asq;
- u_int8_t res3[12];
-} __attribute__ ((packed));
-
-#define MLX_LOGOP_GET 0x00 /* operation codes for MLX_CMD_LOGOP */
-#define MLX_LOGMSG_SENSE 0x00 /* log message contents codes */
-
-struct mlx_rebuild_stat /* MLX_CMD_REBUILDSTAT */
-{
- u_int32_t rb_drive;
- u_int32_t rb_size;
- u_int32_t rb_remaining;
-} __attribute__ ((packed));
-
-struct mlx_config2
-{
- u_int16_t cf_flags1;
-#define MLX_CF2_ACTV_NEG (1<<1)
-#define MLX_CF2_NORSTRTRY (1<<7)
-#define MLX_CF2_STRGWRK (1<<8)
-#define MLX_CF2_HPSUPP (1<<9)
-#define MLX_CF2_NODISCN (1<<10)
-#define MLX_CF2_ARM (1<<13)
-#define MLX_CF2_OFM (1<<15)
-#define MLX_CF2_AEMI (MLX_CF2_ARM | MLX_CF2_OFM)
- u_int8_t cf_oemid;
- u_int8_t cf_oem_model;
- u_int8_t cf_physical_sector;
- u_int8_t cf_logical_sector;
- u_int8_t cf_blockfactor;
- u_int8_t cf_flags2;
-#define MLX_CF2_READAH (1<<0)
-#define MLX_CF2_BIOSDLY (1<<1)
-#define MLX_CF2_REASS1S (1<<4)
-#define MLX_CF2_FUAENABL (1<<6)
-#define MLX_CF2_R5ALLS (1<<7)
- u_int8_t cf_rcrate;
- u_int8_t cf_res1;
- u_int8_t cf_blocks_per_cache_line;
- u_int8_t cf_blocks_per_stripe;
- u_int8_t cf_scsi_param_0;
- u_int8_t cf_scsi_param_1;
- u_int8_t cf_scsi_param_2;
- u_int8_t cf_scsi_param_3;
- u_int8_t cf_scsi_param_4;
- u_int8_t cf_scsi_param_5;
- u_int8_t cf_scsi_initiator_id;
- u_int8_t cf_res2;
- u_int8_t cf_startup_mode;
- u_int8_t cf_simultaneous_spinup_devices;
- u_int8_t cf_delay_between_spinups;
- u_int8_t cf_res3;
- u_int16_t cf_checksum;
-} __attribute__ ((packed));
-
-struct mlx_sys_drv_span
-{
- u_int32_t sp_start_lba;
- u_int32_t sp_nblks;
- u_int8_t sp_arm[8];
-} __attribute__ ((packed));
-
-struct mlx_sys_drv
-{
- u_int8_t sd_status;
- u_int8_t sd_ext_status;
- u_int8_t sd_mod1;
- u_int8_t sd_mod2;
- u_int8_t sd_raidlevel;
-#define MLX_SYS_DRV_WRITEBACK (1<<7)
-#define MLX_SYS_DRV_RAID0 0
-#define MLX_SYS_DRV_RAID1 1
-#define MLX_SYS_DRV_RAID3 3
-#define MLX_SYS_DRV_RAID5 5
-#define MLX_SYS_DRV_RAID6 6
-#define MLX_SYS_DRV_JBOD 7
- u_int8_t sd_valid_arms;
- u_int8_t sd_valid_spans;
- u_int8_t sd_init_state;
-#define MLX_SYS_DRV_INITTED 0x81;
- struct mlx_sys_drv_span sd_span[4];
-} __attribute__ ((packed));
-
-struct mlx_phys_drv
-{
- u_int8_t pd_flags1;
-#define MLX_PHYS_DRV_PRESENT (1<<0)
- u_int8_t pd_flags2;
-#define MLX_PHYS_DRV_OTHER 0x00
-#define MLX_PHYS_DRV_DISK 0x01
-#define MLX_PHYS_DRV_SEQUENTIAL 0x02
-#define MLX_PHYS_DRV_CDROM 0x03
-#define MLX_PHYS_DRV_FAST20 (1<<3)
-#define MLX_PHYS_DRV_SYNC (1<<4)
-#define MLX_PHYS_DRV_FAST (1<<5)
-#define MLX_PHYS_DRV_WIDE (1<<6)
-#define MLX_PHYS_DRV_TAG (1<<7)
- u_int8_t pd_status;
-#define MLX_PHYS_DRV_DEAD 0x00
-#define MLX_PHYS_DRV_WRONLY 0x02
-#define MLX_PHYS_DRV_ONLINE 0x03
-#define MLX_PHYS_DRV_STANDBY 0x10
- u_int8_t pd_res1;
- u_int8_t pd_period;
- u_int8_t pd_offset;
- u_int32_t pd_config_size;
-} __attribute__ ((packed));
-
-struct mlx_core_cfg
-{
- u_int8_t cc_num_sys_drives;
- u_int8_t cc_res1[3];
- struct mlx_sys_drv cc_sys_drives[32];
- struct mlx_phys_drv cc_phys_drives[5 * 16];
-} __attribute__ ((packed));
-
-struct mlx_dcdb
-{
- u_int8_t dcdb_target:4;
- u_int8_t dcdb_channel:4;
- u_int8_t dcdb_flags;
-#define MLX_DCDB_NO_DATA 0x00
-#define MLX_DCDB_DATA_IN 0x01
-#define MLX_DCDB_DATA_OUT 0x02
-#define MLX_DCDB_EARLY_STATUS (1<<2)
-#define MLX_DCDB_TIMEOUT_10S 0x10
-#define MLX_DCDB_TIMEOUT_60S 0x20
-#define MLX_DCDB_TIMEOUT_20M 0x30
-#define MLX_DCDB_TIMEOUT_24H 0x40
-#define MLX_DCDB_NO_AUTO_SENSE (1<<6)
-#define MLX_DCDB_DISCONNECT (1<<7)
- u_int16_t dcdb_datasize;
- u_int32_t dcdb_physaddr;
- u_int8_t dcdb_cdb_length:4;
- u_int8_t dcdb_datasize_high:4;
- u_int8_t dcdb_sense_length;
- u_int8_t dcdb_cdb[12];
- u_int8_t dcdb_sense[64];
- u_int8_t dcdb_status;
- u_int8_t res1;
-} __attribute__ ((packed));
-
-struct mlx_bbtable_entry
-{
- u_int32_t bbt_block_number;
- u_int8_t bbt_extent;
- u_int8_t res1;
- u_int8_t bbt_entry_type;
- u_int8_t bbt_system_drive:5;
- u_int8_t res2:3;
-} __attribute__ ((packed));
-
-#ifdef _KERNEL
-/*
* Inlines to build various command structures
*/
static __inline void
@@ -616,5 +285,3 @@
mc->mc_mailbox[0xb] = (f4 >> 24) & 0xff;
mc->mc_mailbox[0xc] = f5;
}
-
-#endif /* _KERNEL */
Index: usr.sbin/mlxcontrol/command.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/mlxcontrol/command.c,v
retrieving revision 1.2
diff -u -r1.2 command.c
--- usr.sbin/mlxcontrol/command.c 2000/04/11 23:04:17 1.2
+++ usr.sbin/mlxcontrol/command.c 2001/05/24 09:36:30
@@ -35,7 +35,6 @@
#include <err.h>
#include <dev/mlx/mlxio.h>
-#include <dev/mlx/mlxreg.h>
#include "mlxcontrol.h"
Index: usr.sbin/mlxcontrol/config.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/mlxcontrol/config.c,v
retrieving revision 1.2
diff -u -r1.2 config.c
--- usr.sbin/mlxcontrol/config.c 2000/04/11 23:04:17 1.2
+++ usr.sbin/mlxcontrol/config.c 2001/05/24 09:36:33
@@ -35,7 +35,6 @@
#include <err.h>
#include <dev/mlx/mlxio.h>
-#include <dev/mlx/mlxreg.h>
#include "mlxcontrol.h"
Index: usr.sbin/mlxcontrol/interface.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/mlxcontrol/interface.c,v
retrieving revision 1.2
diff -u -r1.2 interface.c
--- usr.sbin/mlxcontrol/interface.c 2000/04/11 23:04:17 1.2
+++ usr.sbin/mlxcontrol/interface.c 2001/05/24 09:36:33
@@ -34,7 +34,6 @@
#include <cam/scsi/scsi_all.h>
#include <dev/mlx/mlxio.h>
-#include <dev/mlx/mlxreg.h>
#include "mlxcontrol.h"
Index: usr.sbin/mlxcontrol/util.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/mlxcontrol/util.c,v
retrieving revision 1.2
diff -u -r1.2 util.c
--- usr.sbin/mlxcontrol/util.c 2000/04/11 23:04:17 1.2
+++ usr.sbin/mlxcontrol/util.c 2001/05/24 09:36:33
@@ -32,7 +32,6 @@
#include <string.h>
#include <dev/mlx/mlxio.h>
-#include <dev/mlx/mlxreg.h>
#include "mlxcontrol.h"
--+HP7ph2BbKc20aGI--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010524125316.E79111>
