예제 #1
0
void __init sfi_init(void)
{
	if (!acpi_disabled)
		disable_sfi();

	if (sfi_disabled)
		return;

	pr_info("Simple Firmware Interface v0.81 http://simplefirmware.org\n");

	if (sfi_find_syst() || sfi_parse_syst() || sfi_platform_init())
		disable_sfi();

	return;
}
static int __init sfi_acpi_parse_xsdt(struct sfi_table_header *th)
{
	struct sfi_table_key key = SFI_ANY_KEY;
	int tbl_cnt, i;
	void *ret;

	xsdt_va = (struct acpi_table_xsdt *)th;
	tbl_cnt = XSDT_GET_NUM_ENTRIES(xsdt_va, u64);
	for (i = 0; i < tbl_cnt; i++) {
		ret = sfi_check_table(xsdt_va->table_offset_entry[i], &key);
		if (IS_ERR(ret)) {
			disable_sfi();
			return -1;
		}
	}

	return 0;
}