cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hinv.h (3335B)


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