if (acpi_gbl_RSDP->revision < 2) { 
/* RSDT pointers are 32 bits, XSDT pointers are 64 bits */  if (acpi_gbl_root_table_type == ACPI_TABLE_TYPE_RSDT) { 
acpi_tb_convert_to_xsdt (	struct acpi_table_desc          *table_info){	acpi_size                       table_size;	u32                             i;	XSDT_DESCRIPTOR         *new_table;	ACPI_FUNCTION_ENTRY ();	/* Compute size of the converted XSDT */	table_size = ((acpi_size) acpi_gbl_rsdt_table_count * sizeof (u64)) +			  sizeof (struct acpi_table_header);	/* Allocate an XSDT */	new_table = ACPI_MEM_CALLOCATE (table_size);	if (!new_table) {		return (AE_NO_MEMORY);	}	/* Copy the header and set the length */	ACPI_MEMCPY (new_table, table_info->pointer, sizeof (struct acpi_table_header));	new_table->length = (u32) table_size;	/* Copy the table pointers */	for (i = 0; i < acpi_gbl_rsdt_table_count; i++) {		if (acpi_gbl_RSDP->revision < 2) {			ACPI_STORE_ADDRESS (new_table->table_offset_entry[i],				(ACPI_CAST_PTR (struct rsdt_descriptor_rev1,					table_info->pointer))->table_offset_entry[i]);		}		else {			new_table->table_offset_entry[i] =				(ACPI_CAST_PTR (XSDT_DESCRIPTOR,					table_info->pointer))->table_offset_entry[i];		}	}	/* Delete the original table (either mapped or in a buffer) */	acpi_tb_delete_single_table (table_info);	/* Point the table descriptor to the new table */	table_info->pointer     = ACPI_CAST_PTR (struct acpi_table_header, new_table);	table_info->length      = table_size;	table_info->allocation  = ACPI_MEM_ALLOCATED;	return (AE_OK);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/73459f73e5d1602c59ebec114fc45185521353c1/tbconvrt.c/buggy/drivers/acpi/tables/tbconvrt.c