The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/raid/asr/sys_info.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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: src/sys/dev/asr/sys_info.h,v 1.9 2005/01/06 01:42:29 imp Exp $
   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 #include         "osd_util.h"
   55 
   56 #ifndef NO_PACK
   57 #if defined(_DPT_AIX)
   58 #pragma options align=packed
   59 #else
   60 #pragma pack(1)
   61 #endif  /* aix */
   62 #endif  /* no unpack */
   63 
   64 
   65 /*struct - driveParam_S - start
   66  *===========================================================================
   67  *
   68  *Description:
   69  *
   70  *      This structure defines the drive parameters seen during
   71  *booting.
   72  *
   73  *---------------------------------------------------------------------------*/
   74 
   75 #ifdef __cplusplus
   76    struct driveParam_S {
   77 #else
   78    typedef struct  {
   79 #endif
   80 
   81    uSHORT       cylinders;      /* Upto 1024 */
   82    uCHAR        heads;          /* Upto 255 */
   83    uCHAR        sectors;        /* Upto 63 */
   84 
   85 #ifdef __cplusplus
   86 
   87 /*---------- Portability Additions ----------- in sp_sinfo.cpp */
   88 #ifdef DPT_PORTABLE
   89         uSHORT          netInsert(dptBuffer_S *buffer);
   90         uSHORT          netExtract(dptBuffer_S *buffer);
   91 #endif /* DPT PORTABLE */
   92 /*--------------------------------------------*/
   93 
   94    };
   95 #else
   96    } driveParam_S;
   97 #endif
   98 /*driveParam_S - end */
   99 
  100 
  101 /*struct - sysInfo_S - start
  102  *===========================================================================
  103  *
  104  *Description:
  105  *
  106  *      This structure defines the command system information that
  107  *should be returned by every OS dependent layer.
  108  *
  109  *---------------------------------------------------------------------------*/
  110 
  111 /*flags - bit definitions */
  112 #define SI_CMOS_Valid           0x0001
  113 #define SI_NumDrivesValid       0x0002
  114 #define SI_ProcessorValid       0x0004
  115 #define SI_MemorySizeValid      0x0008
  116 #define SI_DriveParamsValid     0x0010
  117 #define SI_SmartROMverValid     0x0020
  118 #define SI_OSversionValid       0x0040
  119 #define SI_OSspecificValid      0x0080  /* 1 if OS structure returned */
  120 #define SI_BusTypeValid         0x0100
  121 
  122 #define SI_ALL_VALID            0x0FFF  /* All Std SysInfo is valid */
  123 #define SI_NO_SmartROM          0x8000
  124 
  125 /*busType - definitions */
  126 #define SI_ISA_BUS      0x00
  127 #define SI_MCA_BUS      0x01
  128 #define SI_EISA_BUS     0x02
  129 #define SI_PCI_BUS      0x04
  130 
  131 #ifdef __cplusplus
  132    struct sysInfo_S {
  133 #else
  134    typedef struct  {
  135 #endif
  136 
  137    uCHAR        drive0CMOS;             /* CMOS Drive 0 Type */
  138    uCHAR        drive1CMOS;             /* CMOS Drive 1 Type */
  139    uCHAR        numDrives;              /* 0040:0075 contents */
  140    uCHAR        processorFamily;        /* Same as DPTSIG's definition */
  141    uCHAR        processorType;          /* Same as DPTSIG's definition */
  142    uCHAR        smartROMMajorVersion;
  143    uCHAR        smartROMMinorVersion;   /* SmartROM version */
  144    uCHAR        smartROMRevision;
  145    uSHORT       flags;                  /* See bit definitions above */
  146    uSHORT       conventionalMemSize;    /* in KB */
  147    uLONG        extendedMemSize;        /* in KB */
  148    uLONG        osType;                 /* Same as DPTSIG's definition */
  149    uCHAR        osMajorVersion;
  150    uCHAR        osMinorVersion;         /* The OS version */
  151    uCHAR        osRevision;
  152 #ifdef _SINIX_ADDON
  153    uCHAR        busType;                /* See defininitions above */
  154    uSHORT       osSubRevision;
  155    uCHAR        pad[2];                 /* For alignment */
  156 #else
  157    uCHAR        osSubRevision;
  158    uCHAR        busType;                /* See defininitions above */
  159    uCHAR        pad[3];                 /* For alignment */
  160 #endif
  161    driveParam_S drives[16];             /* SmartROM Logical Drives */
  162 
  163 #ifdef __cplusplus
  164 
  165 /*---------- Portability Additions ----------- in sp_sinfo.cpp */
  166 #ifdef DPT_PORTABLE
  167         uSHORT          netInsert(dptBuffer_S *buffer);
  168         uSHORT          netExtract(dptBuffer_S *buffer);
  169 #endif /* DPT PORTABLE */
  170 /*--------------------------------------------*/
  171 
  172    };
  173 #else
  174    } sysInfo_S;
  175 #endif
  176 /*sysInfo_S - end */
  177 
  178 
  179 /*struct - DOS_Info_S - start
  180  *===========================================================================
  181  *
  182  *Description:
  183  *
  184  *      This structure defines the system information specific to a
  185  *DOS workstation.
  186  *
  187  *---------------------------------------------------------------------------*/
  188 
  189 /*flags - bit definitions */
  190 #define DI_DOS_HIGH             0x01    /* DOS is loaded high */
  191 #define DI_DPMI_VALID           0x02    /* DPMI version is valid */
  192 
  193 #ifdef __cplusplus
  194    struct DOS_Info_S {
  195 #else
  196    typedef struct {
  197 #endif
  198 
  199    uCHAR        flags;          /* See bit definitions above */
  200    uSHORT       driverLocation; /* SmartROM BIOS address */
  201    uSHORT       DOS_version;
  202    uSHORT       DPMI_version;
  203 
  204 #ifdef __cplusplus
  205 
  206 /*---------- Portability Additions ----------- in sp_sinfo.cpp */
  207 #ifdef DPT_PORTABLE
  208         uSHORT          netInsert(dptBuffer_S *buffer);
  209         uSHORT          netExtract(dptBuffer_S *buffer);
  210 #endif /* DPT PORTABLE */
  211 /*--------------------------------------------*/
  212 
  213    };
  214 #else
  215    } DOS_Info_S;
  216 #endif
  217 /*DOS_Info_S - end */
  218 
  219 
  220 /*struct - Netware_Info_S - start
  221  *===========================================================================
  222  *
  223  *Description:
  224  *
  225  *      This structure defines the system information specific to a
  226  *Netware machine.
  227  *
  228  *---------------------------------------------------------------------------*/
  229 
  230 #ifdef __cplusplus
  231    struct Netware_Info_S {
  232 #else
  233    typedef struct {
  234 #endif
  235 
  236    uCHAR        driverName[13];         /* ie PM12NW31.DSK */
  237    uCHAR        serverName[48];
  238    uCHAR        netwareVersion;         /* The Netware OS version */
  239    uCHAR        netwareSubVersion;
  240    uCHAR        netwareRevision;
  241    uSHORT       maxConnections;         /* Probably  250 or 1000 */
  242    uSHORT       connectionsInUse;
  243    uSHORT       maxVolumes;
  244    uCHAR        unused;
  245    uCHAR        SFTlevel;
  246    uCHAR        TTSlevel;
  247 
  248    uCHAR        clibMajorVersion;       /* The CLIB.NLM version */
  249    uCHAR        clibMinorVersion;
  250    uCHAR        clibRevision;
  251 
  252 #ifdef __cplusplus
  253 
  254 /*---------- Portability Additions ----------- in sp_sinfo.cpp */
  255 #ifdef DPT_PORTABLE
  256         uSHORT          netInsert(dptBuffer_S *buffer);
  257         uSHORT          netExtract(dptBuffer_S *buffer);
  258 #endif /* DPT PORTABLE */
  259 /*--------------------------------------------*/
  260 
  261    };
  262 #else
  263    } Netware_Info_S;
  264 #endif
  265 /*Netware_Info_S - end */
  266 
  267 
  268 /*struct - OS2_Info_S - start
  269  *===========================================================================
  270  *
  271  *Description:
  272  *
  273  *      This structure defines the system information specific to an
  274  *OS/2 machine.
  275  *
  276  *---------------------------------------------------------------------------*/
  277 
  278 #ifdef __cplusplus
  279    struct OS2_Info_S {
  280 #else
  281    typedef struct {
  282 #endif
  283 
  284    uCHAR        something;
  285 
  286 #ifdef __cplusplus
  287 
  288 /*---------- Portability Additions ----------- in sp_sinfo.cpp */
  289 #ifdef DPT_PORTABLE
  290         uSHORT          netInsert(dptBuffer_S *buffer);
  291         uSHORT          netExtract(dptBuffer_S *buffer);
  292 #endif /* DPT PORTABLE */
  293 /*--------------------------------------------*/
  294 
  295    };
  296 #else
  297    } OS2_Info_S;
  298 #endif
  299 /*OS2_Info_S - end */
  300 
  301 
  302 /*struct - WinNT_Info_S - start
  303  *===========================================================================
  304  *
  305  *Description:
  306  *
  307  *      This structure defines the system information specific to a
  308  *Windows NT machine.
  309  *
  310  *---------------------------------------------------------------------------*/
  311 
  312 #ifdef __cplusplus
  313    struct WinNT_Info_S {
  314 #else
  315    typedef struct {
  316 #endif
  317 
  318    uCHAR        something;
  319 
  320 #ifdef __cplusplus
  321 
  322 /*---------- Portability Additions ----------- in sp_sinfo.cpp */
  323 #ifdef DPT_PORTABLE
  324         uSHORT          netInsert(dptBuffer_S *buffer);
  325         uSHORT          netExtract(dptBuffer_S *buffer);
  326 #endif /* DPT PORTABLE */
  327 /*--------------------------------------------*/
  328 
  329    };
  330 #else
  331    } WinNT_Info_S;
  332 #endif
  333 /*WinNT_Info_S - end */
  334 
  335 
  336 /*struct - SCO_Info_S - start
  337  *===========================================================================
  338  *
  339  *Description:
  340  *
  341  *      This structure defines the system information specific to an
  342  *SCO UNIX machine.
  343  *
  344  *---------------------------------------------------------------------------*/
  345 
  346 #ifdef __cplusplus
  347    struct SCO_Info_S {
  348 #else
  349    typedef struct {
  350 #endif
  351 
  352    uCHAR        something;
  353 
  354 #ifdef __cplusplus
  355 
  356 /*---------- Portability Additions ----------- in sp_sinfo.cpp */
  357 #ifdef DPT_PORTABLE
  358         uSHORT          netInsert(dptBuffer_S *buffer);
  359         uSHORT          netExtract(dptBuffer_S *buffer);
  360 #endif /* DPT PORTABLE */
  361 /*--------------------------------------------*/
  362 
  363    };
  364 #else
  365    } SCO_Info_S;
  366 #endif
  367 /*SCO_Info_S - end */
  368 
  369 
  370 /*struct - USL_Info_S - start
  371  *===========================================================================
  372  *
  373  *Description:
  374  *
  375  *      This structure defines the system information specific to a
  376  *USL UNIX machine.
  377  *
  378  *---------------------------------------------------------------------------*/
  379 
  380 #ifdef __cplusplus
  381    struct USL_Info_S {
  382 #else
  383    typedef struct {
  384 #endif
  385 
  386    uCHAR        something;
  387 
  388 #ifdef __cplusplus
  389 
  390 /*---------- Portability Additions ----------- in sp_sinfo.cpp */
  391 #ifdef DPT_PORTABLE
  392         uSHORT          netInsert(dptBuffer_S *buffer);
  393         uSHORT          netExtract(dptBuffer_S *buffer);
  394 #endif /* DPT PORTABLE */
  395 /*--------------------------------------------*/
  396 
  397    };
  398 #else
  399    } USL_Info_S;
  400 #endif
  401 /*USL_Info_S - end */
  402 
  403 
  404   /* Restore default structure packing */
  405 #ifndef NO_UNPACK
  406 #if defined(_DPT_AIX)
  407 #pragma options align=reset
  408 #elif defined(UNPACK_FOUR)
  409 #pragma pack(4)
  410 #else
  411 #pragma pack()
  412 #endif  /* aix */
  413 #endif  /* no unpack */
  414 
  415 #ifdef DPT_MEASURE_PERFORMANCE
  416 typedef struct dpt_metrics {
  417         u_int32_t       command_count[256]; /* We assume MAX 256 SCSI commands */
  418         u_int32_t       max_command_time[256];
  419         u_int32_t       min_command_time[256];
  420 
  421         u_int32_t       min_intr_time;
  422         u_int32_t       max_intr_time;
  423         u_int32_t       max_intr_gap;
  424         u_int32_t       max_ht_time;
  425         u_int32_t       aborted_interrupts;
  426         u_int32_t       spurious_interrupts;
  427         u_int32_t       aborted_requests;
  428         u_int32_t       retried_requests;
  429 
  430         u_int32_t       max_waiting_count;
  431         u_int32_t       max_submit_count;
  432         u_int32_t       max_complete_count;
  433 
  434         u_int32_t       min_waiting_time;
  435         u_int32_t       min_submit_time;
  436         u_int32_t       min_complete_time;
  437 
  438         u_int32_t       max_waiting_time;
  439         u_int32_t       max_submit_time;
  440         u_int32_t       max_complete_time;
  441 
  442         u_int32_t       command_collisions;
  443         u_int32_t       command_too_busy;
  444         u_int32_t       max_eata_tries;
  445         u_int32_t       min_eata_tries;
  446 
  447         u_int32_t       read_by_size_count[10];
  448         u_int32_t       write_by_size_count[10];
  449         u_int32_t       read_by_size_min_time[10];
  450         u_int32_t       read_by_size_max_time[10];
  451         struct timeval  read_by_size_total_time[10];
  452         u_int32_t       write_by_size_min_time[10];
  453         u_int32_t       write_by_size_max_time[10];
  454         struct timeval  write_by_size_total_time[10];
  455 
  456 #define SIZE_512        0
  457 #define SIZE_1K         1
  458 #define SIZE_2K         2
  459 #define SIZE_4K         3
  460 #define SIZE_8K         4
  461 #define SIZE_16K        5
  462 #define SIZE_32K        6
  463 #define SIZE_64K        7
  464 #define SIZE_BIGGER     8
  465 #define SIZE_OTHER      9
  466 
  467         struct timeval  intr_started;
  468 } dpt_perf_t;
  469 #endif
  470 
  471 #endif  /* __SYS_INFO_H */
  472 

Cache object: f4cab2593b43d95e2afc83d1bc55e791


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.