ACPICA: re-factor table init routines for benefit of iASL

Required new table init interface since iASL does not use RSDP/XSDT.

Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
Bob Moore 2007-02-02 19:48:20 +03:00 committed by Len Brown
parent 694b0b2092
commit 77389e1263
2 changed files with 27 additions and 5 deletions

View file

@ -52,6 +52,29 @@ ACPI_MODULE_NAME("tbxface")
/* Local prototypes */ /* Local prototypes */
static acpi_status acpi_tb_load_namespace(void); static acpi_status acpi_tb_load_namespace(void);
/*******************************************************************************
*
* FUNCTION: acpi_allocate_root_table
*
* PARAMETERS: initial_table_count - Size of initial_table_array, in number of
* struct acpi_table_desc structures
*
* RETURN: Status
*
* DESCRIPTION: Allocate a root table array. Used by i_aSL compiler and
* acpi_initialize_tables.
*
******************************************************************************/
acpi_status acpi_allocate_root_table(u32 initial_table_count)
{
acpi_gbl_root_table_list.size = initial_table_count;
acpi_gbl_root_table_list.flags = ACPI_ROOT_ALLOW_RESIZE;
return (acpi_tb_resize_root_table_list());
}
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: acpi_initialize_tables * FUNCTION: acpi_initialize_tables
@ -79,7 +102,7 @@ static acpi_status acpi_tb_load_namespace(void);
******************************************************************************/ ******************************************************************************/
acpi_status __init acpi_status __init
acpi_initialize_tables(struct acpi_table_desc *initial_table_array, acpi_initialize_tables(struct acpi_table_desc * initial_table_array,
u32 initial_table_count, u8 allow_resize) u32 initial_table_count, u8 allow_resize)
{ {
acpi_physical_address rsdp_address; acpi_physical_address rsdp_address;
@ -92,10 +115,7 @@ acpi_initialize_tables(struct acpi_table_desc *initial_table_array,
* Allocate the table array if requested * Allocate the table array if requested
*/ */
if (!initial_table_array) { if (!initial_table_array) {
acpi_gbl_root_table_list.size = initial_table_count; status = acpi_allocate_root_table(initial_table_count);
acpi_gbl_root_table_list.flags = ACPI_ROOT_ALLOW_RESIZE;
status = acpi_tb_resize_root_table_list();
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status); return_ACPI_STATUS(status);
} }

View file

@ -44,6 +44,8 @@
#ifndef __ACTABLES_H__ #ifndef __ACTABLES_H__
#define __ACTABLES_H__ #define __ACTABLES_H__
acpi_status acpi_allocate_root_table(u32 initial_table_count);
/* /*
* tbfadt - FADT parse/convert/validate * tbfadt - FADT parse/convert/validate
*/ */