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