175 lines
		
	
	
	
		
			3.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			175 lines
		
	
	
	
		
			3.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * ARCS hardware/memory inventory/configuration and system ID definitions.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#ifndef _ASM_ARC_HINV_H
							 | 
						||
| 
								 | 
							
								#define _ASM_ARC_HINV_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <asm/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 == _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 component {
							 | 
						||
| 
								 | 
							
									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 systemid {
							 | 
						||
| 
								 | 
							
									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 memorydescriptor {
							 | 
						||
| 
								 | 
							
									MEMORYTYPE	Type;
							 | 
						||
| 
								 | 
							
									LONG		BasePage;
							 | 
						||
| 
								 | 
							
									LONG		PageCount;
							 | 
						||
| 
								 | 
							
								} MEMORYDESCRIPTOR;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* _ASM_ARC_HINV_H */
							 |