sys_info.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:11k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* BSDI sys_info.h,v 1.6 1998/06/03 19:14:59 karels Exp */
  2. /*
  3.  * Copyright (c) 1996-1999 Distributed Processing Technology Corporation
  4.  * All rights reserved.
  5.  *
  6.  * Redistribution and use in source form, with or without modification, are
  7.  * permitted provided that redistributions of source code must retain the
  8.  * above copyright notice, this list of conditions and the following disclaimer.
  9.  *
  10.  * This software is provided `as is' by Distributed Processing Technology and
  11.  * any express or implied warranties, including, but not limited to, the
  12.  * implied warranties of merchantability and fitness for a particular purpose,
  13.  * are disclaimed. In no event shall Distributed Processing Technology be
  14.  * liable for any direct, indirect, incidental, special, exemplary or
  15.  * consequential damages (including, but not limited to, procurement of
  16.  * substitute goods or services; loss of use, data, or profits; or business
  17.  * interruptions) however caused and on any theory of liability, whether in
  18.  * contract, strict liability, or tort (including negligence or otherwise)
  19.  * arising in any way out of the use of this driver software, even if advised
  20.  * of the possibility of such damage.
  21.  *
  22.  */
  23. #ifndef         __SYS_INFO_H
  24. #define         __SYS_INFO_H
  25. /*File - SYS_INFO.H
  26.  ****************************************************************************
  27.  *
  28.  *Description:
  29.  *
  30.  *      This file contains structure definitions for the OS dependent
  31.  *layer system information buffers.
  32.  *
  33.  *Copyright Distributed Processing Technology, Corp.
  34.  *        140 Candace Dr.
  35.  *        Maitland, Fl. 32751   USA
  36.  *        Phone: (407) 830-5522  Fax: (407) 260-5366
  37.  *        All Rights Reserved
  38.  *
  39.  *Author:       Don Kemper
  40.  *Date:         5/10/94
  41.  *
  42.  *Editors:
  43.  *
  44.  *Remarks:
  45.  *
  46.  *
  47.  *****************************************************************************/
  48. /*Include Files ------------------------------------------------------------- */
  49. #include        "osd_util.h"
  50. #ifndef NO_PACK
  51. #if defined (_DPT_AIX)
  52. #pragma options align=packed
  53. #else
  54. #pragma pack(1)
  55. #endif  /* aix */
  56. #endif  // no unpack
  57. /*struct - driveParam_S - start
  58.  *===========================================================================
  59.  *
  60.  *Description:
  61.  *
  62.  *      This structure defines the drive parameters seen during
  63.  *booting.
  64.  *
  65.  *---------------------------------------------------------------------------*/
  66. #ifdef  __cplusplus
  67.    struct driveParam_S {
  68. #else
  69.    typedef struct  {
  70. #endif
  71.    uSHORT       cylinders;      /* Upto 1024 */
  72.    uCHAR        heads;          /* Upto 255 */
  73.    uCHAR        sectors;        /* Upto 63 */
  74. #ifdef  __cplusplus
  75. //---------- Portability Additions ----------- in sp_sinfo.cpp
  76. #ifdef DPT_PORTABLE
  77. uSHORT netInsert(dptBuffer_S *buffer);
  78. uSHORT netExtract(dptBuffer_S *buffer);
  79. #endif // DPT PORTABLE
  80. //--------------------------------------------
  81.    };
  82. #else
  83.    } driveParam_S;
  84. #endif
  85. /*driveParam_S - end */
  86. /*struct - sysInfo_S - start
  87.  *===========================================================================
  88.  *
  89.  *Description:
  90.  *
  91.  *      This structure defines the command system information that
  92.  *should be returned by every OS dependent layer.
  93.  *
  94.  *---------------------------------------------------------------------------*/
  95. /*flags - bit definitions */
  96. #define SI_CMOS_Valid           0x0001
  97. #define SI_NumDrivesValid       0x0002
  98. #define SI_ProcessorValid       0x0004
  99. #define SI_MemorySizeValid      0x0008
  100. #define SI_DriveParamsValid     0x0010
  101. #define SI_SmartROMverValid     0x0020
  102. #define SI_OSversionValid       0x0040
  103. #define SI_OSspecificValid      0x0080  /* 1 if OS structure returned */
  104. #define SI_BusTypeValid         0x0100
  105. #define SI_ALL_VALID            0x0FFF  /* All Std SysInfo is valid */
  106. #define SI_NO_SmartROM          0x8000
  107. /*busType - definitions */
  108. #define SI_ISA_BUS      0x00
  109. #define SI_MCA_BUS      0x01
  110. #define SI_EISA_BUS     0x02
  111. #define SI_PCI_BUS      0x04
  112. #ifdef  __cplusplus
  113.    struct sysInfo_S {
  114. #else
  115.    typedef struct  {
  116. #endif
  117.    uCHAR        drive0CMOS;             /* CMOS Drive 0 Type */
  118.    uCHAR        drive1CMOS;             /* CMOS Drive 1 Type */
  119.    uCHAR        numDrives;              /* 0040:0075 contents */
  120.    uCHAR        processorFamily;        /* Same as DPTSIG's definition */
  121.    uCHAR        processorType;          /* Same as DPTSIG's definition */
  122.    uCHAR        smartROMMajorVersion;
  123.    uCHAR        smartROMMinorVersion;   /* SmartROM version */
  124.    uCHAR        smartROMRevision;
  125.    uSHORT       flags;                  /* See bit definitions above */
  126.    uSHORT       conventionalMemSize;    /* in KB */
  127.    uLONG        extendedMemSize;        /* in KB */
  128.    uLONG        osType;                 /* Same as DPTSIG's definition */
  129.    uCHAR        osMajorVersion;
  130.    uCHAR        osMinorVersion;         /* The OS version */
  131.    uCHAR        osRevision;
  132. #ifdef _SINIX_ADDON
  133.    uCHAR        busType;                /* See defininitions above */
  134.    uSHORT       osSubRevision;
  135.    uCHAR        pad[2];                 /* For alignment */
  136. #else
  137.    uCHAR        osSubRevision;
  138.    uCHAR        busType;                /* See defininitions above */
  139.    uCHAR        pad[3];                 /* For alignment */
  140. #endif
  141.    driveParam_S drives[16];             /* SmartROM Logical Drives */
  142. #ifdef  __cplusplus
  143. //---------- Portability Additions ----------- in sp_sinfo.cpp
  144. #ifdef DPT_PORTABLE
  145. uSHORT netInsert(dptBuffer_S *buffer);
  146. uSHORT netExtract(dptBuffer_S *buffer);
  147. #endif // DPT PORTABLE
  148. //--------------------------------------------
  149.    };
  150. #else
  151.    } sysInfo_S;
  152. #endif
  153. /*sysInfo_S - end */
  154. /*struct - DOS_Info_S - start
  155.  *===========================================================================
  156.  *
  157.  *Description:
  158.  *
  159.  *      This structure defines the system information specific to a
  160.  *DOS workstation.
  161.  *
  162.  *---------------------------------------------------------------------------*/
  163. /*flags - bit definitions */
  164. #define DI_DOS_HIGH             0x01    /* DOS is loaded high */
  165. #define DI_DPMI_VALID           0x02    /* DPMI version is valid */
  166. #ifdef  __cplusplus
  167.    struct DOS_Info_S {
  168. #else
  169.    typedef struct {
  170. #endif
  171.    uCHAR        flags;          /* See bit definitions above */
  172.    uSHORT       driverLocation; /* SmartROM BIOS address */
  173.    uSHORT       DOS_version;
  174.    uSHORT       DPMI_version;
  175. #ifdef  __cplusplus
  176. //---------- Portability Additions ----------- in sp_sinfo.cpp
  177. #ifdef DPT_PORTABLE
  178. uSHORT netInsert(dptBuffer_S *buffer);
  179. uSHORT netExtract(dptBuffer_S *buffer);
  180. #endif // DPT PORTABLE
  181. //--------------------------------------------
  182.    };
  183. #else
  184.    } DOS_Info_S;
  185. #endif
  186. /*DOS_Info_S - end */
  187. /*struct - Netware_Info_S - start
  188.  *===========================================================================
  189.  *
  190.  *Description:
  191.  *
  192.  *      This structure defines the system information specific to a
  193.  *Netware machine.
  194.  *
  195.  *---------------------------------------------------------------------------*/
  196. #ifdef  __cplusplus
  197.    struct Netware_Info_S {
  198. #else
  199.    typedef struct {
  200. #endif
  201.    uCHAR        driverName[13];         /* ie PM12NW31.DSK */
  202.    uCHAR        serverName[48];
  203.    uCHAR        netwareVersion;         /* The Netware OS version */
  204.    uCHAR        netwareSubVersion;
  205.    uCHAR        netwareRevision;
  206.    uSHORT       maxConnections;         /* Probably  250 or 1000 */
  207.    uSHORT       connectionsInUse;
  208.    uSHORT       maxVolumes;
  209.    uCHAR        unused;
  210.    uCHAR        SFTlevel;
  211.    uCHAR        TTSlevel;
  212.    uCHAR        clibMajorVersion;       /* The CLIB.NLM version */
  213.    uCHAR        clibMinorVersion;
  214.    uCHAR        clibRevision;
  215. #ifdef  __cplusplus
  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. #else
  224.    } Netware_Info_S;
  225. #endif
  226. /*Netware_Info_S - end */
  227. /*struct - OS2_Info_S - start
  228.  *===========================================================================
  229.  *
  230.  *Description:
  231.  *
  232.  *      This structure defines the system information specific to an
  233.  *OS/2 machine.
  234.  *
  235.  *---------------------------------------------------------------------------*/
  236. #ifdef  __cplusplus
  237.    struct OS2_Info_S {
  238. #else
  239.    typedef struct {
  240. #endif
  241.    uCHAR        something;
  242. #ifdef  __cplusplus
  243. //---------- Portability Additions ----------- in sp_sinfo.cpp
  244. #ifdef DPT_PORTABLE
  245. uSHORT netInsert(dptBuffer_S *buffer);
  246. uSHORT netExtract(dptBuffer_S *buffer);
  247. #endif // DPT PORTABLE
  248. //--------------------------------------------
  249.    };
  250. #else
  251.    } OS2_Info_S;
  252. #endif
  253. /*OS2_Info_S - end */
  254. /*struct - WinNT_Info_S - start
  255.  *===========================================================================
  256.  *
  257.  *Description:
  258.  *
  259.  *      This structure defines the system information specific to a
  260.  *Windows NT machine.
  261.  *
  262.  *---------------------------------------------------------------------------*/
  263. #ifdef  __cplusplus
  264.    struct WinNT_Info_S {
  265. #else
  266.    typedef struct {
  267. #endif
  268.    uCHAR        something;
  269. #ifdef  __cplusplus
  270. //---------- Portability Additions ----------- in sp_sinfo.cpp
  271. #ifdef DPT_PORTABLE
  272. uSHORT netInsert(dptBuffer_S *buffer);
  273. uSHORT netExtract(dptBuffer_S *buffer);
  274. #endif // DPT PORTABLE
  275. //--------------------------------------------
  276.    };
  277. #else
  278.    } WinNT_Info_S;
  279. #endif
  280. /*WinNT_Info_S - end */
  281. /*struct - SCO_Info_S - start
  282.  *===========================================================================
  283.  *
  284.  *Description:
  285.  *
  286.  *      This structure defines the system information specific to an
  287.  *SCO UNIX machine.
  288.  *
  289.  *---------------------------------------------------------------------------*/
  290. #ifdef  __cplusplus
  291.    struct SCO_Info_S {
  292. #else
  293.    typedef struct {
  294. #endif
  295.    uCHAR        something;
  296. #ifdef  __cplusplus
  297. //---------- Portability Additions ----------- in sp_sinfo.cpp
  298. #ifdef DPT_PORTABLE
  299. uSHORT netInsert(dptBuffer_S *buffer);
  300. uSHORT netExtract(dptBuffer_S *buffer);
  301. #endif // DPT PORTABLE
  302. //--------------------------------------------
  303.    };
  304. #else
  305.    } SCO_Info_S;
  306. #endif
  307. /*SCO_Info_S - end */
  308. /*struct - USL_Info_S - start
  309.  *===========================================================================
  310.  *
  311.  *Description:
  312.  *
  313.  *      This structure defines the system information specific to a
  314.  *USL UNIX machine.
  315.  *
  316.  *---------------------------------------------------------------------------*/
  317. #ifdef  __cplusplus
  318.    struct USL_Info_S {
  319. #else
  320.    typedef struct {
  321. #endif
  322.    uCHAR        something;
  323. #ifdef  __cplusplus
  324. //---------- Portability Additions ----------- in sp_sinfo.cpp
  325. #ifdef DPT_PORTABLE
  326. uSHORT netInsert(dptBuffer_S *buffer);
  327. uSHORT netExtract(dptBuffer_S *buffer);
  328. #endif // DPT PORTABLE
  329. //--------------------------------------------
  330.    };
  331. #else
  332.    } USL_Info_S;
  333. #endif
  334. /*USL_Info_S - end */
  335.   /* Restore default structure packing */
  336. #ifndef NO_UNPACK
  337. #if defined (_DPT_AIX)
  338. #pragma options align=reset
  339. #elif defined (UNPACK_FOUR)
  340. #pragma pack(4)
  341. #else
  342. #pragma pack()
  343. #endif  /* aix */
  344. #endif  // no unpack
  345. #endif  // __SYS_INFO_H