home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / sysinfo-1.0 / part01 / info-ultrix.c < prev    next >
C/C++ Source or Header  |  1993-04-10  |  8KB  |  361 lines

  1. /*
  2.  * Copyright (c) 1992 Michael A. Cooper.
  3.  * This software may be freely distributed provided it is not sold for 
  4.  * profit and the author is credited appropriately.
  5.  */
  6.  
  7. #ifndef lint
  8. static char *RCSid = "$Header: /src/common/usc/bin/sysinfo/RCS/info-ultrix.c,v 1.8 1992/04/26 23:32:06 mcooper Exp $";
  9. #endif
  10.  
  11. /*
  12.  * $Log: info-ultrix.c,v $
  13.  * Revision 1.8  1992/04/26  23:32:06  mcooper
  14.  * Add Copyright notice
  15.  *
  16.  * Revision 1.7  1992/04/17  01:10:11  mcooper
  17.  * Moved DEVICE *() function declares to defs.h.
  18.  *
  19.  * Revision 1.6  1992/03/28  21:29:24  mcooper
  20.  * Move NetifNL to netif.c.
  21.  *
  22.  * Revision 1.5  1992/03/22  00:20:10  mcooper
  23.  * Major cleanup and re-org.
  24.  *
  25.  * Revision 1.4  1992/03/09  01:07:50  mcooper
  26.  * Add support for determining system model type.
  27.  *
  28.  * Revision 1.3  1992/03/08  23:08:18  mcooper
  29.  * Make things safe with #ifdef's.
  30.  *
  31.  * Revision 1.2  1992/03/08  04:56:52  mcooper
  32.  * Add network interface devices.
  33.  *
  34.  * Revision 1.1  1992/03/06  18:35:31  mcooper
  35.  * Initial revision
  36.  *
  37.  */
  38.  
  39. /*
  40.  * Ultrix related information
  41.  */
  42.  
  43. #include <stdio.h>
  44. #include "system.h"
  45. #include "defs.h"
  46.  
  47. #include <machine/cpuconf.h>
  48.  
  49. #if    defined(HAVE_PACKETFILTER)
  50. #include <sys/time.h>
  51. #include <net/pfilt.h>
  52. #endif    /* HAVE_PACKETFILTER */
  53.  
  54. #include <nlist.h>
  55. #include <sys/devio.h>
  56.  
  57. /*
  58.  * CPU Switch symbol
  59.  */
  60. struct nlist CpuSwNL[] = {
  61. #if    defined(COFF)
  62.     { "cpusw" },
  63. #else
  64.     { "_cpusw" },
  65. #endif    /* COFF */
  66.     { 0 },
  67. };
  68.  
  69. #if    defined(HAVE_UBA)
  70. /*
  71.  * UniBus name list
  72.  */
  73. struct nlist UniBusNL[] = {
  74. #if    defined(COFF)
  75.     { "ubdinit" },
  76. #else
  77.     { "_ubdinit" },
  78. #endif    /* COFF */
  79.     { 0 },
  80. };
  81. #endif    /* HAVE_UBA */
  82.  
  83. /*
  84.  * Device Data Table
  85.  *
  86.  * Compares are done by the length of the string appearing in
  87.  * the first columns.  Therefore, longer names must appear before
  88.  * any shorter names that are not unique.  e.g. "lebuffer" needs to
  89.  * be before "le".
  90.  */
  91. DEVDATATAB DevDataTab[] = {
  92.     /*
  93.      * Disk Drives
  94.      */
  95.     { "fd",        0,        NULL,    NULL,    ProbeDiskDrive },
  96.     { "ra",        0,        NULL,    NULL,    ProbeDiskDrive },
  97.     { "rz",        0,        NULL,    NULL,    ProbeDiskDrive },
  98.     /*
  99.      * Tape Drives
  100.      */
  101.     { "mu",        0,        NULL,    NULL,    ProbeTapeDrive },
  102.     { "stc",        0,        NULL,    NULL,    ProbeTapeDrive },
  103.     { "tms",        0,        NULL,    NULL,    ProbeTapeDrive },
  104.     { "ts",        0,        NULL,    NULL,    ProbeTapeDrive },
  105.     { "tu",        0,        NULL,    NULL,    ProbeTapeDrive },
  106.     { "tz",        0,        NULL,    NULL,    ProbeTapeDrive },
  107.     /*
  108.      * Network Interfaces
  109.      */
  110.     { "ln",        0,          "LANCE Ethernet",
  111.                       "10Mb/sec Ethernet",    ProbeNetif },
  112.     { "de",        0,          "DEC Ethernet",
  113.                       "10Mb/sec Ethernet",    ProbeNetif },
  114.     { "ni",        0,          "DEC Ethernet",        
  115.                     "10Mb/sec Ethernet",    ProbeNetif },
  116.     { "qe",        0,          "DEQNA/DELQA Ethernet",    
  117.                     "10Mb/sec Ethernet",    ProbeNetif },
  118.     { "ne",        0,          "Second Generation Ethernet",    
  119.                     "10Mb/sec Ethernet",    ProbeNetif },
  120.     { "xna",        0,          "DEBNI/DEMNA Ethernet",
  121.                     "10Mb/sec Ethernet",    ProbeNetif },
  122.     { "fza",        0,          "DEFZA FDDI",
  123.                       "100Mb/sec FDDI",    ProbeNetif },
  124.     /*
  125.      * I don't know anything about Ultrix frame buffers
  126.      */
  127.     { "cfb",        0,          NULL,
  128.       "Color Frame Buffer",                ProbeGeneric },
  129.     { "pm",        0,          NULL,
  130.       "Graphics Device",                ProbeGeneric },
  131.     { "px",        0,          NULL,
  132.       "Graphics Device",                ProbeGeneric },
  133.     { "ga",        0,          NULL,
  134.       "Graphics Device",                ProbeGeneric },
  135.     { "gq",        0,          NULL,
  136.       "Graphics Device",                ProbeGeneric },
  137.     { "fb",        0,          NULL,
  138.       "Graphics Device",                ProbeGeneric },
  139.     /*
  140.      * PrestoServe card (untested).
  141.      */
  142.     { "presto",        DT_GENERIC,    
  143.       "PrestoServe",    
  144.       "NFS accelerator card",            ProbeGeneric },
  145.     /*
  146.      * Serial line controllers
  147.      */
  148.     { "dc",        DT_GENERIC,    
  149.       NULL,    
  150.       "4-port serial line controller",        ProbeGeneric },
  151.     { "mdc",        DT_GENERIC,    
  152.       "DS5100",    
  153.       "4-port serial line controller",        ProbeGeneric },
  154.     { "scc",        DT_GENERIC,    
  155.       "SCC",    
  156.       "2-port serial line controller",        ProbeGeneric },
  157.     { "cxa",        DT_GENERIC,    
  158.       "CXA16",    
  159.       "16-line serial communications interface",    ProbeGeneric },
  160.     { "cxy",        DT_GENERIC,    
  161.       "CXY08",    
  162.       "8-line serial communications interface",    ProbeGeneric },
  163.     { "dhv",        DT_GENERIC,    
  164.       "DHV11",    
  165.       "8-line serial communications interface",    ProbeGeneric },
  166.     { "dmb",        DT_GENERIC,    
  167.       "DMB32",    
  168.       "8-line serial communications interface",    ProbeGeneric },
  169.     { "dhq",        DT_GENERIC,    
  170.       "DHQ11",    
  171.       "8-line serial communications interface",    ProbeGeneric },
  172.     { 0 },
  173. };
  174.  
  175. /*
  176.  * Models of DEC machines as defined in <machine/cpuconf.h>
  177.  */
  178. NAMETAB ModelTab[] = {
  179. #ifdef VAX_780
  180.     {  VAX_780,        "VAX-11/780" },
  181. #endif
  182. #ifdef VAX_750
  183.     {  VAX_750,        "VAX-11/750" },
  184. #endif
  185. #ifdef VAX_730
  186.     {  VAX_730,        "VAX-11/730" },
  187. #endif
  188. #ifdef VAX_8600
  189.     {  VAX_8600,    "VAX-8600" },
  190. #endif
  191. #ifdef VAX_8200
  192.     {  VAX_8200,    "VAX-8200" },
  193. #endif
  194. #ifdef VAX_8800
  195.     {  VAX_8800,    "VAX-8800" },
  196. #endif
  197. #ifdef MVAX_I
  198.     {  MVAX_I,        "MicroVAX-I" },
  199. #endif
  200. #ifdef MVAX_II
  201.     {  MVAX_II,        "MicroVAX-II" },
  202. #endif
  203. #ifdef V_VAX
  204.     {  V_VAX,        "Virtual VAX" },    /* This can't be real     */
  205. #endif
  206. #ifdef VAX_3600
  207.     {  VAX_3600,    "VAX-3600" },        /* Mayfair I        */
  208. #endif
  209. #ifdef VAX_6200
  210.     {  VAX_6200,    "VAX-6200" },        /* CVAX/Calypso        */
  211. #endif
  212. #ifdef VAX_3400
  213.     {  VAX_3400,    "VAX-3400" },        /* Mayfair II        */
  214. #endif
  215. #ifdef C_VAXSTAR
  216.     {  C_VAXSTAR,    "VAX-3100" },        /* PVAX            */
  217. #endif
  218. #ifdef VAX_60
  219.     {  VAX_60,        "VAX-60" },        /* Firefox        */
  220. #endif
  221. #ifdef VAX_3900
  222.     {  VAX_3900,    "VAX-3900" },        /* Mayfair III        */
  223. #endif
  224. #ifdef DS_3100
  225.     {  DS_3100,        "DECsystem-3100" },    /* PMAX            */
  226. #endif
  227. #ifdef VAX_8820
  228.     {  VAX_8820,    "VAX-8820" },        /* SID for Polarstar    */
  229. #endif
  230. #ifdef DS_5400
  231.     {  DS_5400,        "DECsystem-5400" },    /* MIPSfair        */
  232. #endif
  233. #ifdef DS_5800
  234.     {  DS_5800,        "DECsystem-5800" },    /* ISIS            */
  235. #endif
  236. #ifdef DS_5000
  237.     {  DS_5000,        "DECsystem-5000" },
  238. #endif
  239. #ifdef DS_CMAX
  240.     {  DS_CMAX,        "DECsystem-CMAX" },
  241. #endif
  242. #ifdef VAX_6400
  243.     {  VAX_6400,    "VAX-6400" },        /* RIGEL/Calypso    */
  244. #endif
  245. #ifdef VAXSTAR
  246.     {  VAXSTAR,        "VAXSTAR" },
  247. #endif
  248. #ifdef DS_5500
  249.     {  DS_5500,        "DECsystem-5500" },    /* MIPSFAIR-2        */
  250. #endif
  251. #ifdef DS_5100
  252.     {  DS_5100,        "DECsystem-5100" },    /* MIPSMATE        */
  253. #endif
  254. #ifdef VAX_9000
  255.     {  VAX_9000,    "VAX-9000" },        /* VAX9000        */
  256. #endif
  257. #ifdef DS_5000_100
  258.     {  DS_5000_100,    "DECsystem-5000/100" },    /* 3MIN            */
  259. #endif
  260. #ifdef DS_5000_300
  261.     {  DS_5000_300,    "DECsystem-5000/300" },    /* 3MAX+        */
  262. #endif
  263. #ifdef DS_MAXINE
  264.     {  DS_MAXINE,    "DECsystem-MAXINE" },    /* MAXine        */
  265. #endif
  266.     {  0 },
  267. };
  268.  
  269. /*
  270.  * Tape info as defined in <sys/devio.h>.
  271.  */
  272. NAMETAB TapeInfo[] = {
  273. #ifdef DEV_800BPI
  274.     {  DEV_800BPI,    "800 bpi density" },
  275. #endif
  276. #ifdef DEV_1600BPI
  277.     {  DEV_1600BPI,    "1600 bpi density" },
  278. #endif
  279. #ifdef DEV_6250BPI
  280.     {  DEV_6250BPI,    "6250 bpi density" },
  281. #endif
  282. #ifdef DEV_6666BPI
  283.     {  DEV_6666BPI,    "6666 bpi density" },
  284. #endif
  285. #ifdef DEV_10240BPI
  286.     {  DEV_10240BPI,    "10240 bpi density" },
  287. #endif
  288. #ifdef DEV_38000BPI
  289.     {  DEV_38000BPI,    "38000 bpi density" },
  290. #endif
  291. #ifdef DEV_LOADER
  292.     {  DEV_LOADER,    "media loader present" },
  293. #endif
  294. #ifdef DEV_38000_CP
  295.     {  DEV_38000_CP,    "38000 bpi compacted density" },
  296. #endif
  297. #ifdef DEV_76000BPI
  298.     {  DEV_76000BPI,    "76000 bpi density" },
  299. #endif
  300. #ifdef DEV_76000_CP
  301.     {  DEV_76000_CP,    "76000 bpi compacted density" },
  302. #endif
  303. #ifdef DEV_8000_BPI
  304.     {  DEV_8000_BPI,    "QIC-24 9 track" },
  305. #endif
  306. #ifdef DEV_10000_BPI
  307.     {  DEV_10000_BPI,    "QIC-120 15trk and QIC-150 18trk" },
  308. #endif
  309. #ifdef DEV_16000_BPI
  310.     {  DEV_16000_BPI,    "QIC-320/525 26 track" },
  311. #endif
  312. #ifdef DEV_61000_BPI
  313.     {  DEV_61000_BPI,    "4mm tape cartridge" },
  314. #endif
  315. #ifdef DEV_54000_BPI
  316.     {  DEV_54000_BPI,    "8mm tape cartridge" },
  317. #endif
  318.     { 0 },
  319. };
  320.  
  321. /*
  322.  * Category types as defined in <sys/devio.h>
  323.  */
  324. NAMETAB Categorys[] = {
  325. #ifdef DEV_TAPE
  326.     {  DEV_TAPE,    "Tape drive" },
  327. #endif
  328. #ifdef DEV_DISK
  329.     {  DEV_DISK,    "Disk drive" },
  330. #endif
  331. #ifdef DEV_TERMINAL
  332.     {  DEV_TERMINAL,    "Terminal" },
  333. #endif
  334. #ifdef DEV_PRINTER
  335.     {  DEV_PRINTER,    "Printer" },
  336. #endif
  337. #ifdef DEV_SPECIAL
  338.     {  DEV_SPECIAL,    "Special" },
  339. #endif
  340.     {  0 },
  341. };
  342.  
  343. /*
  344.  * Network types table as defined in <net/pfilt.h>
  345.  */
  346. NAMETAB NetTypes[] = {
  347. #ifdef ENDT_3MB
  348.     {  ENDT_3MB,    "3Mb/sec Ethernet" },
  349. #endif
  350. #ifdef ENDT_BS3MB
  351.     {  ENDT_BS3MB,    "Byte Swapped 3Mb/sec Ethernet" },
  352. #endif
  353. #ifdef ENDT_10MB
  354.     {  ENDT_10MB,    "10Mb/sec Ethernet" },
  355. #endif
  356. #ifdef ENDT_FDDI
  357.     {  ENDT_FDDI,    "100Mb/sec FDDI" },
  358. #endif
  359.     {  0 },
  360. };
  361.