1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate  *
4*7c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate  * with the License.
8*7c478bd9Sstevel@tonic-gate  *
9*7c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate  * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate  *
14*7c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate  *
20*7c478bd9Sstevel@tonic-gate  * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate  */
22*7c478bd9Sstevel@tonic-gate /*
23*7c478bd9Sstevel@tonic-gate  * Copyright (c) 1996-1998 by Sun Microsystems, Inc.
24*7c478bd9Sstevel@tonic-gate  * All rights reserved.
25*7c478bd9Sstevel@tonic-gate  */
26*7c478bd9Sstevel@tonic-gate 
27*7c478bd9Sstevel@tonic-gate #ifndef	_SYS_SCSI_GENERIC_DAD_MODE_H
28*7c478bd9Sstevel@tonic-gate #define	_SYS_SCSI_GENERIC_DAD_MODE_H
29*7c478bd9Sstevel@tonic-gate 
30*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
31*7c478bd9Sstevel@tonic-gate extern "C" {
32*7c478bd9Sstevel@tonic-gate #endif
33*7c478bd9Sstevel@tonic-gate 
34*7c478bd9Sstevel@tonic-gate /*
35*7c478bd9Sstevel@tonic-gate  * Structures and defines for DIRECT ACCESS mode sense/select operations
36*7c478bd9Sstevel@tonic-gate  */
37*7c478bd9Sstevel@tonic-gate 
38*7c478bd9Sstevel@tonic-gate /*
39*7c478bd9Sstevel@tonic-gate  * Direct Access Device mode header device specific byte definitions.
40*7c478bd9Sstevel@tonic-gate  *
41*7c478bd9Sstevel@tonic-gate  * On MODE SELECT operations, the effect of the state of the WP bit is unknown,
42*7c478bd9Sstevel@tonic-gate  * else reflects the Write-Protect status of the device.
43*7c478bd9Sstevel@tonic-gate  *
44*7c478bd9Sstevel@tonic-gate  * On MODE SELECT operations, the the DPOFUA bit is reserved and must
45*7c478bd9Sstevel@tonic-gate  * be zero, else on MODE SENSE operations it reflects whether or not
46*7c478bd9Sstevel@tonic-gate  * DPO and FUA bits are supported.
47*7c478bd9Sstevel@tonic-gate  */
48*7c478bd9Sstevel@tonic-gate 
49*7c478bd9Sstevel@tonic-gate #define	MODE_DAD_WP	0x80
50*7c478bd9Sstevel@tonic-gate #define	MODE_DAD_DPOFUA	0x10
51*7c478bd9Sstevel@tonic-gate 
52*7c478bd9Sstevel@tonic-gate /*
53*7c478bd9Sstevel@tonic-gate  * Direct Access Device Medium Types (for non direct-access magentic tapes)
54*7c478bd9Sstevel@tonic-gate  */
55*7c478bd9Sstevel@tonic-gate 
56*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_DFLT	0x0 /* default (currently mounted) type */
57*7c478bd9Sstevel@tonic-gate 
58*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLXSS	0x1 /* flexible disk, single side, unspec. media */
59*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLXDS	0x2 /* flexible disk, double side, unspec. media */
60*7c478bd9Sstevel@tonic-gate 
61*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_8SSSD 0x05	/* 8", single side, single density, 48tpi */
62*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_8DSSD 0x06	/* 8", double side, single density, 48tpi */
63*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_8SSDD 0x09	/* 8", single side, double density, 48tpi */
64*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_8DSDD 0x0A	/* 8", double side, double density, 48tpi */
65*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_5SSLD 0x0D	/* 5.25", single side, single density, 48tpi */
66*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_5DSMD1 0x12 /* 5.25", double side, medium density, 48tpi */
67*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_5DSMD2 0x16 /* 5.25", double side, medium density, 96tpi */
68*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_5DSQD 0x1A	/* 5.25", double side, quad density, 96tpi */
69*7c478bd9Sstevel@tonic-gate #define	DAD_MTYP_FLX_3DSLD 0x1E	/* 3.5", double side, low density, 135tpi */
70*7c478bd9Sstevel@tonic-gate 
71*7c478bd9Sstevel@tonic-gate 
72*7c478bd9Sstevel@tonic-gate /*
73*7c478bd9Sstevel@tonic-gate  * Direct Access device Mode Sense/Mode Select Defined pages
74*7c478bd9Sstevel@tonic-gate  */
75*7c478bd9Sstevel@tonic-gate 
76*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_ERR_RECOV	0x01
77*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_FORMAT		0x03
78*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_GEOMETRY	0x04
79*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_FLEXDISK	0x05
80*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_VRFY_ERR_RECOV	0x07
81*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_CACHE		0x08
82*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_MEDIA_TYPES	0x0B
83*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_NOTCHPART	0x0C
84*7c478bd9Sstevel@tonic-gate #define	DAD_MODE_POWER_COND	0x0D
85*7c478bd9Sstevel@tonic-gate 
86*7c478bd9Sstevel@tonic-gate /*
87*7c478bd9Sstevel@tonic-gate  * Definitions of selected pages
88*7c478bd9Sstevel@tonic-gate  */
89*7c478bd9Sstevel@tonic-gate 
90*7c478bd9Sstevel@tonic-gate /*
91*7c478bd9Sstevel@tonic-gate  * Page 0x1 - Error Recovery Parameters
92*7c478bd9Sstevel@tonic-gate  *
93*7c478bd9Sstevel@tonic-gate  * Note:	This structure is incompatible with previous SCSI
94*7c478bd9Sstevel@tonic-gate  *		implementations. See <scsi/impl/mode.h> for an
95*7c478bd9Sstevel@tonic-gate  *		alternative form of this structure. They can be
96*7c478bd9Sstevel@tonic-gate  *		distinguished by the length of data returned
97*7c478bd9Sstevel@tonic-gate  *		from a MODE SENSE command.
98*7c478bd9Sstevel@tonic-gate  */
99*7c478bd9Sstevel@tonic-gate 
100*7c478bd9Sstevel@tonic-gate #define	PAGELENGTH_DAD_MODE_ERR_RECOV	0x0A
101*7c478bd9Sstevel@tonic-gate 
102*7c478bd9Sstevel@tonic-gate struct mode_err_recov {
103*7c478bd9Sstevel@tonic-gate 	struct	mode_page mode_page;	/* common mode page header */
104*7c478bd9Sstevel@tonic-gate #if defined(_BIT_FIELDS_LTOH)
105*7c478bd9Sstevel@tonic-gate 	uchar_t		dcr	: 1,	/* disable correction */
106*7c478bd9Sstevel@tonic-gate 			dte	: 1,	/* disable transfer on error */
107*7c478bd9Sstevel@tonic-gate 			per	: 1,	/* post error */
108*7c478bd9Sstevel@tonic-gate 			eec	: 1,	/* enable early correction */
109*7c478bd9Sstevel@tonic-gate 			rc	: 1,	/* read continuous */
110*7c478bd9Sstevel@tonic-gate 			tb	: 1,	/* transfer block */
111*7c478bd9Sstevel@tonic-gate 			arre	: 1,	/* auto read realloc enabled */
112*7c478bd9Sstevel@tonic-gate 			awre	: 1;	/* auto write realloc enabled */
113*7c478bd9Sstevel@tonic-gate #elif defined(_BIT_FIELDS_HTOL)
114*7c478bd9Sstevel@tonic-gate 	uchar_t		awre	: 1,	/* auto write realloc enabled */
115*7c478bd9Sstevel@tonic-gate 			arre	: 1,	/* auto read realloc enabled */
116*7c478bd9Sstevel@tonic-gate 			tb	: 1,	/* transfer block */
117*7c478bd9Sstevel@tonic-gate 			rc	: 1,	/* read continuous */
118*7c478bd9Sstevel@tonic-gate 			eec	: 1,	/* enable early correction */
119*7c478bd9Sstevel@tonic-gate 			per	: 1,	/* post error */
120*7c478bd9Sstevel@tonic-gate 			dte	: 1,	/* disable transfer on error */
121*7c478bd9Sstevel@tonic-gate 			dcr	: 1;	/* disable correction */
122*7c478bd9Sstevel@tonic-gate #else
123*7c478bd9Sstevel@tonic-gate #error	One of _BIT_FIELDS_LTOH or _BIT_FIELDS_HTOL must be defined
124*7c478bd9Sstevel@tonic-gate #endif	/* _BIT_FIELDS_LTOH */
125*7c478bd9Sstevel@tonic-gate 	uchar_t	read_retry_count;
126*7c478bd9Sstevel@tonic-gate 	uchar_t	correction_span;
127*7c478bd9Sstevel@tonic-gate 	uchar_t	head_offset_count;
128*7c478bd9Sstevel@tonic-gate 	uchar_t	strobe_offset_count;
129*7c478bd9Sstevel@tonic-gate 	uchar_t	reserved;
130*7c478bd9Sstevel@tonic-gate 	uchar_t	write_retry_count;
131*7c478bd9Sstevel@tonic-gate 	uchar_t	reserved_2;
132*7c478bd9Sstevel@tonic-gate 	ushort_t recovery_time_limit;
133*7c478bd9Sstevel@tonic-gate };
134*7c478bd9Sstevel@tonic-gate 
135*7c478bd9Sstevel@tonic-gate /*
136*7c478bd9Sstevel@tonic-gate  * Page 0x3 - Direct Access Device Format Parameters
137*7c478bd9Sstevel@tonic-gate  */
138*7c478bd9Sstevel@tonic-gate 
139*7c478bd9Sstevel@tonic-gate struct mode_format {
140*7c478bd9Sstevel@tonic-gate 	struct	mode_page mode_page;	/* common mode page header */
141*7c478bd9Sstevel@tonic-gate 	ushort_t tracks_per_zone;	/* Handling of Defects Fields */
142*7c478bd9Sstevel@tonic-gate 	ushort_t alt_sect_zone;
143*7c478bd9Sstevel@tonic-gate 	ushort_t alt_tracks_zone;
144*7c478bd9Sstevel@tonic-gate 	ushort_t alt_tracks_vol;
145*7c478bd9Sstevel@tonic-gate 	ushort_t sect_track;		/* Track Format Field */
146*7c478bd9Sstevel@tonic-gate 	ushort_t data_bytes_sect;	/* Sector Format Fields */
147*7c478bd9Sstevel@tonic-gate 	ushort_t interleave;
148*7c478bd9Sstevel@tonic-gate 	ushort_t track_skew;
149*7c478bd9Sstevel@tonic-gate 	ushort_t cylinder_skew;
150*7c478bd9Sstevel@tonic-gate #if defined(_BIT_FIELDS_LTOH)
151*7c478bd9Sstevel@tonic-gate 	uchar_t			: 3,
152*7c478bd9Sstevel@tonic-gate 		_reserved_ins	: 1,	/* see <scsi/impl/mode.h> */
153*7c478bd9Sstevel@tonic-gate 			surf	: 1,
154*7c478bd9Sstevel@tonic-gate 			rmb	: 1,
155*7c478bd9Sstevel@tonic-gate 			hsec	: 1,
156*7c478bd9Sstevel@tonic-gate 			ssec	: 1;	/* Drive Type Field */
157*7c478bd9Sstevel@tonic-gate #elif defined(_BIT_FIELDS_HTOL)
158*7c478bd9Sstevel@tonic-gate 	uchar_t		ssec	: 1,	/* Drive Type Field */
159*7c478bd9Sstevel@tonic-gate 			hsec	: 1,
160*7c478bd9Sstevel@tonic-gate 			rmb	: 1,
161*7c478bd9Sstevel@tonic-gate 			surf	: 1,
162*7c478bd9Sstevel@tonic-gate 		_reserved_ins	: 1,	/* see <scsi/impl/mode.h> */
163*7c478bd9Sstevel@tonic-gate 				: 3;
164*7c478bd9Sstevel@tonic-gate #else
165*7c478bd9Sstevel@tonic-gate #error	One of _BIT_FIELDS_LTOH or _BIT_FIELDS_HTOL must be defined
166*7c478bd9Sstevel@tonic-gate #endif	/* _BIT_FIELDS_LTOH */
167*7c478bd9Sstevel@tonic-gate 	uchar_t	reserved[2];
168*7c478bd9Sstevel@tonic-gate };
169*7c478bd9Sstevel@tonic-gate 
170*7c478bd9Sstevel@tonic-gate /*
171*7c478bd9Sstevel@tonic-gate  * Page 0x4 - Rigid Disk Drive Geometry Parameters
172*7c478bd9Sstevel@tonic-gate  */
173*7c478bd9Sstevel@tonic-gate 
174*7c478bd9Sstevel@tonic-gate struct mode_geometry {
175*7c478bd9Sstevel@tonic-gate 	struct	mode_page mode_page;	/* common mode page header */
176*7c478bd9Sstevel@tonic-gate 	uchar_t	cyl_ub;			/* number of cylinders */
177*7c478bd9Sstevel@tonic-gate 	uchar_t	cyl_mb;
178*7c478bd9Sstevel@tonic-gate 	uchar_t	cyl_lb;
179*7c478bd9Sstevel@tonic-gate 	uchar_t	heads;			/* number of heads */
180*7c478bd9Sstevel@tonic-gate 	uchar_t	precomp_cyl_ub;		/* cylinder to start precomp */
181*7c478bd9Sstevel@tonic-gate 	uchar_t	precomp_cyl_mb;
182*7c478bd9Sstevel@tonic-gate 	uchar_t	precomp_cyl_lb;
183*7c478bd9Sstevel@tonic-gate 	uchar_t	current_cyl_ub;		/* cyl to start reduced current */
184*7c478bd9Sstevel@tonic-gate 	uchar_t	current_cyl_mb;
185*7c478bd9Sstevel@tonic-gate 	uchar_t	current_cyl_lb;
186*7c478bd9Sstevel@tonic-gate 	ushort_t step_rate;		/* drive step rate */
187*7c478bd9Sstevel@tonic-gate 	uchar_t	landing_cyl_ub;		/* landing zone cylinder */
188*7c478bd9Sstevel@tonic-gate 	uchar_t	landing_cyl_mb;
189*7c478bd9Sstevel@tonic-gate 	uchar_t	landing_cyl_lb;
190*7c478bd9Sstevel@tonic-gate #if defined(_BIT_FIELDS_LTOH)
191*7c478bd9Sstevel@tonic-gate 	uchar_t		rpl	: 2,	/* rotational position locking */
192*7c478bd9Sstevel@tonic-gate 				: 6;
193*7c478bd9Sstevel@tonic-gate #elif defined(_BIT_FIELDS_HTOL)
194*7c478bd9Sstevel@tonic-gate 	uchar_t			: 6,
195*7c478bd9Sstevel@tonic-gate 			rpl	: 2;	/* rotational position locking */
196*7c478bd9Sstevel@tonic-gate #else
197*7c478bd9Sstevel@tonic-gate #error	One of _BIT_FIELDS_LTOH or _BIT_FIELDS_HTOL must be defined
198*7c478bd9Sstevel@tonic-gate #endif	/* _BIT_FIELDS_LTOH */
199*7c478bd9Sstevel@tonic-gate 	uchar_t	rotational_offset;	/* rotational offset */
200*7c478bd9Sstevel@tonic-gate 	uchar_t	reserved;
201*7c478bd9Sstevel@tonic-gate 	ushort_t rpm;			/* rotations per minute */
202*7c478bd9Sstevel@tonic-gate 	uchar_t	reserved2[2];
203*7c478bd9Sstevel@tonic-gate };
204*7c478bd9Sstevel@tonic-gate 
205*7c478bd9Sstevel@tonic-gate #define	RPL_SPINDLE_SLAVE		1
206*7c478bd9Sstevel@tonic-gate #define	RPL_SPINDLE_MASTER		2
207*7c478bd9Sstevel@tonic-gate #define	RPL_SPINDLE_MASTER_CONTROL	3
208*7c478bd9Sstevel@tonic-gate 
209*7c478bd9Sstevel@tonic-gate /*
210*7c478bd9Sstevel@tonic-gate  * Page 0x8 - Caching Page
211*7c478bd9Sstevel@tonic-gate  *
212*7c478bd9Sstevel@tonic-gate  * Note:	This structure is incompatible with previous SCSI
213*7c478bd9Sstevel@tonic-gate  *		implementations. See <scsi/impl/mode.h> for an
214*7c478bd9Sstevel@tonic-gate  *		alternative form of this structure. They can be
215*7c478bd9Sstevel@tonic-gate  *		distinguished by the length of data returned
216*7c478bd9Sstevel@tonic-gate  *		from a MODE SENSE command.
217*7c478bd9Sstevel@tonic-gate  */
218*7c478bd9Sstevel@tonic-gate 
219*7c478bd9Sstevel@tonic-gate #define	PAGELENGTH_DAD_MODE_CACHE_SCSI3	0x12
220*7c478bd9Sstevel@tonic-gate 
221*7c478bd9Sstevel@tonic-gate struct mode_cache_scsi3 {
222*7c478bd9Sstevel@tonic-gate 	struct	mode_page mode_page;	/* common mode page header */
223*7c478bd9Sstevel@tonic-gate #if defined(_BIT_FIELDS_LTOH)
224*7c478bd9Sstevel@tonic-gate 	uchar_t		rcd	: 1,	/* Read Cache Disable */
225*7c478bd9Sstevel@tonic-gate 			mf	: 1,	/* Multiplication Factor */
226*7c478bd9Sstevel@tonic-gate 			wce	: 1,	/* Write Cache Enable */
227*7c478bd9Sstevel@tonic-gate 			size	: 1,	/* Size Enable */
228*7c478bd9Sstevel@tonic-gate 			disc	: 1,	/* Discontinuity */
229*7c478bd9Sstevel@tonic-gate 			cap	: 1,	/* Caching Analysis Permitted */
230*7c478bd9Sstevel@tonic-gate 			abpf	: 1,	/* Abort Pre-Fetch */
231*7c478bd9Sstevel@tonic-gate 			ic	: 1;	/* Initiator Control */
232*7c478bd9Sstevel@tonic-gate 	uchar_t	write_reten_pri	: 4,	/* Write Retention Priority */
233*7c478bd9Sstevel@tonic-gate 		read_reten_pri	: 4;	/* Demand Read Retention Priority */
234*7c478bd9Sstevel@tonic-gate #elif defined(_BIT_FIELDS_HTOL)
235*7c478bd9Sstevel@tonic-gate 	uchar_t		ic	: 1,	/* Initiator Control */
236*7c478bd9Sstevel@tonic-gate 			abpf	: 1,	/* Abort Pre-Fetch */
237*7c478bd9Sstevel@tonic-gate 			cap	: 1,	/* Caching Analysis Permitted */
238*7c478bd9Sstevel@tonic-gate 			disc	: 1,	/* Discontinuity */
239*7c478bd9Sstevel@tonic-gate 			size	: 1,	/* Size Enable */
240*7c478bd9Sstevel@tonic-gate 			wce	: 1,	/* Write Cache Enable */
241*7c478bd9Sstevel@tonic-gate 			mf	: 1,	/* Multiplication Factor */
242*7c478bd9Sstevel@tonic-gate 			rcd	: 1;	/* Read Cache Disable */
243*7c478bd9Sstevel@tonic-gate 	uchar_t	read_reten_pri	: 4,	/* Demand Read Retention Priority */
244*7c478bd9Sstevel@tonic-gate 		write_reten_pri	: 4;	/* Write Retention Priority */
245*7c478bd9Sstevel@tonic-gate #else
246*7c478bd9Sstevel@tonic-gate #error	One of _BIT_FIELDS_LTOH or _BIT_FIELDS_HTOL must be defined
247*7c478bd9Sstevel@tonic-gate #endif	/* _BIT_FIELDS_LTOH */
248*7c478bd9Sstevel@tonic-gate 	ushort_t dis_prefetch_len;	/* Disable prefetch xfer length */
249*7c478bd9Sstevel@tonic-gate 	ushort_t min_prefetch;		/* minimum prefetch length */
250*7c478bd9Sstevel@tonic-gate 	ushort_t max_prefetch;		/* maximum prefetch length */
251*7c478bd9Sstevel@tonic-gate 	ushort_t prefetch_ceiling;	/* max prefetch ceiling */
252*7c478bd9Sstevel@tonic-gate #if defined(_BIT_FIELDS_LTOH)
253*7c478bd9Sstevel@tonic-gate 	uchar_t			: 3,	/* reserved */
254*7c478bd9Sstevel@tonic-gate 			vu_123	: 1,	/* Vendor Specific, byte 12 bit 3 */
255*7c478bd9Sstevel@tonic-gate 			vu_124	: 1,	/* Vendor Specific, byte 12 bit 4 */
256*7c478bd9Sstevel@tonic-gate 			dra	: 1,	/* Disable Read-Ahead */
257*7c478bd9Sstevel@tonic-gate 			lbcss	: 1,	/* Logical Block Cache Segment Size */
258*7c478bd9Sstevel@tonic-gate 			fsw	: 1;	/* Force Sequential Write */
259*7c478bd9Sstevel@tonic-gate #elif defined(_BIT_FIELDS_HTOL)
260*7c478bd9Sstevel@tonic-gate 	uchar_t		fsw	: 1,	/* Force Sequential Write */
261*7c478bd9Sstevel@tonic-gate 			lbcss	: 1,	/* Logical Block Cache Segment Size */
262*7c478bd9Sstevel@tonic-gate 			dra	: 1,	/* Disable Read-Ahead */
263*7c478bd9Sstevel@tonic-gate 			vu_124	: 1,	/* Vendor Specific, byte 12 bit 4 */
264*7c478bd9Sstevel@tonic-gate 			vu_123	: 1,	/* Vendor Specific, byte 12 bit 3 */
265*7c478bd9Sstevel@tonic-gate 				: 3;	/* reserved */
266*7c478bd9Sstevel@tonic-gate #else
267*7c478bd9Sstevel@tonic-gate #error	One of _BIT_FIELDS_LTOH or _BIT_FIELDS_HTOL must be defined
268*7c478bd9Sstevel@tonic-gate #endif	/* _BIT_FIELDS_LTOH */
269*7c478bd9Sstevel@tonic-gate 	uchar_t	num_cache_seg;		/* Number of cache segments */
270*7c478bd9Sstevel@tonic-gate 	ushort_t cache_seg_size;	/* Cache segment size */
271*7c478bd9Sstevel@tonic-gate 	uchar_t	reserved;
272*7c478bd9Sstevel@tonic-gate 	uchar_t	non_cache_seg_size_ub;	/* Non cache segment size */
273*7c478bd9Sstevel@tonic-gate 	uchar_t	non_cache_seg_size_mb;
274*7c478bd9Sstevel@tonic-gate 	uchar_t	non_cache_seg_size_lb;
275*7c478bd9Sstevel@tonic-gate };
276*7c478bd9Sstevel@tonic-gate 
277*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
278*7c478bd9Sstevel@tonic-gate }
279*7c478bd9Sstevel@tonic-gate #endif
280*7c478bd9Sstevel@tonic-gate 
281*7c478bd9Sstevel@tonic-gate #endif	/* _SYS_SCSI_GENERIC_DAD_MODE_H */
282