Linux-2.6.12-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / drivers / scsi / dpt / sys_info.h
blobd23b70c8c768c3cc9ad782175496cbebc1c7436c
1 /* BSDI sys_info.h,v 1.6 1998/06/03 19:14:59 karels Exp */
3 /*
4 * Copyright (c) 1996-1999 Distributed Processing Technology Corporation
5 * All rights reserved.
7 * Redistribution and use in source form, with or without modification, are
8 * permitted provided that redistributions of source code must retain the
9 * above copyright notice, this list of conditions and the following disclaimer.
11 * This software is provided `as is' by Distributed Processing Technology and
12 * any express or implied warranties, including, but not limited to, the
13 * implied warranties of merchantability and fitness for a particular purpose,
14 * are disclaimed. In no event shall Distributed Processing Technology be
15 * liable for any direct, indirect, incidental, special, exemplary or
16 * consequential damages (including, but not limited to, procurement of
17 * substitute goods or services; loss of use, data, or profits; or business
18 * interruptions) however caused and on any theory of liability, whether in
19 * contract, strict liability, or tort (including negligence or otherwise)
20 * arising in any way out of the use of this driver software, even if advised
21 * of the possibility of such damage.
25 #ifndef __SYS_INFO_H
26 #define __SYS_INFO_H
28 /*File - SYS_INFO.H
29 ****************************************************************************
31 *Description:
33 * This file contains structure definitions for the OS dependent
34 *layer system information buffers.
36 *Copyright Distributed Processing Technology, Corp.
37 * 140 Candace Dr.
38 * Maitland, Fl. 32751 USA
39 * Phone: (407) 830-5522 Fax: (407) 260-5366
40 * All Rights Reserved
42 *Author: Don Kemper
43 *Date: 5/10/94
45 *Editors:
47 *Remarks:
50 *****************************************************************************/
53 /*Include Files ------------------------------------------------------------- */
55 #include "osd_util.h"
57 #ifndef NO_PACK
58 #if defined (_DPT_AIX)
59 #pragma options align=packed
60 #else
61 #pragma pack(1)
62 #endif /* aix */
63 #endif // no unpack
66 /*struct - driveParam_S - start
67 *===========================================================================
69 *Description:
71 * This structure defines the drive parameters seen during
72 *booting.
74 *---------------------------------------------------------------------------*/
76 #ifdef __cplusplus
77 struct driveParam_S {
78 #else
79 typedef struct {
80 #endif
82 uSHORT cylinders; /* Upto 1024 */
83 uCHAR heads; /* Upto 255 */
84 uCHAR sectors; /* Upto 63 */
86 #ifdef __cplusplus
88 //---------- Portability Additions ----------- in sp_sinfo.cpp
89 #ifdef DPT_PORTABLE
90 uSHORT netInsert(dptBuffer_S *buffer);
91 uSHORT netExtract(dptBuffer_S *buffer);
92 #endif // DPT PORTABLE
93 //--------------------------------------------
96 #else
97 } driveParam_S;
98 #endif
99 /*driveParam_S - end */
102 /*struct - sysInfo_S - start
103 *===========================================================================
105 *Description:
107 * This structure defines the command system information that
108 *should be returned by every OS dependent layer.
110 *---------------------------------------------------------------------------*/
112 /*flags - bit definitions */
113 #define SI_CMOS_Valid 0x0001
114 #define SI_NumDrivesValid 0x0002
115 #define SI_ProcessorValid 0x0004
116 #define SI_MemorySizeValid 0x0008
117 #define SI_DriveParamsValid 0x0010
118 #define SI_SmartROMverValid 0x0020
119 #define SI_OSversionValid 0x0040
120 #define SI_OSspecificValid 0x0080 /* 1 if OS structure returned */
121 #define SI_BusTypeValid 0x0100
123 #define SI_ALL_VALID 0x0FFF /* All Std SysInfo is valid */
124 #define SI_NO_SmartROM 0x8000
126 /*busType - definitions */
127 #define SI_ISA_BUS 0x00
128 #define SI_MCA_BUS 0x01
129 #define SI_EISA_BUS 0x02
130 #define SI_PCI_BUS 0x04
132 #ifdef __cplusplus
133 struct sysInfo_S {
134 #else
135 typedef struct {
136 #endif
138 uCHAR drive0CMOS; /* CMOS Drive 0 Type */
139 uCHAR drive1CMOS; /* CMOS Drive 1 Type */
140 uCHAR numDrives; /* 0040:0075 contents */
141 uCHAR processorFamily; /* Same as DPTSIG's definition */
142 uCHAR processorType; /* Same as DPTSIG's definition */
143 uCHAR smartROMMajorVersion;
144 uCHAR smartROMMinorVersion; /* SmartROM version */
145 uCHAR smartROMRevision;
146 uSHORT flags; /* See bit definitions above */
147 uSHORT conventionalMemSize; /* in KB */
148 uLONG extendedMemSize; /* in KB */
149 uLONG osType; /* Same as DPTSIG's definition */
150 uCHAR osMajorVersion;
151 uCHAR osMinorVersion; /* The OS version */
152 uCHAR osRevision;
153 #ifdef _SINIX_ADDON
154 uCHAR busType; /* See defininitions above */
155 uSHORT osSubRevision;
156 uCHAR pad[2]; /* For alignment */
157 #else
158 uCHAR osSubRevision;
159 uCHAR busType; /* See defininitions above */
160 uCHAR pad[3]; /* For alignment */
161 #endif
162 driveParam_S drives[16]; /* SmartROM Logical Drives */
164 #ifdef __cplusplus
166 //---------- Portability Additions ----------- in sp_sinfo.cpp
167 #ifdef DPT_PORTABLE
168 uSHORT netInsert(dptBuffer_S *buffer);
169 uSHORT netExtract(dptBuffer_S *buffer);
170 #endif // DPT PORTABLE
171 //--------------------------------------------
174 #else
175 } sysInfo_S;
176 #endif
177 /*sysInfo_S - end */
180 /*struct - DOS_Info_S - start
181 *===========================================================================
183 *Description:
185 * This structure defines the system information specific to a
186 *DOS workstation.
188 *---------------------------------------------------------------------------*/
190 /*flags - bit definitions */
191 #define DI_DOS_HIGH 0x01 /* DOS is loaded high */
192 #define DI_DPMI_VALID 0x02 /* DPMI version is valid */
194 #ifdef __cplusplus
195 struct DOS_Info_S {
196 #else
197 typedef struct {
198 #endif
200 uCHAR flags; /* See bit definitions above */
201 uSHORT driverLocation; /* SmartROM BIOS address */
202 uSHORT DOS_version;
203 uSHORT DPMI_version;
205 #ifdef __cplusplus
207 //---------- Portability Additions ----------- in sp_sinfo.cpp
208 #ifdef DPT_PORTABLE
209 uSHORT netInsert(dptBuffer_S *buffer);
210 uSHORT netExtract(dptBuffer_S *buffer);
211 #endif // DPT PORTABLE
212 //--------------------------------------------
215 #else
216 } DOS_Info_S;
217 #endif
218 /*DOS_Info_S - end */
221 /*struct - Netware_Info_S - start
222 *===========================================================================
224 *Description:
226 * This structure defines the system information specific to a
227 *Netware machine.
229 *---------------------------------------------------------------------------*/
231 #ifdef __cplusplus
232 struct Netware_Info_S {
233 #else
234 typedef struct {
235 #endif
237 uCHAR driverName[13]; /* ie PM12NW31.DSK */
238 uCHAR serverName[48];
239 uCHAR netwareVersion; /* The Netware OS version */
240 uCHAR netwareSubVersion;
241 uCHAR netwareRevision;
242 uSHORT maxConnections; /* Probably 250 or 1000 */
243 uSHORT connectionsInUse;
244 uSHORT maxVolumes;
245 uCHAR unused;
246 uCHAR SFTlevel;
247 uCHAR TTSlevel;
249 uCHAR clibMajorVersion; /* The CLIB.NLM version */
250 uCHAR clibMinorVersion;
251 uCHAR clibRevision;
253 #ifdef __cplusplus
255 //---------- Portability Additions ----------- in sp_sinfo.cpp
256 #ifdef DPT_PORTABLE
257 uSHORT netInsert(dptBuffer_S *buffer);
258 uSHORT netExtract(dptBuffer_S *buffer);
259 #endif // DPT PORTABLE
260 //--------------------------------------------
263 #else
264 } Netware_Info_S;
265 #endif
266 /*Netware_Info_S - end */
269 /*struct - OS2_Info_S - start
270 *===========================================================================
272 *Description:
274 * This structure defines the system information specific to an
275 *OS/2 machine.
277 *---------------------------------------------------------------------------*/
279 #ifdef __cplusplus
280 struct OS2_Info_S {
281 #else
282 typedef struct {
283 #endif
285 uCHAR something;
287 #ifdef __cplusplus
289 //---------- Portability Additions ----------- in sp_sinfo.cpp
290 #ifdef DPT_PORTABLE
291 uSHORT netInsert(dptBuffer_S *buffer);
292 uSHORT netExtract(dptBuffer_S *buffer);
293 #endif // DPT PORTABLE
294 //--------------------------------------------
297 #else
298 } OS2_Info_S;
299 #endif
300 /*OS2_Info_S - end */
303 /*struct - WinNT_Info_S - start
304 *===========================================================================
306 *Description:
308 * This structure defines the system information specific to a
309 *Windows NT machine.
311 *---------------------------------------------------------------------------*/
313 #ifdef __cplusplus
314 struct WinNT_Info_S {
315 #else
316 typedef struct {
317 #endif
319 uCHAR something;
321 #ifdef __cplusplus
323 //---------- Portability Additions ----------- in sp_sinfo.cpp
324 #ifdef DPT_PORTABLE
325 uSHORT netInsert(dptBuffer_S *buffer);
326 uSHORT netExtract(dptBuffer_S *buffer);
327 #endif // DPT PORTABLE
328 //--------------------------------------------
331 #else
332 } WinNT_Info_S;
333 #endif
334 /*WinNT_Info_S - end */
337 /*struct - SCO_Info_S - start
338 *===========================================================================
340 *Description:
342 * This structure defines the system information specific to an
343 *SCO UNIX machine.
345 *---------------------------------------------------------------------------*/
347 #ifdef __cplusplus
348 struct SCO_Info_S {
349 #else
350 typedef struct {
351 #endif
353 uCHAR something;
355 #ifdef __cplusplus
357 //---------- Portability Additions ----------- in sp_sinfo.cpp
358 #ifdef DPT_PORTABLE
359 uSHORT netInsert(dptBuffer_S *buffer);
360 uSHORT netExtract(dptBuffer_S *buffer);
361 #endif // DPT PORTABLE
362 //--------------------------------------------
365 #else
366 } SCO_Info_S;
367 #endif
368 /*SCO_Info_S - end */
371 /*struct - USL_Info_S - start
372 *===========================================================================
374 *Description:
376 * This structure defines the system information specific to a
377 *USL UNIX machine.
379 *---------------------------------------------------------------------------*/
381 #ifdef __cplusplus
382 struct USL_Info_S {
383 #else
384 typedef struct {
385 #endif
387 uCHAR something;
389 #ifdef __cplusplus
391 //---------- Portability Additions ----------- in sp_sinfo.cpp
392 #ifdef DPT_PORTABLE
393 uSHORT netInsert(dptBuffer_S *buffer);
394 uSHORT netExtract(dptBuffer_S *buffer);
395 #endif // DPT PORTABLE
396 //--------------------------------------------
399 #else
400 } USL_Info_S;
401 #endif
402 /*USL_Info_S - end */
405 /* Restore default structure packing */
406 #ifndef NO_UNPACK
407 #if defined (_DPT_AIX)
408 #pragma options align=reset
409 #elif defined (UNPACK_FOUR)
410 #pragma pack(4)
411 #else
412 #pragma pack()
413 #endif /* aix */
414 #endif // no unpack
416 #endif // __SYS_INFO_H