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