/*
*
* 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