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; }