Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[linux-2.6] / drivers / scsi / dpt / sys_info.h
1 /*      BSDI sys_info.h,v 1.6 1998/06/03 19:14:59 karels Exp    */
2
3 /*
4  * Copyright (c) 1996-1999 Distributed Processing Technology Corporation
5  * All rights reserved.
6  *
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.
10  *
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.
22  *
23  */
24
25 #ifndef         __SYS_INFO_H
26 #define         __SYS_INFO_H
27
28 /*File - SYS_INFO.H
29  ****************************************************************************
30  *
31  *Description:
32  *
33  *      This file contains structure definitions for the OS dependent
34  *layer system information buffers.
35  *
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
41  *
42  *Author:       Don Kemper
43  *Date:         5/10/94
44  *
45  *Editors:
46  *
47  *Remarks:
48  *
49  *
50  *****************************************************************************/
51
52
53 /*Include Files ------------------------------------------------------------- */
54
55 #include        "osd_util.h"
56
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
64
65
66 /*struct - driveParam_S - start
67  *===========================================================================
68  *
69  *Description:
70  *
71  *      This structure defines the drive parameters seen during
72  *booting.
73  *
74  *---------------------------------------------------------------------------*/
75
76 #ifdef  __cplusplus
77    struct driveParam_S {
78 #else
79    typedef struct  {
80 #endif
81
82    uSHORT       cylinders;      /* Upto 1024 */
83    uCHAR        heads;          /* Upto 255 */
84    uCHAR        sectors;        /* Upto 63 */
85
86 #ifdef  __cplusplus
87
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 //--------------------------------------------
94
95    };
96 #else
97    } driveParam_S;
98 #endif
99 /*driveParam_S - end */
100
101
102 /*struct - sysInfo_S - start
103  *===========================================================================
104  *
105  *Description:
106  *
107  *      This structure defines the command system information that
108  *should be returned by every OS dependent layer.
109  *
110  *---------------------------------------------------------------------------*/
111
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
122
123 #define SI_ALL_VALID            0x0FFF  /* All Std SysInfo is valid */
124 #define SI_NO_SmartROM          0x8000
125
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
131
132 #ifdef  __cplusplus
133    struct sysInfo_S {
134 #else
135    typedef struct  {
136 #endif
137
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 */
163
164 #ifdef  __cplusplus
165
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 //--------------------------------------------
172
173    };
174 #else
175    } sysInfo_S;
176 #endif
177 /*sysInfo_S - end */
178
179
180 /*struct - DOS_Info_S - start
181  *===========================================================================
182  *
183  *Description:
184  *
185  *      This structure defines the system information specific to a
186  *DOS workstation.
187  *
188  *---------------------------------------------------------------------------*/
189
190 /*flags - bit definitions */
191 #define DI_DOS_HIGH             0x01    /* DOS is loaded high */
192 #define DI_DPMI_VALID           0x02    /* DPMI version is valid */
193
194 #ifdef  __cplusplus
195    struct DOS_Info_S {
196 #else
197    typedef struct {
198 #endif
199
200    uCHAR        flags;          /* See bit definitions above */
201    uSHORT       driverLocation; /* SmartROM BIOS address */
202    uSHORT       DOS_version;
203    uSHORT       DPMI_version;
204
205 #ifdef  __cplusplus
206
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 //--------------------------------------------
213
214    };
215 #else
216    } DOS_Info_S;
217 #endif
218 /*DOS_Info_S - end */
219
220
221 /*struct - Netware_Info_S - start
222  *===========================================================================
223  *
224  *Description:
225  *
226  *      This structure defines the system information specific to a
227  *Netware machine.
228  *
229  *---------------------------------------------------------------------------*/
230
231 #ifdef  __cplusplus
232    struct Netware_Info_S {
233 #else
234    typedef struct {
235 #endif
236
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;
248
249    uCHAR        clibMajorVersion;       /* The CLIB.NLM version */
250    uCHAR        clibMinorVersion;
251    uCHAR        clibRevision;
252
253 #ifdef  __cplusplus
254
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 //--------------------------------------------
261
262    };
263 #else
264    } Netware_Info_S;
265 #endif
266 /*Netware_Info_S - end */
267
268
269 /*struct - OS2_Info_S - start
270  *===========================================================================
271  *
272  *Description:
273  *
274  *      This structure defines the system information specific to an
275  *OS/2 machine.
276  *
277  *---------------------------------------------------------------------------*/
278
279 #ifdef  __cplusplus
280    struct OS2_Info_S {
281 #else
282    typedef struct {
283 #endif
284
285    uCHAR        something;
286
287 #ifdef  __cplusplus
288
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 //--------------------------------------------
295
296    };
297 #else
298    } OS2_Info_S;
299 #endif
300 /*OS2_Info_S - end */
301
302
303 /*struct - WinNT_Info_S - start
304  *===========================================================================
305  *
306  *Description:
307  *
308  *      This structure defines the system information specific to a
309  *Windows NT machine.
310  *
311  *---------------------------------------------------------------------------*/
312
313 #ifdef  __cplusplus
314    struct WinNT_Info_S {
315 #else
316    typedef struct {
317 #endif
318
319    uCHAR        something;
320
321 #ifdef  __cplusplus
322
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 //--------------------------------------------
329
330    };
331 #else
332    } WinNT_Info_S;
333 #endif
334 /*WinNT_Info_S - end */
335
336
337 /*struct - SCO_Info_S - start
338  *===========================================================================
339  *
340  *Description:
341  *
342  *      This structure defines the system information specific to an
343  *SCO UNIX machine.
344  *
345  *---------------------------------------------------------------------------*/
346
347 #ifdef  __cplusplus
348    struct SCO_Info_S {
349 #else
350    typedef struct {
351 #endif
352
353    uCHAR        something;
354
355 #ifdef  __cplusplus
356
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 //--------------------------------------------
363
364    };
365 #else
366    } SCO_Info_S;
367 #endif
368 /*SCO_Info_S - end */
369
370
371 /*struct - USL_Info_S - start
372  *===========================================================================
373  *
374  *Description:
375  *
376  *      This structure defines the system information specific to a
377  *USL UNIX machine.
378  *
379  *---------------------------------------------------------------------------*/
380
381 #ifdef  __cplusplus
382    struct USL_Info_S {
383 #else
384    typedef struct {
385 #endif
386
387    uCHAR        something;
388
389 #ifdef  __cplusplus
390
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 //--------------------------------------------
397
398    };
399 #else
400    } USL_Info_S;
401 #endif
402 /*USL_Info_S - end */
403
404
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
415
416 #endif  // __SYS_INFO_H
417