forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
176 lines
3.3 KiB
176 lines
3.3 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
/* |
|
* ARCS hardware/memory inventory/configuration and system ID definitions. |
|
*/ |
|
#ifndef _ASM_ARC_HINV_H |
|
#define _ASM_ARC_HINV_H |
|
|
|
#include <asm/sgidefs.h> |
|
#include <asm/fw/arc/types.h> |
|
|
|
/* configuration query defines */ |
|
typedef enum configclass { |
|
SystemClass, |
|
ProcessorClass, |
|
CacheClass, |
|
#ifndef _NT_PROM |
|
MemoryClass, |
|
AdapterClass, |
|
ControllerClass, |
|
PeripheralClass |
|
#else /* _NT_PROM */ |
|
AdapterClass, |
|
ControllerClass, |
|
PeripheralClass, |
|
MemoryClass |
|
#endif /* _NT_PROM */ |
|
} CONFIGCLASS; |
|
|
|
typedef enum configtype { |
|
ARC, |
|
CPU, |
|
FPU, |
|
PrimaryICache, |
|
PrimaryDCache, |
|
SecondaryICache, |
|
SecondaryDCache, |
|
SecondaryCache, |
|
#ifndef _NT_PROM |
|
Memory, |
|
#endif |
|
EISAAdapter, |
|
TCAdapter, |
|
SCSIAdapter, |
|
DTIAdapter, |
|
MultiFunctionAdapter, |
|
DiskController, |
|
TapeController, |
|
CDROMController, |
|
WORMController, |
|
SerialController, |
|
NetworkController, |
|
DisplayController, |
|
ParallelController, |
|
PointerController, |
|
KeyboardController, |
|
AudioController, |
|
OtherController, |
|
DiskPeripheral, |
|
FloppyDiskPeripheral, |
|
TapePeripheral, |
|
ModemPeripheral, |
|
MonitorPeripheral, |
|
PrinterPeripheral, |
|
PointerPeripheral, |
|
KeyboardPeripheral, |
|
TerminalPeripheral, |
|
LinePeripheral, |
|
NetworkPeripheral, |
|
#ifdef _NT_PROM |
|
Memory, |
|
#endif |
|
OtherPeripheral, |
|
|
|
/* new stuff for IP30 */ |
|
/* added without moving anything */ |
|
/* except ANONYMOUS. */ |
|
|
|
XTalkAdapter, |
|
PCIAdapter, |
|
GIOAdapter, |
|
TPUAdapter, |
|
|
|
Anonymous |
|
} CONFIGTYPE; |
|
|
|
typedef enum { |
|
Failed = 1, |
|
ReadOnly = 2, |
|
Removable = 4, |
|
ConsoleIn = 8, |
|
ConsoleOut = 16, |
|
Input = 32, |
|
Output = 64 |
|
} IDENTIFIERFLAG; |
|
|
|
#ifndef NULL /* for GetChild(NULL); */ |
|
#define NULL 0 |
|
#endif |
|
|
|
union key_u { |
|
struct { |
|
#ifdef _MIPSEB |
|
unsigned char c_bsize; /* block size in lines */ |
|
unsigned char c_lsize; /* line size in bytes/tag */ |
|
unsigned short c_size; /* cache size in 4K pages */ |
|
#else /* _MIPSEL */ |
|
unsigned short c_size; /* cache size in 4K pages */ |
|
unsigned char c_lsize; /* line size in bytes/tag */ |
|
unsigned char c_bsize; /* block size in lines */ |
|
#endif /* _MIPSEL */ |
|
} cache; |
|
ULONG FullKey; |
|
}; |
|
|
|
#if _MIPS_SIM == _MIPS_SIM_ABI64 |
|
#define SGI_ARCS_VERS 64 /* sgi 64-bit version */ |
|
#define SGI_ARCS_REV 0 /* rev .00 */ |
|
#else |
|
#define SGI_ARCS_VERS 1 /* first version */ |
|
#define SGI_ARCS_REV 10 /* rev .10, 3/04/92 */ |
|
#endif |
|
|
|
typedef struct { |
|
CONFIGCLASS Class; |
|
CONFIGTYPE Type; |
|
IDENTIFIERFLAG Flags; |
|
USHORT Version; |
|
USHORT Revision; |
|
ULONG Key; |
|
ULONG AffinityMask; |
|
ULONG ConfigurationDataSize; |
|
ULONG IdentifierLength; |
|
char *Identifier; |
|
} COMPONENT; |
|
|
|
/* internal structure that holds pathname parsing data */ |
|
struct cfgdata { |
|
char *name; /* full name */ |
|
int minlen; /* minimum length to match */ |
|
CONFIGTYPE type; /* type of token */ |
|
}; |
|
|
|
/* System ID */ |
|
typedef struct { |
|
CHAR VendorId[8]; |
|
CHAR ProductId[8]; |
|
} SYSTEMID; |
|
|
|
/* memory query functions */ |
|
typedef enum memorytype { |
|
ExceptionBlock, |
|
SPBPage, /* ARCS == SystemParameterBlock */ |
|
#ifndef _NT_PROM |
|
FreeContiguous, |
|
FreeMemory, |
|
BadMemory, |
|
LoadedProgram, |
|
FirmwareTemporary, |
|
FirmwarePermanent |
|
#else /* _NT_PROM */ |
|
FreeMemory, |
|
BadMemory, |
|
LoadedProgram, |
|
FirmwareTemporary, |
|
FirmwarePermanent, |
|
FreeContiguous |
|
#endif /* _NT_PROM */ |
|
} MEMORYTYPE; |
|
|
|
typedef struct { |
|
MEMORYTYPE Type; |
|
LONG BasePage; |
|
LONG PageCount; |
|
} MEMORYDESCRIPTOR; |
|
|
|
#endif /* _ASM_ARC_HINV_H */
|
|
|