summaryrefslogblamecommitdiffstats
path: root/private/ntos/boot/veneer/vrtree.h
blob: 42015fa9d08f14ec09456de6be3ecca36136f07c (plain) (tree)
























































































































































                                                                                                         

/*
 *
 * Copyright (c) 1995,1996 FirePower Systems, Inc.
 * Copyright (c) 1994 FirmWorks, Mountain View CA USA. All rights reserved.
 *
 * $RCSfile: vrtree.h $
 * $Revision: 1.3 $
 * $Date: 1996/06/15 23:21:16 $
 * $Locker:  $
 *
 */

#ifndef VRTREE_H
#define VRTREE_H

#define ADD_MEM_RESOURCE(regp, node) 	{		\
			prl = grow_prl(node, 0);	\
			prd = &prl->PartialDescriptors[prl->Count];	\
			prd->Type = CmResourceTypeMemory;	\
			prd->u.Memory.Start.LowPart = regp->lo;	\
			prd->u.Memory.Start.HighPart = 0;	\
			prd->u.Port.Length = regp->size;	\
			prd->Flags = 0;	\
			prd->ShareDisposition = CmResourceShareDeviceExclusive;\
			prl->Count += 1;	\
		}
		
#define ADD_IO_RESOURCE(regp, node) 	{			\
			prl = grow_prl(node, 0);				\
			prd = &prl->PartialDescriptors[prl->Count];\
			prd->ShareDisposition = CmResourceShareDeviceExclusive;		\
													\
			prd->Type = CmResourceTypePort;			\
			prd->Flags = CM_RESOURCE_PORT_IO;		\
			prd->u.Port.Start.LowPart = regp->lo;	\
			prd->u.Port.Start.HighPart = 0;			\
			prd->u.Port.Length = regp->size;		\
			prl->Count += 1;						\
		}


#define ADD_INT_RESOURCE(level, node) 	{	\
			prl = grow_prl(node, 0);		\
			prd = &prl->PartialDescriptors[prl->Count];		\
			prd->u.Interrupt.Level = level;		\
			prd->Type = CmResourceTypeInterrupt;			\
			prd->ShareDisposition = CmResourceShareDeviceExclusive;\
			prd->Flags = CM_RESOURCE_INTERRUPT_LATCHED;		\
			prd->u.Interrupt.Vector =	\
				level_equals_vector ?	\
				    level : default_interrupt_level;		\
			(int)(prd->u.Interrupt.Affinity) = default_interrupt_affinity;\
			prl->Count += 1;								\
		}

#define ADD_DMA_RESOURCE(prop, node) 	{	\
			prl = grow_prl(node, 0);		\
			prd = &prl->PartialDescriptors[prl->Count];	\
			prd->Type = CmResourceTypeDma;	\
			prd->ShareDisposition = CmResourceShareDeviceExclusive;	\
			prd->u.Dma.Channel = prop;		\
			prl->Count += 1;				\
		}

#define ADD_DEVICE_SPECIFIC_RESOURCE(prop, node) 	{	\
			char *buf;\
			prl = grow_prl(node, prop);\
			prd = &prl->PartialDescriptors[prl->Count];\
			prd->Type = CmResourceTypeDeviceSpecific;\
			prd->ShareDisposition = CmResourceShareDeviceExclusive;\
			prd->Flags = 0;\
			prd->u.DeviceSpecificData.DataSize = prop;\
			prl->Count += 1;\
			buf = ((char *) prd + sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR));\
			(VOID) OFGetprop(ph, "arc-device-specific", buf, prop);\
		}


PCHAR TypeNames[]={
	"ArcSystem",
	"CentralProcessor",
	"FloatingPointProcessor",
	"PrimaryIcache",
	"PrimaryDcache",
	"SecondaryIcache",
	"SecondaryDcache",
	"SecondaryCache",
	"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",
	"OtherPeripheral",
	"LinePeripheral",
	"NetworkPeripheral",
	"SystemMemory",
	"MaximumType"
};

PCHAR ClassNames[]={
	"SystemClass",
	"ProcessorClass",
	"CacheClass",
	"AdapterClass",
	"ControllerClass",
	"PeripheralClass",
	"MemoryClass",
	"MaximumClass",
	"XX 8 XX",
	"XX 9 XX"
};

PCHAR ScsiNodeName[] ={
	"disk",
	"tape",
	"nada",
	"nada",
	"worm",
	"cdrom"
};


CONFIGURATION_TYPE ScsiNodeType[] ={
	DiskController,
	TapeController,
	MaximumType,
	MaximumType,
	WormController,
	CdromController
};
#endif	// VRTREE_H