home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-mips / arc / hinv.h next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  3.2 KB  |  175 lines

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