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