Deleted Added
sdiff udiff text old ( 87826 ) new ( 96551 )
full compact
1/*
2 * Copyright (c) 1996-1999 Distributed Processing Technology Corporation
3 * All rights reserved.
4 *
5 * Redistribution and use in source form, with or without modification, are
6 * permitted provided that redistributions of source code must retain the
7 * above copyright notice, this list of conditions and the following disclaimer.
8 *
9 * This software is provided `as is' by Distributed Processing Technology and
10 * any express or implied warranties, including, but not limited to, the
11 * implied warranties of merchantability and fitness for a particular purpose,
12 * are disclaimed. In no event shall Distributed Processing Technology be
13 * liable for any direct, indirect, incidental, special, exemplary or
14 * consequential damages (including, but not limited to, procurement of
15 * substitute goods or services; loss of use, data, or profits; or business
16 * interruptions) however caused and on any theory of liability, whether in
17 * contract, strict liability, or tort (including negligence or otherwise)
18 * arising in any way out of the use of this driver software, even if advised
19 * of the possibility of such damage.
20 *
21 * $FreeBSD: head/sys/dev/asr/sys_info.h 96551 2002-05-14 00:53:08Z obrien $
22 */
23
24#ifndef __SYS_INFO_H
25#define __SYS_INFO_H
26
27/*File - SYS_INFO.H
28 ****************************************************************************
29 *
30 *Description:
31 *
32 * This file contains structure definitions for the OS dependent
33 *layer system information buffers.
34 *
35 *Copyright Distributed Processing Technology, Corp.
36 * 140 Candace Dr.
37 * Maitland, Fl. 32751 USA
38 * Phone: (407) 830-5522 Fax: (407) 260-5366
39 * All Rights Reserved
40 *
41 *Author: Don Kemper
42 *Date: 5/10/94
43 *
44 *Editors:
45 *
46 *Remarks:
47 *
48 *
49 *****************************************************************************/
50
51
52/*Include Files ------------------------------------------------------------- */
53
54#if (defined(KERNEL) && defined(__bsdi__))
55# include "i386/isa/dpt_osd_util.h"
56#elif ((defined(KERNEL) || defined(_KERNEL)) && defined(__FreeBSD__))
57# if (KERN_VERSION < 3)
58# include "i386/isa/dpt_osd_util.h"
59# else
60# include "dev/asr/osd_util.h"
61# endif
62#else
63# include "osd_util.h"
64#endif
65
66#ifndef NO_PACK
67#if defined (_DPT_AIX)
68#pragma options align=packed
69#else
70#pragma pack(1)
71#endif /* aix */
72#endif /* no unpack */
73
74
75/*struct - driveParam_S - start
76 *===========================================================================
77 *
78 *Description:
79 *
80 * This structure defines the drive parameters seen during
81 *booting.
82 *
83 *---------------------------------------------------------------------------*/
84
85#ifdef __cplusplus
86 struct driveParam_S {
87#else
88 typedef struct {
89#endif
90
91 uSHORT cylinders; /* Upto 1024 */
92 uCHAR heads; /* Upto 255 */
93 uCHAR sectors; /* Upto 63 */
94
95#ifdef __cplusplus
96
97/*---------- Portability Additions ----------- in sp_sinfo.cpp */
98#ifdef DPT_PORTABLE
99 uSHORT netInsert(dptBuffer_S *buffer);
100 uSHORT netExtract(dptBuffer_S *buffer);
101#endif /* DPT PORTABLE */
102/*--------------------------------------------*/
103
104 };
105#else
106 } driveParam_S;
107#endif
108/*driveParam_S - end */
109
110
111/*struct - sysInfo_S - start
112 *===========================================================================
113 *
114 *Description:
115 *
116 * This structure defines the command system information that
117 *should be returned by every OS dependent layer.
118 *
119 *---------------------------------------------------------------------------*/
120
121/*flags - bit definitions */
122#define SI_CMOS_Valid 0x0001
123#define SI_NumDrivesValid 0x0002
124#define SI_ProcessorValid 0x0004
125#define SI_MemorySizeValid 0x0008
126#define SI_DriveParamsValid 0x0010
127#define SI_SmartROMverValid 0x0020
128#define SI_OSversionValid 0x0040
129#define SI_OSspecificValid 0x0080 /* 1 if OS structure returned */
130#define SI_BusTypeValid 0x0100
131
132#define SI_ALL_VALID 0x0FFF /* All Std SysInfo is valid */
133#define SI_NO_SmartROM 0x8000
134
135/*busType - definitions */
136#define SI_ISA_BUS 0x00
137#define SI_MCA_BUS 0x01
138#define SI_EISA_BUS 0x02
139#define SI_PCI_BUS 0x04
140
141#ifdef __cplusplus
142 struct sysInfo_S {
143#else
144 typedef struct {
145#endif
146
147 uCHAR drive0CMOS; /* CMOS Drive 0 Type */
148 uCHAR drive1CMOS; /* CMOS Drive 1 Type */
149 uCHAR numDrives; /* 0040:0075 contents */
150 uCHAR processorFamily; /* Same as DPTSIG's definition */
151 uCHAR processorType; /* Same as DPTSIG's definition */
152 uCHAR smartROMMajorVersion;
153 uCHAR smartROMMinorVersion; /* SmartROM version */
154 uCHAR smartROMRevision;
155 uSHORT flags; /* See bit definitions above */
156 uSHORT conventionalMemSize; /* in KB */
157 uLONG extendedMemSize; /* in KB */
158 uLONG osType; /* Same as DPTSIG's definition */
159 uCHAR osMajorVersion;
160 uCHAR osMinorVersion; /* The OS version */
161 uCHAR osRevision;
162#ifdef _SINIX_ADDON
163 uCHAR busType; /* See defininitions above */
164 uSHORT osSubRevision;
165 uCHAR pad[2]; /* For alignment */
166#else
167 uCHAR osSubRevision;
168 uCHAR busType; /* See defininitions above */
169 uCHAR pad[3]; /* For alignment */
170#endif
171 driveParam_S drives[16]; /* SmartROM Logical Drives */
172
173#ifdef __cplusplus
174
175/*---------- Portability Additions ----------- in sp_sinfo.cpp */
176#ifdef DPT_PORTABLE
177 uSHORT netInsert(dptBuffer_S *buffer);
178 uSHORT netExtract(dptBuffer_S *buffer);
179#endif /* DPT PORTABLE */
180/*--------------------------------------------*/
181
182 };
183#else
184 } sysInfo_S;
185#endif
186/*sysInfo_S - end */
187
188
189/*struct - DOS_Info_S - start
190 *===========================================================================
191 *
192 *Description:
193 *
194 * This structure defines the system information specific to a
195 *DOS workstation.
196 *
197 *---------------------------------------------------------------------------*/
198
199/*flags - bit definitions */
200#define DI_DOS_HIGH 0x01 /* DOS is loaded high */
201#define DI_DPMI_VALID 0x02 /* DPMI version is valid */
202
203#ifdef __cplusplus
204 struct DOS_Info_S {
205#else
206 typedef struct {
207#endif
208
209 uCHAR flags; /* See bit definitions above */
210 uSHORT driverLocation; /* SmartROM BIOS address */
211 uSHORT DOS_version;
212 uSHORT DPMI_version;
213
214#ifdef __cplusplus
215
216/*---------- Portability Additions ----------- in sp_sinfo.cpp */
217#ifdef DPT_PORTABLE
218 uSHORT netInsert(dptBuffer_S *buffer);
219 uSHORT netExtract(dptBuffer_S *buffer);
220#endif /* DPT PORTABLE */
221/*--------------------------------------------*/
222
223 };
224#else
225 } DOS_Info_S;
226#endif
227/*DOS_Info_S - end */
228
229
230/*struct - Netware_Info_S - start
231 *===========================================================================
232 *
233 *Description:
234 *
235 * This structure defines the system information specific to a
236 *Netware machine.
237 *
238 *---------------------------------------------------------------------------*/
239
240#ifdef __cplusplus
241 struct Netware_Info_S {
242#else
243 typedef struct {
244#endif
245
246 uCHAR driverName[13]; /* ie PM12NW31.DSK */
247 uCHAR serverName[48];
248 uCHAR netwareVersion; /* The Netware OS version */
249 uCHAR netwareSubVersion;
250 uCHAR netwareRevision;
251 uSHORT maxConnections; /* Probably 250 or 1000 */
252 uSHORT connectionsInUse;
253 uSHORT maxVolumes;
254 uCHAR unused;
255 uCHAR SFTlevel;
256 uCHAR TTSlevel;
257
258 uCHAR clibMajorVersion; /* The CLIB.NLM version */
259 uCHAR clibMinorVersion;
260 uCHAR clibRevision;
261
262#ifdef __cplusplus
263
264/*---------- Portability Additions ----------- in sp_sinfo.cpp */
265#ifdef DPT_PORTABLE
266 uSHORT netInsert(dptBuffer_S *buffer);
267 uSHORT netExtract(dptBuffer_S *buffer);
268#endif /* DPT PORTABLE */
269/*--------------------------------------------*/
270
271 };
272#else
273 } Netware_Info_S;
274#endif
275/*Netware_Info_S - end */
276
277
278/*struct - OS2_Info_S - start
279 *===========================================================================
280 *
281 *Description:
282 *
283 * This structure defines the system information specific to an
284 *OS/2 machine.
285 *
286 *---------------------------------------------------------------------------*/
287
288#ifdef __cplusplus
289 struct OS2_Info_S {
290#else
291 typedef struct {
292#endif
293
294 uCHAR something;
295
296#ifdef __cplusplus
297
298/*---------- Portability Additions ----------- in sp_sinfo.cpp */
299#ifdef DPT_PORTABLE
300 uSHORT netInsert(dptBuffer_S *buffer);
301 uSHORT netExtract(dptBuffer_S *buffer);
302#endif /* DPT PORTABLE */
303/*--------------------------------------------*/
304
305 };
306#else
307 } OS2_Info_S;
308#endif
309/*OS2_Info_S - end */
310
311
312/*struct - WinNT_Info_S - start
313 *===========================================================================
314 *
315 *Description:
316 *
317 * This structure defines the system information specific to a
318 *Windows NT machine.
319 *
320 *---------------------------------------------------------------------------*/
321
322#ifdef __cplusplus
323 struct WinNT_Info_S {
324#else
325 typedef struct {
326#endif
327
328 uCHAR something;
329
330#ifdef __cplusplus
331
332/*---------- Portability Additions ----------- in sp_sinfo.cpp */
333#ifdef DPT_PORTABLE
334 uSHORT netInsert(dptBuffer_S *buffer);
335 uSHORT netExtract(dptBuffer_S *buffer);
336#endif /* DPT PORTABLE */
337/*--------------------------------------------*/
338
339 };
340#else
341 } WinNT_Info_S;
342#endif
343/*WinNT_Info_S - end */
344
345
346/*struct - SCO_Info_S - start
347 *===========================================================================
348 *
349 *Description:
350 *
351 * This structure defines the system information specific to an
352 *SCO UNIX machine.
353 *
354 *---------------------------------------------------------------------------*/
355
356#ifdef __cplusplus
357 struct SCO_Info_S {
358#else
359 typedef struct {
360#endif
361
362 uCHAR something;
363
364#ifdef __cplusplus
365
366/*---------- Portability Additions ----------- in sp_sinfo.cpp */
367#ifdef DPT_PORTABLE
368 uSHORT netInsert(dptBuffer_S *buffer);
369 uSHORT netExtract(dptBuffer_S *buffer);
370#endif /* DPT PORTABLE */
371/*--------------------------------------------*/
372
373 };
374#else
375 } SCO_Info_S;
376#endif
377/*SCO_Info_S - end */
378
379
380/*struct - USL_Info_S - start
381 *===========================================================================
382 *
383 *Description:
384 *
385 * This structure defines the system information specific to a
386 *USL UNIX machine.
387 *
388 *---------------------------------------------------------------------------*/
389
390#ifdef __cplusplus
391 struct USL_Info_S {
392#else
393 typedef struct {
394#endif
395
396 uCHAR something;
397
398#ifdef __cplusplus
399
400/*---------- Portability Additions ----------- in sp_sinfo.cpp */
401#ifdef DPT_PORTABLE
402 uSHORT netInsert(dptBuffer_S *buffer);
403 uSHORT netExtract(dptBuffer_S *buffer);
404#endif /* DPT PORTABLE */
405/*--------------------------------------------*/
406
407 };
408#else
409 } USL_Info_S;
410#endif
411/*USL_Info_S - end */
412
413
414 /* Restore default structure packing */
415#ifndef NO_UNPACK
416#if defined (_DPT_AIX)
417#pragma options align=reset
418#elif defined (UNPACK_FOUR)
419#pragma pack(4)
420#else
421#pragma pack()
422#endif /* aix */
423#endif /* no unpack */
424
425#ifdef DPT_MEASURE_PERFORMANCE
426typedef struct dpt_metrics {
427 u_int32_t command_count[256]; /* We assume MAX 256 SCSI commands */
428 u_int32_t max_command_time[256];
429 u_int32_t min_command_time[256];
430
431 u_int32_t min_intr_time;
432 u_int32_t max_intr_time;
433 u_int32_t max_intr_gap;
434 u_int32_t max_ht_time;
435 u_int32_t aborted_interrupts;
436 u_int32_t spurious_interrupts;
437 u_int32_t aborted_requests;
438 u_int32_t retried_requests;
439
440 u_int32_t max_waiting_count;
441 u_int32_t max_submit_count;
442 u_int32_t max_complete_count;
443
444 u_int32_t min_waiting_time;
445 u_int32_t min_submit_time;
446 u_int32_t min_complete_time;
447
448 u_int32_t max_waiting_time;
449 u_int32_t max_submit_time;
450 u_int32_t max_complete_time;
451
452 u_int32_t command_collisions;
453 u_int32_t command_too_busy;
454 u_int32_t max_eata_tries;
455 u_int32_t min_eata_tries;
456
457 u_int32_t read_by_size_count[10];
458 u_int32_t write_by_size_count[10];
459 u_int32_t read_by_size_min_time[10];
460 u_int32_t read_by_size_max_time[10];
461 struct timeval read_by_size_total_time[10];
462 u_int32_t write_by_size_min_time[10];
463 u_int32_t write_by_size_max_time[10];
464 struct timeval write_by_size_total_time[10];
465
466#define SIZE_512 0
467#define SIZE_1K 1
468#define SIZE_2K 2
469#define SIZE_4K 3
470#define SIZE_8K 4
471#define SIZE_16K 5
472#define SIZE_32K 6
473#define SIZE_64K 7
474#define SIZE_BIGGER 8
475#define SIZE_OTHER 9
476
477 struct timeval intr_started;
478} dpt_perf_t;
479#endif
480
481#endif /* __SYS_INFO_H */
482