* [PATCH 1/3] ACPICA: make ObjectCount to be UINT32
@ 2010-05-18 20:25 Alexey Starikovskiy
2010-05-18 20:25 ` [PATCH 2/3] ACPICA: Keep track of method changes to namespace Alexey Starikovskiy
2010-05-18 20:25 ` [PATCH 3/3] ACPICA: Add direct pointer to parent Alexey Starikovskiy
0 siblings, 2 replies; 3+ messages in thread
From: Alexey Starikovskiy @ 2010-05-18 20:25 UTC (permalink / raw)
To: Robert Moore, Len Brown; +Cc: Linux-acpi
SGI UV machine does not fit into UINT16 count
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
---
source/components/dispatcher/dsinit.c | 2 +-
source/components/namespace/nsinit.c | 2 +-
source/include/acstruct.h | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/source/components/dispatcher/dsinit.c b/source/components/dispatcher/dsinit.c
index 4525a0b..349c774 100644
--- a/source/components/dispatcher/dsinit.c
+++ b/source/components/dispatcher/dsinit.c
@@ -297,7 +297,7 @@ AcpiDsInitializeObjects (
}
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "\nTable [%4.4s](id %4.4X) - %hd Objects with %hd Devices %hd Methods %hd Regions\n",
+ "\nTable [%4.4s](id %4.4X) - %d Objects with %hd Devices %hd Methods %hd Regions\n",
Table->Signature, OwnerId, Info.ObjectCount,
Info.DeviceCount, Info.MethodCount, Info.OpRegionCount));
diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c
index 770235e..e59eb8e 100644
--- a/source/components/namespace/nsinit.c
+++ b/source/components/namespace/nsinit.c
@@ -194,7 +194,7 @@ AcpiNsInitializeObjects (
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
"\nInitialized %hd/%hd Regions %hd/%hd Fields %hd/%hd "
- "Buffers %hd/%hd Packages (%hd nodes)\n",
+ "Buffers %hd/%hd Packages (%d nodes)\n",
Info.OpRegionInit, Info.OpRegionCount,
Info.FieldInit, Info.FieldCount,
Info.BufferInit, Info.BufferCount,
diff --git a/source/include/acstruct.h b/source/include/acstruct.h
index d4696b8..8f9c550 100644
--- a/source/include/acstruct.h
+++ b/source/include/acstruct.h
@@ -218,7 +218,7 @@ typedef struct acpi_init_walk_info
UINT16 FieldInit;
UINT16 BufferInit;
UINT16 PackageInit;
- UINT16 ObjectCount;
+ UINT32 ObjectCount;
ACPI_OWNER_ID OwnerId;
UINT32 TableIndex;
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/3] ACPICA: Keep track of method changes to namespace
2010-05-18 20:25 [PATCH 1/3] ACPICA: make ObjectCount to be UINT32 Alexey Starikovskiy
@ 2010-05-18 20:25 ` Alexey Starikovskiy
2010-05-18 20:25 ` [PATCH 3/3] ACPICA: Add direct pointer to parent Alexey Starikovskiy
1 sibling, 0 replies; 3+ messages in thread
From: Alexey Starikovskiy @ 2010-05-18 20:25 UTC (permalink / raw)
To: Robert Moore, Len Brown; +Cc: Linux-acpi
Try to delete nodes from namespace only if method really added them
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
---
source/components/dispatcher/dsmethod.c | 5 ++++-
source/components/namespace/nsalloc.c | 4 ++++
source/include/acobject.h | 1 +
3 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/source/components/dispatcher/dsmethod.c b/source/components/dispatcher/dsmethod.c
index 969c9ca..fe7a9a8 100644
--- a/source/components/dispatcher/dsmethod.c
+++ b/source/components/dispatcher/dsmethod.c
@@ -700,7 +700,10 @@ AcpiDsTerminateControlMethod (
*/
if (!(MethodDesc->Method.Flags & AOPOBJ_MODULE_LEVEL))
{
- AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId);
+ if (MethodDesc->Method.UsesNamespace)
+ {
+ AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId);
+ }
}
}
diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c
index aadafbf..16bcdd3 100644
--- a/source/components/namespace/nsalloc.c
+++ b/source/components/namespace/nsalloc.c
@@ -343,6 +343,10 @@ AcpiNsInstallNode (
if (WalkState)
{
OwnerId = WalkState->OwnerId;
+ if (WalkState->MethodDesc)
+ {
+ WalkState->MethodDesc->Method.UsesNamespace = 1;
+ }
}
/* Link the new entry into the parent and existing children */
diff --git a/source/include/acobject.h b/source/include/acobject.h
index f86f839..502132a 100644
--- a/source/include/acobject.h
+++ b/source/include/acobject.h
@@ -296,6 +296,7 @@ typedef struct acpi_object_method
UINT32 AmlLength;
UINT8 ThreadCount;
+ UINT8 UsesNamespace;
ACPI_OWNER_ID OwnerId;
} ACPI_OBJECT_METHOD;
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 3/3] ACPICA: Add direct pointer to parent
2010-05-18 20:25 [PATCH 1/3] ACPICA: make ObjectCount to be UINT32 Alexey Starikovskiy
2010-05-18 20:25 ` [PATCH 2/3] ACPICA: Keep track of method changes to namespace Alexey Starikovskiy
@ 2010-05-18 20:25 ` Alexey Starikovskiy
1 sibling, 0 replies; 3+ messages in thread
From: Alexey Starikovskiy @ 2010-05-18 20:25 UTC (permalink / raw)
To: Robert Moore, Len Brown; +Cc: Linux-acpi
It is starts to be time consuming to scan list of peers for the parent pointer.
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
---
source/common/dmextern.c | 2 -
source/common/dmrestag.c | 7 ---
source/components/dispatcher/dsopcode.c | 6 +--
source/components/events/evrgnini.c | 10 ++--
source/components/executer/exdump.c | 2 -
source/components/namespace/nsaccess.c | 4 +-
source/components/namespace/nsalloc.c | 72 ++++++++-----------------------
source/components/namespace/nsinit.c | 4 +-
source/components/namespace/nsnames.c | 4 +-
source/components/namespace/nssearch.c | 16 +------
source/components/namespace/nsutils.c | 73 -------------------------------
source/components/namespace/nswalk.c | 18 ++------
source/components/namespace/nsxfobj.c | 2 -
source/include/aclocal.h | 3 +
source/include/acnamesp.h | 9 ----
15 files changed, 44 insertions(+), 188 deletions(-)
diff --git a/source/common/dmextern.c b/source/common/dmextern.c
index ab46b69..530f272 100644
--- a/source/common/dmextern.c
+++ b/source/common/dmextern.c
@@ -252,7 +252,7 @@ AcpiDmNormalizeParentPrefix (
Node = Op->Common.Node;
while (Node && (*Path == (UINT8) AML_PARENT_PREFIX))
{
- Node = AcpiNsGetParentNode (Node);
+ Node = Node->Parent;
Path++;
}
diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c
index 97f6c47..e1f340d 100644
--- a/source/common/dmrestag.c
+++ b/source/common/dmrestag.c
@@ -549,13 +549,6 @@ AcpiDmGetResourceNode (
return (Node);
}
- /* List is circular, this flag marks the end */
-
- if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- return (NULL);
- }
-
Node = Node->Peer;
}
diff --git a/source/components/dispatcher/dsopcode.c b/source/components/dispatcher/dsopcode.c
index e7ebc76..9d0941d 100644
--- a/source/components/dispatcher/dsopcode.c
+++ b/source/components/dispatcher/dsopcode.c
@@ -307,7 +307,7 @@ AcpiDsGetBufferFieldArguments (
/* Execute the AML code for the TermArg arguments */
- Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node),
+ Status = AcpiDsExecuteArguments (Node, Node->Parent,
ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
return_ACPI_STATUS (Status);
}
@@ -354,7 +354,7 @@ AcpiDsGetBankFieldArguments (
/* Execute the AML code for the TermArg arguments */
- Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node),
+ Status = AcpiDsExecuteArguments (Node, Node->Parent,
ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
return_ACPI_STATUS (Status);
}
@@ -505,7 +505,7 @@ AcpiDsGetRegionArguments (
/* Execute the argument AML */
- Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node),
+ Status = AcpiDsExecuteArguments (Node, Node->Parent,
ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
return_ACPI_STATUS (Status);
}
diff --git a/source/components/events/evrgnini.c b/source/components/events/evrgnini.c
index 8a6cbfd..1cce564 100644
--- a/source/components/events/evrgnini.c
+++ b/source/components/events/evrgnini.c
@@ -294,7 +294,7 @@ AcpiEvPciConfigRegionSetup (
return_ACPI_STATUS (Status);
}
- ParentNode = AcpiNsGetParentNode (RegionObj->Region.Node);
+ ParentNode = RegionObj->Region.Node->Parent;
/*
* Get the _SEG and _BBN values from the device upon which the handler
@@ -348,7 +348,7 @@ AcpiEvPciConfigRegionSetup (
break;
}
- PciRootNode = AcpiNsGetParentNode (PciRootNode);
+ PciRootNode = PciRootNode->Parent;
}
/* PCI root bridge not found, use namespace root node */
@@ -385,7 +385,7 @@ AcpiEvPciConfigRegionSetup (
PciDeviceNode = RegionObj->Region.Node;
while (PciDeviceNode && (PciDeviceNode->Type != ACPI_TYPE_DEVICE))
{
- PciDeviceNode = AcpiNsGetParentNode (PciDeviceNode);
+ PciDeviceNode = PciDeviceNode->Parent;
}
if (!PciDeviceNode)
@@ -661,7 +661,7 @@ AcpiEvInitializeRegion (
return_ACPI_STATUS (AE_NOT_EXIST);
}
- Node = AcpiNsGetParentNode (RegionObj->Region.Node);
+ Node = RegionObj->Region.Node->Parent;
SpaceId = RegionObj->Region.SpaceId;
/* Setup defaults */
@@ -785,7 +785,7 @@ AcpiEvInitializeRegion (
/* This node does not have the handler we need; Pop up one level */
- Node = AcpiNsGetParentNode (Node);
+ Node = Node->Parent;
}
/* If we get here, there is no handler for this region */
diff --git a/source/components/executer/exdump.c b/source/components/executer/exdump.c
index 5ef9fe8..5752727 100644
--- a/source/components/executer/exdump.c
+++ b/source/components/executer/exdump.c
@@ -948,7 +948,7 @@ AcpiExDumpNamespaceNode (
AcpiOsPrintf ("%20s : %4.4s\n", "Name", AcpiUtGetNodeName (Node));
AcpiExOutString ("Type", AcpiUtGetTypeName (Node->Type));
AcpiExOutPointer ("Attached Object", AcpiNsGetAttachedObject (Node));
- AcpiExOutPointer ("Parent", AcpiNsGetParentNode (Node));
+ AcpiExOutPointer ("Parent", Node->Parent);
AcpiExDumpObject (ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Node),
AcpiExDumpNode);
diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c
index 7a8dc6d..d074ece 100644
--- a/source/components/namespace/nsaccess.c
+++ b/source/components/namespace/nsaccess.c
@@ -435,7 +435,7 @@ AcpiNsLookup (
while (!AcpiNsOpensScope (PrefixNode->Type) &&
PrefixNode->Type != ACPI_TYPE_ANY)
{
- PrefixNode = AcpiNsGetParentNode (PrefixNode);
+ PrefixNode = PrefixNode->Parent;
}
}
}
@@ -516,7 +516,7 @@ AcpiNsLookup (
/* Backup to the parent node */
NumCarats++;
- ThisNode = AcpiNsGetParentNode (ThisNode);
+ ThisNode = ThisNode->Parent;
if (!ThisNode)
{
/* Current scope has no parent scope */
diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c
index 16bcdd3..42a5f71 100644
--- a/source/components/namespace/nsalloc.c
+++ b/source/components/namespace/nsalloc.c
@@ -255,7 +255,7 @@ AcpiNsRemoveNode (
ACPI_FUNCTION_TRACE_PTR (NsRemoveNode, Node);
- ParentNode = AcpiNsGetParentNode (Node);
+ ParentNode = Node->Parent;
PrevNode = NULL;
NextNode = ParentNode->Child;
@@ -265,34 +265,19 @@ AcpiNsRemoveNode (
while (NextNode != Node)
{
PrevNode = NextNode;
- NextNode = PrevNode->Peer;
+ NextNode = NextNode->Peer;
}
if (PrevNode)
{
/* Node is not first child, unlink it */
-
- PrevNode->Peer = NextNode->Peer;
- if (NextNode->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- PrevNode->Flags |= ANOBJ_END_OF_PEER_LIST;
- }
+ PrevNode->Peer = Node->Peer;
}
else
{
/* Node is first child (has no previous peer) */
-
- if (NextNode->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- /* No peers at all */
-
- ParentNode->Child = NULL;
- }
- else
- { /* Link peer list to parent */
-
- ParentNode->Child = NextNode->Peer;
- }
+ /* Link peer list to parent */
+ ParentNode->Child = Node->Peer;
}
/* Delete the node and any attached objects */
@@ -352,26 +337,18 @@ AcpiNsInstallNode (
/* Link the new entry into the parent and existing children */
ChildNode = ParentNode->Child;
+ Node->Parent = ParentNode;
if (!ChildNode)
{
ParentNode->Child = Node;
- Node->Flags |= ANOBJ_END_OF_PEER_LIST;
- Node->Peer = ParentNode;
}
else
{
- while (!(ChildNode->Flags & ANOBJ_END_OF_PEER_LIST))
+ while (ChildNode->Peer)
{
ChildNode = ChildNode->Peer;
}
-
ChildNode->Peer = Node;
-
- /* Clear end-of-list flag */
-
- ChildNode->Flags &= ~ANOBJ_END_OF_PEER_LIST;
- Node->Flags |= ANOBJ_END_OF_PEER_LIST;
- Node->Peer = ParentNode;
}
/* Init the new entry */
@@ -406,9 +383,7 @@ void
AcpiNsDeleteChildren (
ACPI_NAMESPACE_NODE *ParentNode)
{
- ACPI_NAMESPACE_NODE *ChildNode;
- ACPI_NAMESPACE_NODE *NextNode;
- UINT8 Flags;
+ ACPI_NAMESPACE_NODE *NextNode, *DelNode;
ACPI_FUNCTION_TRACE_PTR (NsDeleteChildren, ParentNode);
@@ -420,38 +395,27 @@ AcpiNsDeleteChildren (
}
/* If no children, all done! */
-
- ChildNode = ParentNode->Child;
- if (!ChildNode)
- {
- return_VOID;
- }
+ NextNode = ParentNode->Child;
/* Deallocate all children at this level */
- do
+ while (NextNode)
{
- /* Get the things we need */
-
- NextNode = ChildNode->Peer;
- Flags = ChildNode->Flags;
-
/* Grandchildren should have all been deleted already */
-
- if (ChildNode->Child)
+ if (NextNode->Child)
{
ACPI_ERROR ((AE_INFO, "Found a grandchild! P=%p C=%p",
- ParentNode, ChildNode));
+ ParentNode, NextNode));
}
/*
* Delete this child node and move on to the next child in the list.
* No need to unlink the node since we are deleting the entire branch.
*/
- AcpiNsDeleteNode (ChildNode);
- ChildNode = NextNode;
-
- } while (!(Flags & ANOBJ_END_OF_PEER_LIST));
+ DelNode = NextNode;
+ NextNode = NextNode->Peer;
+ AcpiNsDeleteNode (DelNode);
+ };
/* Clear the parent's child pointer */
@@ -537,7 +501,7 @@ AcpiNsDeleteNamespaceSubtree (
/* Move up the tree to the grandparent */
- ParentNode = AcpiNsGetParentNode (ParentNode);
+ ParentNode = ParentNode->Parent;
}
}
@@ -659,7 +623,7 @@ AcpiNsDeleteNamespaceByOwner (
/* Move up the tree to the grandparent */
- ParentNode = AcpiNsGetParentNode (ParentNode);
+ ParentNode = ParentNode->Parent;
}
}
diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c
index e59eb8e..7cd2a31 100644
--- a/source/components/namespace/nsinit.c
+++ b/source/components/namespace/nsinit.c
@@ -510,7 +510,7 @@ AcpiNsFindIniMethods (
* The only _INI methods that we care about are those that are
* present under Device, Processor, and Thermal objects.
*/
- ParentNode = AcpiNsGetParentNode (Node);
+ ParentNode = Node->Parent;
switch (ParentNode->Type)
{
case ACPI_TYPE_DEVICE:
@@ -522,7 +522,7 @@ AcpiNsFindIniMethods (
while (ParentNode)
{
ParentNode->Flags |= ANOBJ_SUBTREE_HAS_INI;
- ParentNode = AcpiNsGetParentNode (ParentNode);
+ ParentNode = ParentNode->Parent;
}
break;
diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c
index 7eb3e54..f05288e 100644
--- a/source/components/namespace/nsnames.c
+++ b/source/components/namespace/nsnames.c
@@ -176,7 +176,7 @@ AcpiNsBuildExternalPath (
/* Put the name into the buffer */
ACPI_MOVE_32_TO_32 ((NameBuffer + Index), &ParentNode->Name);
- ParentNode = AcpiNsGetParentNode (ParentNode);
+ ParentNode = ParentNode->Parent;
/* Prefix name with the path separator */
@@ -298,7 +298,7 @@ AcpiNsGetPathnameLength (
return 0;
}
Size += ACPI_PATH_SEGMENT_LENGTH;
- NextNode = AcpiNsGetParentNode (NextNode);
+ NextNode = NextNode->Parent;
}
if (!Size)
diff --git a/source/components/namespace/nssearch.c b/source/components/namespace/nssearch.c
index fa15b9c..6972da2 100644
--- a/source/components/namespace/nssearch.c
+++ b/source/components/namespace/nssearch.c
@@ -229,19 +229,7 @@ AcpiNsSearchOneScope (
return_ACPI_STATUS (AE_OK);
}
- /*
- * The last entry in the list points back to the parent,
- * so a flag is used to indicate the end-of-list
- */
- if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- /* Searched entire list, we are done */
-
- break;
- }
-
/* Didn't match name, move on to the next peer object */
-
Node = Node->Peer;
}
@@ -296,7 +284,7 @@ AcpiNsSearchParentTree (
ACPI_FUNCTION_TRACE (NsSearchParentTree);
- ParentNode = AcpiNsGetParentNode (Node);
+ ParentNode = Node->Parent;
/*
* If there is no parent (i.e., we are at the root) or type is "local",
@@ -341,7 +329,7 @@ AcpiNsSearchParentTree (
/* Not found here, go up another level (until we reach the root) */
- ParentNode = AcpiNsGetParentNode (ParentNode);
+ ParentNode = ParentNode->Parent;
}
/* Not found in parent tree */
diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c
index 98ec9ff..7d71efb 100644
--- a/source/components/namespace/nsutils.c
+++ b/source/components/namespace/nsutils.c
@@ -1058,77 +1058,6 @@ Cleanup:
return_ACPI_STATUS (Status);
}
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetParentNode
- *
- * PARAMETERS: Node - Current table entry
- *
- * RETURN: Parent entry of the given entry
- *
- * DESCRIPTION: Obtain the parent entry for a given entry in the namespace.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetParentNode (
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!Node)
- {
- return (NULL);
- }
-
- /*
- * Walk to the end of this peer list. The last entry is marked with a flag
- * and the peer pointer is really a pointer back to the parent. This saves
- * putting a parent back pointer in each and every named object!
- */
- while (!(Node->Flags & ANOBJ_END_OF_PEER_LIST))
- {
- Node = Node->Peer;
- }
-
- return (Node->Peer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetNextValidNode
- *
- * PARAMETERS: Node - Current table entry
- *
- * RETURN: Next valid Node in the linked node list. NULL if no more valid
- * nodes.
- *
- * DESCRIPTION: Find the next valid node within a name table.
- * Useful for implementing NULL-end-of-list loops.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextValidNode (
- ACPI_NAMESPACE_NODE *Node)
-{
-
- /* If we are at the end of this peer list, return NULL */
-
- if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- return NULL;
- }
-
- /* Otherwise just return the next peer */
-
- return (Node->Peer);
-}
-
-
#ifdef ACPI_OBSOLETE_FUNCTIONS
/*******************************************************************************
*
@@ -1158,7 +1087,7 @@ AcpiNsFindParentName (
{
/* Valid entry. Get the parent Node */
- ParentNode = AcpiNsGetParentNode (ChildNode);
+ ParentNode = ChildNode->Parent;
if (ParentNode)
{
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
diff --git a/source/components/namespace/nswalk.c b/source/components/namespace/nswalk.c
index b6c573b..edf776a 100644
--- a/source/components/namespace/nswalk.c
+++ b/source/components/namespace/nswalk.c
@@ -155,22 +155,12 @@ AcpiNsGetNextNode (
{
/* It's really the parent's _scope_ that we want */
- return (ParentNode->Child);
- }
-
- /*
- * Get the next node.
- *
- * If we are at the end of this peer list, return NULL
- */
- if (ChildNode->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- return NULL;
+ return ParentNode->Child;
}
/* Otherwise just return the next peer */
- return (ChildNode->Peer);
+ return ChildNode->Peer;
}
@@ -229,7 +219,7 @@ AcpiNsGetNextNodeTyped (
/* Otherwise, move on to the next node */
- NextNode = AcpiNsGetNextValidNode (NextNode);
+ NextNode = NextNode->Peer;
}
/* Not found */
@@ -454,7 +444,7 @@ AcpiNsWalkNamespace (
*/
Level--;
ChildNode = ParentNode;
- ParentNode = AcpiNsGetParentNode (ParentNode);
+ ParentNode = ParentNode->Parent;
NodePreviouslyVisited = TRUE;
}
diff --git a/source/components/namespace/nsxfobj.c b/source/components/namespace/nsxfobj.c
index aef106e..8e6ed64 100644
--- a/source/components/namespace/nsxfobj.c
+++ b/source/components/namespace/nsxfobj.c
@@ -242,7 +242,7 @@ AcpiGetParent (
/* Get the parent entry */
- ParentNode = AcpiNsGetParentNode (Node);
+ ParentNode = Node->Parent;
*RetHandle = ACPI_CAST_PTR (ACPI_HANDLE, ParentNode);
/* Return exception if parent is null */
diff --git a/source/include/aclocal.h b/source/include/aclocal.h
index 1deced0..e6c3c90 100644
--- a/source/include/aclocal.h
+++ b/source/include/aclocal.h
@@ -276,7 +276,8 @@ typedef struct acpi_namespace_node
ACPI_OWNER_ID OwnerId; /* Node creator */
ACPI_NAME_UNION Name; /* ACPI Name, always 4 chars per ACPI spec */
struct acpi_namespace_node *Child; /* First child */
- struct acpi_namespace_node *Peer; /* Peer. Parent if ANOBJ_END_OF_PEER_LIST set */
+ struct acpi_namespace_node *Parent; /* Parent */
+ struct acpi_namespace_node *Peer; /* Peer */
/*
* The following fields are used by the ASL compiler and disassembler only
diff --git a/source/include/acnamesp.h b/source/include/acnamesp.h
index 9ddd12e..5895e06 100644
--- a/source/include/acnamesp.h
+++ b/source/include/acnamesp.h
@@ -562,13 +562,4 @@ void
AcpiNsTerminate (
void);
-ACPI_NAMESPACE_NODE *
-AcpiNsGetParentNode (
- ACPI_NAMESPACE_NODE *Node);
-
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextValidNode (
- ACPI_NAMESPACE_NODE *Node);
-
#endif /* __ACNAMESP_H__ */
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-05-18 20:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-18 20:25 [PATCH 1/3] ACPICA: make ObjectCount to be UINT32 Alexey Starikovskiy
2010-05-18 20:25 ` [PATCH 2/3] ACPICA: Keep track of method changes to namespace Alexey Starikovskiy
2010-05-18 20:25 ` [PATCH 3/3] ACPICA: Add direct pointer to parent Alexey Starikovskiy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).