Resource
u_int Resource;
ACPI_RESOURCE *Resource,
Resource, Aml, AcpiRsConvertGeneralFlags);
if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE)
Resource, Aml, AcpiRsConvertMemFlags);
else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE)
Resource, Aml, AcpiRsConvertIoFlags);
Resource->Data.Address.Info.TypeSpecific =
ACPI_RESOURCE *Resource)
Resource, Aml, AcpiRsConvertGeneralFlags);
if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE)
Resource, Aml, AcpiRsConvertMemFlags);
else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE)
Resource, Aml, AcpiRsConvertIoFlags);
Resource->Data.Address.Info.TypeSpecific;
ACPI_RESOURCE *Resource,
ResourceEnd = ACPI_ADD_PTR (ACPI_RESOURCE, Resource, ResourceListSize);
while (Resource < ResourceEnd)
if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
if (!Resource->Length)
TotalSize = AcpiGbl_AmlResourceSizes [Resource->Type];
switch (Resource->Type)
if (Resource->Data.Irq.DescriptorLength == 2)
if (Resource->Data.Irq.DescriptorLength == 0)
if (Resource->Data.Vendor.ByteLength > 7)
(TotalSize + Resource->Data.Vendor.ByteLength);
&Resource->Data.Address16.ResourceSource));
&Resource->Data.Address32.ResourceSource));
&Resource->Data.Address64.ResourceSource));
((Resource->Data.ExtendedIrq.InterruptCount - 1) * 4) +
&Resource->Data.ExtendedIrq.ResourceSource));
(Resource->Data.Gpio.PinTableLength * 2) +
Resource->Data.Gpio.ResourceSource.StringLength +
Resource->Data.Gpio.VendorLength);
(Resource->Data.PinFunction.PinTableLength * 2) +
Resource->Data.PinFunction.ResourceSource.StringLength +
Resource->Data.PinFunction.VendorLength);
Resource->Data.ClockInput.ResourceSource.StringLength);
Resource->Data.CommonSerialBus.Type];
Resource->Data.I2cSerialBus.ResourceSource.StringLength +
Resource->Data.I2cSerialBus.VendorLength);
(Resource->Data.PinConfig.PinTableLength * 2) +
Resource->Data.PinConfig.ResourceSource.StringLength +
Resource->Data.PinConfig.VendorLength);
(Resource->Data.PinGroup.PinTableLength * 2) +
Resource->Data.PinGroup.ResourceLabel.StringLength +
Resource->Data.PinGroup.VendorLength);
Resource->Data.PinGroupFunction.ResourceSource.StringLength +
Resource->Data.PinGroupFunction.ResourceSourceLabel.StringLength +
Resource->Data.PinGroupFunction.VendorLength);
Resource->Data.PinGroupConfig.ResourceSource.StringLength +
Resource->Data.PinGroupConfig.ResourceSourceLabel.StringLength +
Resource->Data.PinGroupConfig.VendorLength);
Resource = ACPI_ADD_PTR (ACPI_RESOURCE, Resource, Resource->Length);
void *Resource;
Resource = ACPI_ALLOCATE_ZEROED (ListSizeNeeded);
CurrentResourcePtr = Resource;
if (!Resource)
ACPI_FREE (Resource);
*ResourcePtr = Resource;
void *Resource;
Resource = OutputBuffer->Pointer;
AcpiRsConvertAmlToResources, &Resource);
ACPI_RESOURCE *Resource;
Resource = *ResourcePtr;
if (ACPI_IS_MISALIGNED (Resource))
"Misaligned resource pointer %p", Resource));
Resource, AmlResource, ConversionTable);
if (!Resource->Length)
Resource->Length));
*ResourcePtr = ACPI_NEXT_RESOURCE (Resource);
ACPI_RESOURCE *Resource,
if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
Resource->Type));
if (!Resource->Length)
if (Resource->Type == ACPI_RESOURCE_TYPE_SERIAL_BUS)
if (Resource->Data.CommonSerialBus.Type >
Resource->Data.CommonSerialBus.Type];
ConversionTable = AcpiGbl_SetResourceDispatch[Resource->Type];
Resource->Type));
Status = AcpiRsConvertResourceToAml (Resource,
Resource->Type));
if (Resource->Type == ACPI_RESOURCE_TYPE_END_TAG)
Resource = ACPI_NEXT_RESOURCE (Resource);
ACPI_RESOURCE *Resource,
if (((ACPI_SIZE) Resource) & 0x3)
Resource, Resource->Type, Resource->Length));
Destination = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset);
memset (Resource, 0, INIT_RESOURCE_LENGTH (Info));
Resource->Type = INIT_RESOURCE_TYPE (Info);
Resource->Length = INIT_RESOURCE_LENGTH (Info);
Resource->Length = Resource->Length +
Resource->Length = Resource->Length +
Resource->Length = Resource->Length + ItemCount;
Resource->Length = Resource->Length + (Info->Value * ItemCount);
Resource->Length = Resource->Length + ItemCount;
Resource->Length = Resource->Length + ItemCount;
Resource->Length = Resource->Length + ItemCount;
Resource->Length = Resource->Length + Info->Value;
Target = (char *) ACPI_ADD_PTR (void, Resource,
(Resource->Length - ItemCount * 2));
Target = (char *) ACPI_ADD_PTR (void, Resource,
(Resource->Length - ItemCount));
Target = (char *) ACPI_ADD_PTR (void, Resource,
(Resource->Length - ItemCount));
Target = (char *) ACPI_ADD_PTR (void, Resource,
(Resource->Length - ItemCount));
Target = ACPI_ADD_PTR (char, Resource, Info->Value);
if (!AcpiRsGetAddressCommon (Resource, Aml))
Resource->Length +=
Target = ACPI_ADD_PTR (char, Resource,
Resource->Length +=
Resource->Length += (ItemCount - 1);
Target = ACPI_ADD_PTR (char, Resource, Info->Value);
Resource->Length += (ItemCount - 1);
Target = ACPI_ADD_PTR (char, Resource, Info->Value);
Resource->Length = (UINT32)
ACPI_ROUND_UP_TO_NATIVE_WORD (Resource->Length);
ACPI_RESOURCE *Resource,
Source = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset);
AcpiRsSetAddressCommon (Aml, Resource);
*ACPI_ADD_PTR (UINT8, Resource, Info->Value)));
Source, *ACPI_ADD_PTR (UINT8, Resource, Info->Value));
if (*ACPI_ADD_PTR (UINT8, Resource,
if (*ACPI_ADD_PTR (UINT8, Resource,
if (Resource->Data.StartDpf.PerformanceRobustness >= 3)
Resource->Data.ExtendedIrq.InterruptCount = Temp8;
if (Resource->Data.Dma.Transfer == 0x03)
ACPI_RESOURCE *Resource,
ACPI_RESOURCE *Resource,
if (!Resource || !Out)
switch (Resource->Type)
ACPI_RESOURCE_ADDRESS16, &Resource->Data);
ACPI_RESOURCE_ADDRESS32, &Resource->Data);
memcpy (Out, &Resource->Data, sizeof (ACPI_RESOURCE_ADDRESS64));
ACPI_RESOURCE *Resource,
if (Resource->Type != ACPI_RESOURCE_TYPE_VENDOR)
Vendor = &Resource->Data.VendorTyped;
Status = AcpiUtInitializeBuffer (Buffer, Resource->Length);
memcpy (Buffer->Pointer, Resource, Resource->Length);
Buffer->Length = Resource->Length;
ACPI_RESOURCE *Resource;
Resource = ACPI_CAST_PTR (ACPI_RESOURCE, Buffer->Pointer);
while (Resource < ResourceEnd)
if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
if (!Resource->Length)
Status = UserFunction (Resource, Context);
if (Resource->Type == ACPI_RESOURCE_TYPE_END_TAG)
Resource = ACPI_NEXT_RESOURCE (Resource);
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
ACPI_RESOURCE *Resource,
ACPI_RESOURCE *Resource,
ACPI_RESOURCE *Resource,
ACPI_RESOURCE *Resource);
ACPI_RESOURCE *Resource,
ACPI_RESOURCE *Resource,
ACPI_RESOURCE *Resource,
ACPI_RESOURCE *Resource);
UINT32 Resource;
AML_RESOURCE *Resource,
AML_RESOURCE *Resource,
Resource* resource = fResourceManager.Allocate(transport.String(),
Printer::Printer(const BDirectory* node, Resource* res)
Resource* fResource;
Printer(const BDirectory* node, Resource* res);
Resource* GetResource() { return fResource; }
Resource::Resource(const char* transport, const char* address, const char* connection)
Resource::~Resource() {
Resource::NeedsLocking() {
Resource::Equals(const char* transport, const char* address, const char* connection) {
Resource::Lock() {
Resource::Unlock() {
Resource*
Resource* r = fResources.ItemAt(i);
Resource*
Resource* r = Find(transport, address, connection);
r = new Resource(transport, address, connection);
ResourceManager::Free(Resource* r) {
class Resource : public Object {
Resource(const char* transport, const char* address, const char* connection);
~Resource();
BObjectList<Resource> fResources;
Resource* Find(const char* transport, const char* address, const char* connection);
Resource* Allocate(const char* transport, const char* address, const char* connection);
void Free(Resource* r);