Initial support for multiple object attachments and related interfaces

date	2001.11.08.21.04.00;	author rmoore1;	state Exp;
This commit is contained in:
aystarik 2005-06-29 19:09:46 +00:00
parent bb8355888f
commit c4f48ba66c
2 changed files with 23 additions and 28 deletions

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: utdelete - object deletion and reference count utilities
* $Revision: 1.82 $
* $Revision: 1.83 $
*
******************************************************************************/
@ -145,6 +145,7 @@ AcpiUtDeleteInternalObj (
{
void *ObjPointer = NULL;
ACPI_OPERAND_OBJECT *HandlerDesc;
ACPI_OPERAND_OBJECT *SecondDesc;
FUNCTION_TRACE_PTR ("UtDeleteInternalObj", Object);
@ -234,7 +235,6 @@ AcpiUtDeleteInternalObj (
AcpiOsDeleteSemaphore (Object->Method.Semaphore);
Object->Method.Semaphore = NULL;
}
break;
@ -242,7 +242,8 @@ AcpiUtDeleteInternalObj (
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "***** Region %p\n", Object));
if (Object->Region.Extra)
SecondDesc = AcpiNsGetSecondaryObject (Object);
if (SecondDesc)
{
/*
* Free the RegionContext if and only if the handler is one of the
@ -253,12 +254,12 @@ AcpiUtDeleteInternalObj (
if ((HandlerDesc) &&
(HandlerDesc->AddrHandler.Hflags == ADDR_HANDLER_DEFAULT_INSTALLED))
{
ObjPointer = Object->Region.Extra->Extra.RegionContext;
ObjPointer = SecondDesc->Extra.RegionContext;
}
/* Now we can free the Extra object */
AcpiUtDeleteObjectDesc (Object->Region.Extra);
AcpiUtDeleteObjectDesc (SecondDesc);
}
break;
@ -267,12 +268,14 @@ AcpiUtDeleteInternalObj (
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "***** Buffer Field %p\n", Object));
if (Object->BufferField.Extra)
SecondDesc = AcpiNsGetSecondaryObject (Object);
if (SecondDesc)
{
AcpiUtDeleteObjectDesc (Object->BufferField.Extra);
AcpiUtDeleteObjectDesc (SecondDesc);
}
break;
default:
break;
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utglobal - Global variables for the ACPI subsystem
* $Revision: 1.132 $
* $Revision: 1.135 $
*
*****************************************************************************/
@ -324,7 +324,8 @@ const UINT8 AcpiGbl_NsProperties[] =
NSP_NEWSCOPE, /* 32 Scope */
NSP_LOCAL, /* 33 DefAny */
NSP_NORMAL, /* 34 Extra */
NSP_NORMAL /* 35 Invalid */
NSP_NORMAL, /* 35 Data */
NSP_NORMAL /* 36 Invalid */
};
@ -448,7 +449,7 @@ static const NATIVE_CHAR *AcpiGbl_NsTypeNames[] = /* printable names of AC
/* 11 */ "Power",
/* 12 */ "Processor",
/* 13 */ "Thermal",
/* 14 */ "BuffField",
/* 14 */ "BufferField",
/* 15 */ "DdbHandle",
/* 16 */ "DebugObject",
/* 17 */ "RegionField",
@ -458,8 +459,8 @@ static const NATIVE_CHAR *AcpiGbl_NsTypeNames[] = /* printable names of AC
/* 21 */ "Alias",
/* 22 */ "Notify",
/* 23 */ "AddrHandler",
/* 24 */ "ResrcDesc",
/* 25 */ "ResrcField",
/* 24 */ "ResourceDesc",
/* 25 */ "ResourceFld",
/* 26 */ "RegionFldDfn",
/* 27 */ "BankFldDfn",
/* 28 */ "IndexFldDfn",
@ -469,7 +470,8 @@ static const NATIVE_CHAR *AcpiGbl_NsTypeNames[] = /* printable names of AC
/* 32 */ "Scope",
/* 33 */ "DefAny",
/* 34 */ "Extra",
/* 35 */ "Invalid"
/* 35 */ "Data",
/* 36 */ "Invalid"
};
@ -501,7 +503,7 @@ AcpiUtGetTypeName (
/* Region type decoding */
const NATIVE_CHAR *AcpiGbl_RegionTypes[NUM_REGION_TYPES] =
const NATIVE_CHAR *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
{
"SystemMemory",
"SystemIO",
@ -530,12 +532,12 @@ AcpiUtGetRegionName (
UINT8 SpaceId)
{
if (SpaceId >= USER_REGION_BEGIN)
if (SpaceId >= ACPI_USER_REGION_BEGIN)
{
return ("UserDefinedRegion");
}
else if (SpaceId >= NUM_REGION_TYPES)
else if (SpaceId >= ACPI_NUM_PREDEFINED_REGIONS)
{
return ("InvalidSpaceID");
}
@ -573,9 +575,8 @@ const NATIVE_CHAR *AcpiGbl_AccessTypes[NUM_ACCESS_TYPES] =
"ByteAcc",
"WordAcc",
"DWordAcc",
"BlockAcc",
"SMBSendRecvAcc",
"SMBQuickAcc"
"QWordAcc",
"BufferAcc",
};
@ -739,15 +740,6 @@ AcpiUtInitGlobals (
AcpiGbl_AcpiTables[i].Count = 0;
}
/* Address Space handler array */
for (i = 0; i < ACPI_NUM_ADDRESS_SPACES; i++)
{
AcpiGbl_AddressSpaces[i].Handler = NULL;
AcpiGbl_AddressSpaces[i].Context = NULL;
}
/* Mutex locked flags */
for (i = 0; i < NUM_MTX; i++)