aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/dispatcher
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-03-17 16:44:00 -0500
committerLen Brown <len.brown@intel.com>2006-06-14 01:22:20 -0400
commit61686124f47d7c4b78610346c5f8f9d8a6d46bb5 (patch)
tree6fd91b2c1749907e58ef136107e53d634d7978c4 /drivers/acpi/dispatcher
parent144c87b4e03759214c362d267e01c2905f1ab095 (diff)
[ACPI] ACPICA 20060317
Implemented the use of a cache object for all internal namespace nodes. Since there are about 1000 static nodes in a typical system, this will decrease memory use for cache implementations that minimize per-allocation overhead (such as a slab allocator.) Removed the reference count mechanism for internal namespace nodes, since it was deemed unnecessary. This reduces the size of each namespace node by about 5%-10% on all platforms. Nodes are now 20 bytes for the 32-bit case, and 32 bytes for the 64-bit case. Optimized several internal data structures to reduce object size on 64-bit platforms by packing data within the 64-bit alignment. This includes the frequently used ACPI_OPERAND_OBJECT, of which there can be ~1000 static instances corresponding to the namespace objects. Added two new strings for the predefined _OSI method: "Windows 2001.1 SP1" and "Windows 2006". Split the allocation tracking mechanism out to a separate file, from utalloc.c to uttrack.c. This mechanism appears to be only useful for application-level code. Kernels may wish to not include uttrack.c in distributions. Removed all remnants of the obsolete ACPI_REPORT_* macros and the associated code. (These macros have been replaced by the ACPI_ERROR and ACPI_WARNING macros.) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/dispatcher')
-rw-r--r--drivers/acpi/dispatcher/dsmthdat.c12
-rw-r--r--drivers/acpi/dispatcher/dswscope.c2
-rw-r--r--drivers/acpi/dispatcher/dswstate.c12
3 files changed, 13 insertions, 13 deletions
diff --git a/drivers/acpi/dispatcher/dsmthdat.c b/drivers/acpi/dispatcher/dsmthdat.c
index 2ed48439835d..ce4de18f1229 100644
--- a/drivers/acpi/dispatcher/dsmthdat.c
+++ b/drivers/acpi/dispatcher/dsmthdat.c
@@ -100,10 +100,10 @@ void acpi_ds_method_data_init(struct acpi_walk_state *walk_state)
100 ACPI_MOVE_32_TO_32(&walk_state->arguments[i].name, 100 ACPI_MOVE_32_TO_32(&walk_state->arguments[i].name,
101 NAMEOF_ARG_NTE); 101 NAMEOF_ARG_NTE);
102 walk_state->arguments[i].name.integer |= (i << 24); 102 walk_state->arguments[i].name.integer |= (i << 24);
103 walk_state->arguments[i].descriptor = ACPI_DESC_TYPE_NAMED; 103 walk_state->arguments[i].descriptor_type = ACPI_DESC_TYPE_NAMED;
104 walk_state->arguments[i].type = ACPI_TYPE_ANY; 104 walk_state->arguments[i].type = ACPI_TYPE_ANY;
105 walk_state->arguments[i].flags = ANOBJ_END_OF_PEER_LIST | 105 walk_state->arguments[i].flags =
106 ANOBJ_METHOD_ARG; 106 ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_ARG;
107 } 107 }
108 108
109 /* Init the method locals */ 109 /* Init the method locals */
@@ -113,11 +113,11 @@ void acpi_ds_method_data_init(struct acpi_walk_state *walk_state)
113 NAMEOF_LOCAL_NTE); 113 NAMEOF_LOCAL_NTE);
114 114
115 walk_state->local_variables[i].name.integer |= (i << 24); 115 walk_state->local_variables[i].name.integer |= (i << 24);
116 walk_state->local_variables[i].descriptor = 116 walk_state->local_variables[i].descriptor_type =
117 ACPI_DESC_TYPE_NAMED; 117 ACPI_DESC_TYPE_NAMED;
118 walk_state->local_variables[i].type = ACPI_TYPE_ANY; 118 walk_state->local_variables[i].type = ACPI_TYPE_ANY;
119 walk_state->local_variables[i].flags = ANOBJ_END_OF_PEER_LIST | 119 walk_state->local_variables[i].flags =
120 ANOBJ_METHOD_LOCAL; 120 ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_LOCAL;
121 } 121 }
122 122
123 return_VOID; 123 return_VOID;
diff --git a/drivers/acpi/dispatcher/dswscope.c b/drivers/acpi/dispatcher/dswscope.c
index e2954fff8c5e..3cd6895ed2c3 100644
--- a/drivers/acpi/dispatcher/dswscope.c
+++ b/drivers/acpi/dispatcher/dswscope.c
@@ -128,7 +128,7 @@ acpi_ds_scope_stack_push(struct acpi_namespace_node *node,
128 128
129 /* Init new scope object */ 129 /* Init new scope object */
130 130
131 scope_info->common.data_type = ACPI_DESC_TYPE_STATE_WSCOPE; 131 scope_info->common.descriptor_type = ACPI_DESC_TYPE_STATE_WSCOPE;
132 scope_info->scope.node = node; 132 scope_info->scope.node = node;
133 scope_info->common.value = (u16) type; 133 scope_info->common.value = (u16) type;
134 134
diff --git a/drivers/acpi/dispatcher/dswstate.c b/drivers/acpi/dispatcher/dswstate.c
index d2846ffc9773..4840eae47d34 100644
--- a/drivers/acpi/dispatcher/dswstate.c
+++ b/drivers/acpi/dispatcher/dswstate.c
@@ -337,7 +337,7 @@ acpi_status acpi_ds_result_stack_push(struct acpi_walk_state * walk_state)
337 return (AE_NO_MEMORY); 337 return (AE_NO_MEMORY);
338 } 338 }
339 339
340 state->common.data_type = ACPI_DESC_TYPE_STATE_RESULT; 340 state->common.descriptor_type = ACPI_DESC_TYPE_STATE_RESULT;
341 acpi_ut_push_generic_state(&walk_state->results, state); 341 acpi_ut_push_generic_state(&walk_state->results, state);
342 342
343 ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Results=%p State=%p\n", 343 ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Results=%p State=%p\n",
@@ -620,7 +620,7 @@ struct acpi_walk_state *acpi_ds_pop_walk_state(struct acpi_thread_state *thread)
620 * 620 *
621 * PARAMETERS: owner_id - ID for object creation 621 * PARAMETERS: owner_id - ID for object creation
622 * Origin - Starting point for this walk 622 * Origin - Starting point for this walk
623 * mth_desc - Method object 623 * method_desc - Method object
624 * Thread - Current thread state 624 * Thread - Current thread state
625 * 625 *
626 * RETURN: Pointer to the new walk state. 626 * RETURN: Pointer to the new walk state.
@@ -634,7 +634,7 @@ struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id,
634 union acpi_parse_object 634 union acpi_parse_object
635 *origin, 635 *origin,
636 union acpi_operand_object 636 union acpi_operand_object
637 *mth_desc, 637 *method_desc,
638 struct acpi_thread_state 638 struct acpi_thread_state
639 *thread) 639 *thread)
640{ 640{
@@ -648,10 +648,10 @@ struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id,
648 return_PTR(NULL); 648 return_PTR(NULL);
649 } 649 }
650 650
651 walk_state->data_type = ACPI_DESC_TYPE_WALK; 651 walk_state->descriptor_type = ACPI_DESC_TYPE_WALK;
652 walk_state->method_desc = method_desc;
652 walk_state->owner_id = owner_id; 653 walk_state->owner_id = owner_id;
653 walk_state->origin = origin; 654 walk_state->origin = origin;
654 walk_state->method_desc = mth_desc;
655 walk_state->thread = thread; 655 walk_state->thread = thread;
656 656
657 walk_state->parser_state.start_op = origin; 657 walk_state->parser_state.start_op = origin;
@@ -819,7 +819,7 @@ void acpi_ds_delete_walk_state(struct acpi_walk_state *walk_state)
819 return; 819 return;
820 } 820 }
821 821
822 if (walk_state->data_type != ACPI_DESC_TYPE_WALK) { 822 if (walk_state->descriptor_type != ACPI_DESC_TYPE_WALK) {
823 ACPI_ERROR((AE_INFO, "%p is not a valid walk state", 823 ACPI_ERROR((AE_INFO, "%p is not a valid walk state",
824 walk_state)); 824 walk_state));
825 return; 825 return;