diff options
author | Bob Moore <robert.moore@intel.com> | 2006-03-17 16:44:00 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-06-14 01:22:20 -0400 |
commit | 61686124f47d7c4b78610346c5f8f9d8a6d46bb5 (patch) | |
tree | 6fd91b2c1749907e58ef136107e53d634d7978c4 /drivers/acpi/events/evregion.c | |
parent | 144c87b4e03759214c362d267e01c2905f1ab095 (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/events/evregion.c')
-rw-r--r-- | drivers/acpi/events/evregion.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/acpi/events/evregion.c b/drivers/acpi/events/evregion.c index 2b900ef05fa9..0337ad222b26 100644 --- a/drivers/acpi/events/evregion.c +++ b/drivers/acpi/events/evregion.c | |||
@@ -250,7 +250,6 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function) | |||
250 | 250 | ||
251 | cleanup: | 251 | cleanup: |
252 | acpi_ut_remove_reference(params[0]); | 252 | acpi_ut_remove_reference(params[0]); |
253 | |||
254 | return_ACPI_STATUS(status); | 253 | return_ACPI_STATUS(status); |
255 | } | 254 | } |
256 | 255 | ||
@@ -389,9 +388,8 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj, | |||
389 | acpi_ut_get_region_name(region_obj->region. | 388 | acpi_ut_get_region_name(region_obj->region. |
390 | space_id))); | 389 | space_id))); |
391 | 390 | ||
392 | if (! | 391 | if (!(handler_desc->address_space.handler_flags & |
393 | (handler_desc->address_space. | 392 | ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { |
394 | hflags & ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { | ||
395 | /* | 393 | /* |
396 | * For handlers other than the default (supplied) handlers, we must | 394 | * For handlers other than the default (supplied) handlers, we must |
397 | * exit the interpreter because the handler *might* block -- we don't | 395 | * exit the interpreter because the handler *might* block -- we don't |
@@ -412,9 +410,8 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj, | |||
412 | space_id))); | 410 | space_id))); |
413 | } | 411 | } |
414 | 412 | ||
415 | if (! | 413 | if (!(handler_desc->address_space.handler_flags & |
416 | (handler_desc->address_space. | 414 | ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { |
417 | hflags & ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { | ||
418 | /* | 415 | /* |
419 | * We just returned from a non-default handler, we must re-enter the | 416 | * We just returned from a non-default handler, we must re-enter the |
420 | * interpreter | 417 | * interpreter |
@@ -772,7 +769,7 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node, | |||
772 | union acpi_operand_object *handler_obj; | 769 | union acpi_operand_object *handler_obj; |
773 | acpi_status status; | 770 | acpi_status status; |
774 | acpi_object_type type; | 771 | acpi_object_type type; |
775 | u16 flags = 0; | 772 | u8 flags = 0; |
776 | 773 | ||
777 | ACPI_FUNCTION_TRACE("ev_install_space_handler"); | 774 | ACPI_FUNCTION_TRACE("ev_install_space_handler"); |
778 | 775 | ||
@@ -930,7 +927,7 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node, | |||
930 | /* Init handler obj */ | 927 | /* Init handler obj */ |
931 | 928 | ||
932 | handler_obj->address_space.space_id = (u8) space_id; | 929 | handler_obj->address_space.space_id = (u8) space_id; |
933 | handler_obj->address_space.hflags = flags; | 930 | handler_obj->address_space.handler_flags = flags; |
934 | handler_obj->address_space.region_list = NULL; | 931 | handler_obj->address_space.region_list = NULL; |
935 | handler_obj->address_space.node = node; | 932 | handler_obj->address_space.node = node; |
936 | handler_obj->address_space.handler = handler; | 933 | handler_obj->address_space.handler = handler; |