linux/include/asm-mips/fw/arc/hinv.h
<<
>>
Prefs
   1/*
   2 * ARCS hardware/memory inventory/configuration and system ID definitions.
   3 */
   4#ifndef _ASM_ARC_HINV_H
   5#define _ASM_ARC_HINV_H
   6
   7#include <asm/sgidefs.h>
   8#include <asm/fw/arc/types.h>
   9
  10/* configuration query defines */
  11typedef enum configclass {
  12        SystemClass,
  13        ProcessorClass,
  14        CacheClass,
  15#ifndef _NT_PROM
  16        MemoryClass,
  17        AdapterClass,
  18        ControllerClass,
  19        PeripheralClass
  20#else   /* _NT_PROM */
  21        AdapterClass,
  22        ControllerClass,
  23        PeripheralClass,
  24        MemoryClass
  25#endif  /* _NT_PROM */
  26} CONFIGCLASS;
  27
  28typedef enum configtype {
  29        ARC,
  30        CPU,
  31        FPU,
  32        PrimaryICache,
  33        PrimaryDCache,
  34        SecondaryICache,
  35        SecondaryDCache,
  36        SecondaryCache,
  37#ifndef _NT_PROM
  38        Memory,
  39#endif
  40        EISAAdapter,
  41        TCAdapter,
  42        SCSIAdapter,
  43        DTIAdapter,
  44        MultiFunctionAdapter,
  45        DiskController,
  46        TapeController,
  47        CDROMController,
  48        WORMController,
  49        SerialController,
  50        NetworkController,
  51        DisplayController,
  52        ParallelController,
  53        PointerController,
  54        KeyboardController,
  55        AudioController,
  56        OtherController,
  57        DiskPeripheral,
  58        FloppyDiskPeripheral,
  59        TapePeripheral,
  60        ModemPeripheral,
  61        MonitorPeripheral,
  62        PrinterPeripheral,
  63        PointerPeripheral,
  64        KeyboardPeripheral,
  65        TerminalPeripheral,
  66        LinePeripheral,
  67        NetworkPeripheral,
  68#ifdef  _NT_PROM
  69        Memory,
  70#endif
  71        OtherPeripheral,
  72
  73        /* new stuff for IP30 */
  74        /* added without moving anything */
  75        /* except ANONYMOUS. */
  76
  77        XTalkAdapter,
  78        PCIAdapter,
  79        GIOAdapter,
  80        TPUAdapter,
  81
  82        Anonymous
  83} CONFIGTYPE;
  84
  85typedef enum {
  86        Failed = 1,
  87        ReadOnly = 2,
  88        Removable = 4,
  89        ConsoleIn = 8,
  90        ConsoleOut = 16,
  91        Input = 32,
  92        Output = 64
  93} IDENTIFIERFLAG;
  94
  95#ifndef NULL                    /* for GetChild(NULL); */
  96#define NULL    0
  97#endif
  98
  99union key_u {
 100        struct {
 101#ifdef  _MIPSEB
 102                unsigned char  c_bsize;         /* block size in lines */
 103                unsigned char  c_lsize;         /* line size in bytes/tag */
 104                unsigned short c_size;          /* cache size in 4K pages */
 105#else   /* _MIPSEL */
 106                unsigned short c_size;          /* cache size in 4K pages */
 107                unsigned char  c_lsize;         /* line size in bytes/tag */
 108                unsigned char  c_bsize;         /* block size in lines */
 109#endif  /* _MIPSEL */
 110        } cache;
 111        ULONG FullKey;
 112};
 113
 114#if _MIPS_SIM == _MIPS_SIM_ABI64
 115#define SGI_ARCS_VERS   64                      /* sgi 64-bit version */
 116#define SGI_ARCS_REV    0                       /* rev .00 */
 117#else
 118#define SGI_ARCS_VERS   1                       /* first version */
 119#define SGI_ARCS_REV    10                      /* rev .10, 3/04/92 */
 120#endif
 121
 122typedef struct component {
 123        CONFIGCLASS     Class;
 124        CONFIGTYPE      Type;
 125        IDENTIFIERFLAG  Flags;
 126        USHORT          Version;
 127        USHORT          Revision;
 128        ULONG           Key;
 129        ULONG           AffinityMask;
 130        ULONG           ConfigurationDataSize;
 131        ULONG           IdentifierLength;
 132        char            *Identifier;
 133} COMPONENT;
 134
 135/* internal structure that holds pathname parsing data */
 136struct cfgdata {
 137        char *name;                     /* full name */
 138        int minlen;                     /* minimum length to match */
 139        CONFIGTYPE type;                /* type of token */
 140};
 141
 142/* System ID */
 143typedef struct systemid {
 144        CHAR VendorId[8];
 145        CHAR ProductId[8];
 146} SYSTEMID;
 147
 148/* memory query functions */
 149typedef enum memorytype {
 150        ExceptionBlock,
 151        SPBPage,                        /* ARCS == SystemParameterBlock */
 152#ifndef _NT_PROM
 153        FreeContiguous,
 154        FreeMemory,
 155        BadMemory,
 156        LoadedProgram,
 157        FirmwareTemporary,
 158        FirmwarePermanent
 159#else   /* _NT_PROM */
 160        FreeMemory,
 161        BadMemory,
 162        LoadedProgram,
 163        FirmwareTemporary,
 164        FirmwarePermanent,
 165        FreeContiguous
 166#endif  /* _NT_PROM */
 167} MEMORYTYPE;
 168
 169typedef struct memorydescriptor {
 170        MEMORYTYPE      Type;
 171        LONG            BasePage;
 172        LONG            PageCount;
 173} MEMORYDESCRIPTOR;
 174
 175#endif /* _ASM_ARC_HINV_H */
 176