aboutsummaryrefslogtreecommitdiff
path: root/include/linux/efi.h
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2013-02-08 15:37:06 +0000
committerMatt Fleming <matt.fleming@intel.com>2013-04-17 13:27:06 +0100
commita9499fa7cd3fd4824a7202d00c766b269fa3bda6 (patch)
tree02d1ba3dcf46f6dd1765ef645b223ea0d4758ae6 /include/linux/efi.h
parentd68772b7c83f4b518be15ae96f4827c8ed02f684 (diff)
efi: split efisubsystem from efivars
This registers /sys/firmware/efi/{,systab,efivars/} whenever EFI is enabled and the system is booted with EFI. This allows *) userspace to check for the existence of /sys/firmware/efi as a way to determine whether or it is running on an EFI system. *) 'mount -t efivarfs none /sys/firmware/efi/efivars' without manually loading any modules. [ Also, move the efivar API into vars.c and unconditionally compile it. This allows us to move efivars.c, which now only contains the sysfs variable code, into the firmware/efi directory. Note that the efivars.c filename is kept to maintain backwards compatability with the old efivars.ko module. With this patch it is now possible for efivarfs to be built without CONFIG_EFI_VARS - Matt ] Cc: Seiji Aguchi <seiji.aguchi@hds.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Mike Waychison <mikew@google.com> Cc: Kay Sievers <kay@vrfy.org> Cc: Jeremy Kerr <jk@ozlabs.org> Cc: Matthew Garrett <mjg59@srcf.ucam.org> Cc: Chun-Yi Lee <jlee@suse.com> Cc: Andy Whitcroft <apw@canonical.com> Cc: Tobias Powalowski <tpowa@archlinux.org> Signed-off-by: Tom Gundersen <teg@jklm.no> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'include/linux/efi.h')
-rw-r--r--include/linux/efi.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 8ff6ec1ac04..2fc81668271 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -742,7 +742,6 @@ utf16_strlen(efi_char16_t *s)
return utf16_strnlen(s, ~0UL);
}
-#if defined(CONFIG_EFI_VARS) || defined(CONFIG_EFI_VARS_MODULE)
/*
* Return the number of bytes is the length of this string
* Note: this is NOT the same as the number of unicode characters
@@ -872,8 +871,10 @@ struct efivar_entry *efivar_entry_find(efi_char16_t *name, efi_guid_t guid,
bool efivar_validate(struct efi_variable *var, u8 *data, unsigned long len);
+extern struct work_struct efivar_work;
void efivar_run_worker(void);
+#if defined(CONFIG_EFI_VARS) || defined(CONFIG_EFI_VARS_MODULE)
int efivars_sysfs_init(void);
#endif /* CONFIG_EFI_VARS */