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