ACPICA: Clarify/rename some root table descriptor fields
authorBob Moore <robert.moore@intel.com>
Tue, 27 Apr 2010 03:16:14 +0000 (11:16 +0800)
committerLen Brown <len.brown@intel.com>
Thu, 6 May 2010 07:05:54 +0000 (03:05 -0400)
Original fields were not very descriptive and led to maintenance
problems.  New fields should help to understand the existing code.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/acpica/acglobal.h
drivers/acpi/acpica/aclocal.h
drivers/acpi/acpica/tbfind.c
drivers/acpi/acpica/tbinstal.c
drivers/acpi/acpica/tbutils.c
drivers/acpi/acpica/tbxface.c

index 87f21d9d2a66e77cf9dd76a97b63d51d8b49dda0..9070f1fe8f17e73adfdbc91cf0981f857e7b2f09 100644 (file)
@@ -158,11 +158,10 @@ ACPI_EXTERN u32 acpi_gbl_trace_dbg_layer;
  ****************************************************************************/
 
 /*
- * acpi_gbl_root_table_list is the master list of ACPI tables found in the
- * RSDT/XSDT.
- *
+ * acpi_gbl_root_table_list is the master list of ACPI tables that were
+ * found in the RSDT/XSDT.
  */
-ACPI_EXTERN struct acpi_internal_rsdt acpi_gbl_root_table_list;
+ACPI_EXTERN struct acpi_table_list acpi_gbl_root_table_list;
 ACPI_EXTERN struct acpi_table_facs *acpi_gbl_FACS;
 
 /* These addresses are calculated from the FADT Event Block addresses */
index 5a6203a40c3e3033c86541f651b8b5c770edd0de..0886a3dfe134f1bf738249dff52d41e6d9cbc4d8 100644 (file)
@@ -213,12 +213,12 @@ struct acpi_namespace_node {
 #define ANOBJ_IS_BIT_OFFSET             0x40   /* i_aSL only: Reference is a bit offset */
 #define ANOBJ_IS_REFERENCED             0x80   /* i_aSL only: Object was referenced */
 
-/* One internal RSDT for table management */
+/* Internal ACPI table management - master table list */
 
-struct acpi_internal_rsdt {
-       struct acpi_table_desc *tables;
-       u32 count;
-       u32 size;
+struct acpi_table_list {
+       struct acpi_table_desc *tables; /* Table descriptor array */
+       u32 current_table_count;        /* Tables currently in the array */
+       u32 max_table_count;    /* Max tables array will hold */
        u8 flags;
 };
 
index e252180ce61c1399de74ab3fae03ca1f859516cb..989d5c8678641c2bed8543a4200cac96c6bd4455 100644 (file)
@@ -83,7 +83,7 @@ acpi_tb_find_table(char *signature,
 
        /* Search for the table */
 
-       for (i = 0; i < acpi_gbl_root_table_list.count; ++i) {
+       for (i = 0; i < acpi_gbl_root_table_list.current_table_count; ++i) {
                if (ACPI_MEMCMP(&(acpi_gbl_root_table_list.tables[i].signature),
                                header.signature, ACPI_NAME_SIZE)) {
 
index 7ec02b0f69e0fd30051adea4a6e9c4a344a6b274..83d7af8d0905a927a4316df20ce50aefe8af7c92 100644 (file)
@@ -137,7 +137,7 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)
 
        /* Check if table is already registered */
 
-       for (i = 0; i < acpi_gbl_root_table_list.count; ++i) {
+       for (i = 0; i < acpi_gbl_root_table_list.current_table_count; ++i) {
                if (!acpi_gbl_root_table_list.tables[i].pointer) {
                        status =
                            acpi_tb_verify_table(&acpi_gbl_root_table_list.
@@ -273,7 +273,7 @@ acpi_status acpi_tb_resize_root_table_list(void)
        /* Increase the Table Array size */
 
        tables = ACPI_ALLOCATE_ZEROED(((acpi_size) acpi_gbl_root_table_list.
-                                      size +
+                                      max_table_count +
                                       ACPI_ROOT_TABLE_SIZE_INCREMENT) *
                                      sizeof(struct acpi_table_desc));
        if (!tables) {
@@ -286,8 +286,8 @@ acpi_status acpi_tb_resize_root_table_list(void)
 
        if (acpi_gbl_root_table_list.tables) {
                ACPI_MEMCPY(tables, acpi_gbl_root_table_list.tables,
-                           (acpi_size) acpi_gbl_root_table_list.size *
-                           sizeof(struct acpi_table_desc));
+                           (acpi_size) acpi_gbl_root_table_list.
+                           max_table_count * sizeof(struct acpi_table_desc));
 
                if (acpi_gbl_root_table_list.flags & ACPI_ROOT_ORIGIN_ALLOCATED) {
                        ACPI_FREE(acpi_gbl_root_table_list.tables);
@@ -295,8 +295,9 @@ acpi_status acpi_tb_resize_root_table_list(void)
        }
 
        acpi_gbl_root_table_list.tables = tables;
-       acpi_gbl_root_table_list.size += ACPI_ROOT_TABLE_SIZE_INCREMENT;
-       acpi_gbl_root_table_list.flags |= (u8) ACPI_ROOT_ORIGIN_ALLOCATED;
+       acpi_gbl_root_table_list.max_table_count +=
+           ACPI_ROOT_TABLE_SIZE_INCREMENT;
+       acpi_gbl_root_table_list.flags |= (u8)ACPI_ROOT_ORIGIN_ALLOCATED;
 
        return_ACPI_STATUS(AE_OK);
 }
@@ -321,38 +322,36 @@ acpi_tb_store_table(acpi_physical_address address,
                    struct acpi_table_header *table,
                    u32 length, u8 flags, u32 *table_index)
 {
-       acpi_status status = AE_OK;
+       acpi_status status;
+       struct acpi_table_desc *new_table;
 
        /* Ensure that there is room for the table in the Root Table List */
 
-       if (acpi_gbl_root_table_list.count >= acpi_gbl_root_table_list.size) {
+       if (acpi_gbl_root_table_list.current_table_count >=
+           acpi_gbl_root_table_list.max_table_count) {
                status = acpi_tb_resize_root_table_list();
                if (ACPI_FAILURE(status)) {
                        return (status);
                }
        }
 
+       new_table =
+           &acpi_gbl_root_table_list.tables[acpi_gbl_root_table_list.
+                                            current_table_count];
+
        /* Initialize added table */
 
-       acpi_gbl_root_table_list.tables[acpi_gbl_root_table_list.count].
-           address = address;
-       acpi_gbl_root_table_list.tables[acpi_gbl_root_table_list.count].
-           pointer = table;
-       acpi_gbl_root_table_list.tables[acpi_gbl_root_table_list.count].length =
-           length;
-       acpi_gbl_root_table_list.tables[acpi_gbl_root_table_list.count].
-           owner_id = 0;
-       acpi_gbl_root_table_list.tables[acpi_gbl_root_table_list.count].flags =
-           flags;
-
-       ACPI_MOVE_32_TO_32(&
-                          (acpi_gbl_root_table_list.
-                           tables[acpi_gbl_root_table_list.count].signature),
-                          table->signature);
-
-       *table_index = acpi_gbl_root_table_list.count;
-       acpi_gbl_root_table_list.count++;
-       return (status);
+       new_table->address = address;
+       new_table->pointer = table;
+       new_table->length = length;
+       new_table->owner_id = 0;
+       new_table->flags = flags;
+
+       ACPI_MOVE_32_TO_32(&new_table->signature, table->signature);
+
+       *table_index = acpi_gbl_root_table_list.current_table_count;
+       acpi_gbl_root_table_list.current_table_count++;
+       return (AE_OK);
 }
 
 /*******************************************************************************
@@ -408,7 +407,7 @@ void acpi_tb_terminate(void)
 
        /* Delete the individual tables */
 
-       for (i = 0; i < acpi_gbl_root_table_list.count; ++i) {
+       for (i = 0; i < acpi_gbl_root_table_list.current_table_count; i++) {
                acpi_tb_delete_table(&acpi_gbl_root_table_list.tables[i]);
        }
 
@@ -422,7 +421,7 @@ void acpi_tb_terminate(void)
 
        acpi_gbl_root_table_list.tables = NULL;
        acpi_gbl_root_table_list.flags = 0;
-       acpi_gbl_root_table_list.count = 0;
+       acpi_gbl_root_table_list.current_table_count = 0;
 
        ACPI_DEBUG_PRINT((ACPI_DB_INFO, "ACPI Tables freed\n"));
        (void)acpi_ut_release_mutex(ACPI_MTX_TABLES);
@@ -452,7 +451,7 @@ acpi_status acpi_tb_delete_namespace_by_owner(u32 table_index)
                return_ACPI_STATUS(status);
        }
 
-       if (table_index >= acpi_gbl_root_table_list.count) {
+       if (table_index >= acpi_gbl_root_table_list.current_table_count) {
 
                /* The table index does not exist */
 
@@ -505,7 +504,7 @@ acpi_status acpi_tb_allocate_owner_id(u32 table_index)
        ACPI_FUNCTION_TRACE(tb_allocate_owner_id);
 
        (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
-       if (table_index < acpi_gbl_root_table_list.count) {
+       if (table_index < acpi_gbl_root_table_list.current_table_count) {
                status = acpi_ut_allocate_owner_id
                    (&(acpi_gbl_root_table_list.tables[table_index].owner_id));
        }
@@ -533,7 +532,7 @@ acpi_status acpi_tb_release_owner_id(u32 table_index)
        ACPI_FUNCTION_TRACE(tb_release_owner_id);
 
        (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
-       if (table_index < acpi_gbl_root_table_list.count) {
+       if (table_index < acpi_gbl_root_table_list.current_table_count) {
                acpi_ut_release_owner_id(&
                                         (acpi_gbl_root_table_list.
                                          tables[table_index].owner_id));
@@ -564,7 +563,7 @@ acpi_status acpi_tb_get_owner_id(u32 table_index, acpi_owner_id *owner_id)
        ACPI_FUNCTION_TRACE(tb_get_owner_id);
 
        (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
-       if (table_index < acpi_gbl_root_table_list.count) {
+       if (table_index < acpi_gbl_root_table_list.current_table_count) {
                *owner_id =
                    acpi_gbl_root_table_list.tables[table_index].owner_id;
                status = AE_OK;
@@ -589,7 +588,7 @@ u8 acpi_tb_is_table_loaded(u32 table_index)
        u8 is_loaded = FALSE;
 
        (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
-       if (table_index < acpi_gbl_root_table_list.count) {
+       if (table_index < acpi_gbl_root_table_list.current_table_count) {
                is_loaded = (u8)
                    (acpi_gbl_root_table_list.tables[table_index].flags &
                     ACPI_TABLE_IS_LOADED);
@@ -616,7 +615,7 @@ void acpi_tb_set_table_loaded_flag(u32 table_index, u8 is_loaded)
 {
 
        (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
-       if (table_index < acpi_gbl_root_table_list.count) {
+       if (table_index < acpi_gbl_root_table_list.current_table_count) {
                if (is_loaded) {
                        acpi_gbl_root_table_list.tables[table_index].flags |=
                            ACPI_TABLE_IS_LOADED;
index a9b105fc2e5593f639683594fba45893c7fe1712..34f9c2bc5e1f917faf5666bb6a630953535cc9ca 100644 (file)
@@ -158,7 +158,7 @@ acpi_status acpi_tb_initialize_facs(void)
 u8 acpi_tb_tables_loaded(void)
 {
 
-       if (acpi_gbl_root_table_list.count >= 3) {
+       if (acpi_gbl_root_table_list.current_table_count >= 3) {
                return (TRUE);
        }
 
@@ -707,14 +707,14 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
         */
        table_entry =
            ACPI_CAST_PTR(u8, table) + sizeof(struct acpi_table_header);
-       acpi_gbl_root_table_list.count = 2;
+       acpi_gbl_root_table_list.current_table_count = 2;
 
        /*
         * Initialize the root table array from the RSDT/XSDT
         */
        for (i = 0; i < table_count; i++) {
-               if (acpi_gbl_root_table_list.count >=
-                   acpi_gbl_root_table_list.size) {
+               if (acpi_gbl_root_table_list.current_table_count >=
+                   acpi_gbl_root_table_list.max_table_count) {
 
                        /* There is no more room in the root table array, attempt resize */
 
@@ -724,19 +724,20 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
                                              "Truncating %u table entries!",
                                              (unsigned) (table_count -
                                               (acpi_gbl_root_table_list.
-                                              count - 2))));
+                                                         current_table_count -
+                                                         2))));
                                break;
                        }
                }
 
                /* Get the table physical address (32-bit for RSDT, 64-bit for XSDT) */
 
-               acpi_gbl_root_table_list.tables[acpi_gbl_root_table_list.count].
-                   address =
+               acpi_gbl_root_table_list.tables[acpi_gbl_root_table_list.
+                                               current_table_count].address =
                    acpi_tb_get_root_table_entry(table_entry, table_entry_size);
 
                table_entry += table_entry_size;
-               acpi_gbl_root_table_list.count++;
+               acpi_gbl_root_table_list.current_table_count++;
        }
 
        /*
@@ -749,7 +750,7 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address)
         * Complete the initialization of the root table array by examining
         * the header of each table
         */
-       for (i = 2; i < acpi_gbl_root_table_list.count; i++) {
+       for (i = 2; i < acpi_gbl_root_table_list.current_table_count; i++) {
                acpi_tb_install_table(acpi_gbl_root_table_list.tables[i].
                                      address, NULL, i);
 
index adb7f56b853e9d1f0cfd4bc23e7a9c996848d8a7..4a8b9e6ea57a1fa73a670a7b1d06cdc4214a168a 100644 (file)
@@ -72,7 +72,7 @@ static int no_auto_ssdt;
 acpi_status acpi_allocate_root_table(u32 initial_table_count)
 {
 
-       acpi_gbl_root_table_list.size = initial_table_count;
+       acpi_gbl_root_table_list.max_table_count = initial_table_count;
        acpi_gbl_root_table_list.flags = ACPI_ROOT_ALLOW_RESIZE;
 
        return (acpi_tb_resize_root_table_list());
@@ -130,7 +130,7 @@ acpi_initialize_tables(struct acpi_table_desc * initial_table_array,
                            sizeof(struct acpi_table_desc));
 
                acpi_gbl_root_table_list.tables = initial_table_array;
-               acpi_gbl_root_table_list.size = initial_table_count;
+               acpi_gbl_root_table_list.max_table_count = initial_table_count;
                acpi_gbl_root_table_list.flags = ACPI_ROOT_ORIGIN_UNKNOWN;
                if (allow_resize) {
                        acpi_gbl_root_table_list.flags |=
@@ -189,7 +189,8 @@ acpi_status acpi_reallocate_root_table(void)
         * increment to create the new table size.
         */
        current_size = (acpi_size)
-           acpi_gbl_root_table_list.count * sizeof(struct acpi_table_desc);
+           acpi_gbl_root_table_list.current_table_count *
+           sizeof(struct acpi_table_desc);
 
        new_size = current_size +
            (ACPI_ROOT_TABLE_SIZE_INCREMENT * sizeof(struct acpi_table_desc));
@@ -209,8 +210,9 @@ acpi_status acpi_reallocate_root_table(void)
         * size of the original table list.
         */
        acpi_gbl_root_table_list.tables = tables;
-       acpi_gbl_root_table_list.size =
-           acpi_gbl_root_table_list.count + ACPI_ROOT_TABLE_SIZE_INCREMENT;
+       acpi_gbl_root_table_list.max_table_count =
+           acpi_gbl_root_table_list.current_table_count +
+           ACPI_ROOT_TABLE_SIZE_INCREMENT;
        acpi_gbl_root_table_list.flags =
            ACPI_ROOT_ORIGIN_ALLOCATED | ACPI_ROOT_ALLOW_RESIZE;
 
@@ -291,7 +293,8 @@ acpi_get_table_header(char *signature,
 
        /* Walk the root table list */
 
-       for (i = 0, j = 0; i < acpi_gbl_root_table_list.count; i++) {
+       for (i = 0, j = 0; i < acpi_gbl_root_table_list.current_table_count;
+            i++) {
                if (!ACPI_COMPARE_NAME
                    (&(acpi_gbl_root_table_list.tables[i].signature),
                     signature)) {
@@ -354,7 +357,7 @@ acpi_status acpi_unload_table_id(acpi_owner_id id)
        ACPI_FUNCTION_TRACE(acpi_unload_table_id);
 
        /* Find table in the global table list */
-       for (i = 0; i < acpi_gbl_root_table_list.count; ++i) {
+       for (i = 0; i < acpi_gbl_root_table_list.current_table_count; ++i) {
                if (id != acpi_gbl_root_table_list.tables[i].owner_id) {
                        continue;
                }
@@ -404,7 +407,8 @@ acpi_get_table_with_size(char *signature,
 
        /* Walk the root table list */
 
-       for (i = 0, j = 0; i < acpi_gbl_root_table_list.count; i++) {
+       for (i = 0, j = 0; i < acpi_gbl_root_table_list.current_table_count;
+            i++) {
                if (!ACPI_COMPARE_NAME
                    (&(acpi_gbl_root_table_list.tables[i].signature),
                     signature)) {
@@ -472,7 +476,7 @@ acpi_get_table_by_index(u32 table_index, struct acpi_table_header **table)
 
        /* Validate index */
 
-       if (table_index >= acpi_gbl_root_table_list.count) {
+       if (table_index >= acpi_gbl_root_table_list.current_table_count) {
                (void)acpi_ut_release_mutex(ACPI_MTX_TABLES);
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
@@ -523,7 +527,7 @@ static acpi_status acpi_tb_load_namespace(void)
         * Load the namespace. The DSDT is required, but any SSDT and
         * PSDT tables are optional. Verify the DSDT.
         */
-       if (!acpi_gbl_root_table_list.count ||
+       if (!acpi_gbl_root_table_list.current_table_count ||
            !ACPI_COMPARE_NAME(&
                               (acpi_gbl_root_table_list.
                                tables[ACPI_TABLE_INDEX_DSDT].signature),
@@ -577,7 +581,7 @@ static acpi_status acpi_tb_load_namespace(void)
        /* Load any SSDT or PSDT tables. Note: Loop leaves tables locked */
 
        (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
-       for (i = 0; i < acpi_gbl_root_table_list.count; ++i) {
+       for (i = 0; i < acpi_gbl_root_table_list.current_table_count; ++i) {
                if ((!ACPI_COMPARE_NAME
                     (&(acpi_gbl_root_table_list.tables[i].signature),
                      ACPI_SIG_SSDT)