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; /* Up to 1024 */
83 uCHAR heads; /* Up to 255 */
84 uCHAR sectors; /* Up to 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 uINT extendedMemSize; /* in KB */
149 uINT 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
418