[systemd-commits] 3 commits - src/shared
Tom Gundersen
tomegun at kemper.freedesktop.org
Fri Apr 10 10:56:02 PDT 2015
src/shared/boot-timestamps.c | 2 -
src/shared/efivars.c | 28 +++++++--------
src/shared/efivars.h | 78 +++++++++++++++++++++++++++++++++++++++++--
3 files changed, 90 insertions(+), 18 deletions(-)
New commits:
commit 2e036c4eae2ed43b1f98124660680e9577f0ffef
Author: Tom Gundersen <teg at jklm.no>
Date: Fri Apr 10 19:49:36 2015 +0200
shared: boot-timestamps - remove ifdef
No need to ifdef out efi code as the functions are always defined.
diff --git a/src/shared/boot-timestamps.c b/src/shared/boot-timestamps.c
index 6841959..ecbe1aa 100644
--- a/src/shared/boot-timestamps.c
+++ b/src/shared/boot-timestamps.c
@@ -39,10 +39,8 @@ int boot_timestamps(const dual_timestamp *n, dual_timestamp *firmware, dual_time
r = acpi_get_boot_usec(&x, &y);
if (r < 0) {
-#ifdef ENABLE_EFI
r = efi_loader_get_boot_usec(&x, &y);
if (r < 0)
-#endif
return r;
}
commit b28ce7c6dbe341d6f5769d31014ab8411257db7d
Author: Tom Gundersen <teg at jklm.no>
Date: Fri Apr 10 19:44:06 2015 +0200
shared: efivars - fix compile on non-EFI systems
systemctl and logind were unconditionally using functions that were not compiled
on non-EFI systems. Add stubs returning -EOPNOTSUPP to fix compile again.
diff --git a/src/shared/efivars.c b/src/shared/efivars.c
index 2a925f3..d34d977 100644
--- a/src/shared/efivars.c
+++ b/src/shared/efivars.c
@@ -447,16 +447,6 @@ static uint16_t *tilt_slashes(uint16_t *s) {
return s;
}
-char *efi_tilt_backslashes(char *s) {
- char *p;
-
- for (p = s; *p; p++)
- if (*p == '\\')
- *p = '/';
-
- return s;
-}
-
int efi_add_boot_option(uint16_t id, const char *title,
uint32_t part, uint64_t pstart, uint64_t psize,
sd_id128_t part_uuid, const char *path) {
@@ -687,3 +677,13 @@ int efi_loader_get_device_part_uuid(sd_id128_t *u) {
}
#endif
+
+char *efi_tilt_backslashes(char *s) {
+ char *p;
+
+ for (p = s; *p; p++)
+ if (*p == '\\')
+ *p = '/';
+
+ return s;
+}
diff --git a/src/shared/efivars.h b/src/shared/efivars.h
index 420013a..aad4993 100644
--- a/src/shared/efivars.h
+++ b/src/shared/efivars.h
@@ -32,6 +32,8 @@
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
+#ifdef HAVE_EFI
+
bool is_efi_boot(void);
bool is_efi_secure_boot(void);
bool is_efi_secure_boot_setup_mode(void);
@@ -53,4 +55,76 @@ int efi_get_boot_options(uint16_t **options);
int efi_loader_get_device_part_uuid(sd_id128_t *u);
int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader);
+#else
+
+static inline bool is_efi_boot(void) {
+ return false;
+}
+
+static inline bool is_efi_secure_boot(void) {
+ return false;
+}
+
+static inline bool is_efi_secure_boot_setup_mode(void) {
+ return false;
+}
+
+static inline int efi_reboot_to_firmware_supported(void) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_get_reboot_to_firmware(void) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_set_reboot_to_firmware(bool value) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribute, void **value, size_t *size) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_set_variable(sd_id128_t vendor, const char *name, const void *value, size_t size) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *part_uuid, char **path, bool *active) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_add_boot_option(uint16_t id, const char *title, uint32_t part, uint64_t pstart, uint64_t psize, sd_id128_t part_uuid, const char *path) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_remove_boot_option(uint16_t id) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_get_boot_order(uint16_t **order) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_set_boot_order(uint16_t *order, size_t n) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_get_boot_options(uint16_t **options) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_loader_get_device_part_uuid(sd_id128_t *u) {
+ return -EOPNOTSUPP;
+}
+
+static inline int efi_loader_get_boot_usec(usec_t *firmware, usec_t *loader) {
+ return -EOPNOTSUPP;
+}
+
+#endif
+
char *efi_tilt_backslashes(char *s);
commit 9df49b33583e8a7d0a252bc5bd532fd2448ef0c8
Author: Tom Gundersen <teg at jklm.no>
Date: Fri Apr 10 19:43:36 2015 +0200
shared: efivars - is_efi_*() returns bool instead of int
There was a bug where is_efi_*() could return a negative error value, which would be treated as 'true',
just make this a bool in the helper library to avoid the problem.
diff --git a/src/shared/efivars.c b/src/shared/efivars.c
index b82f74a..2a925f3 100644
--- a/src/shared/efivars.c
+++ b/src/shared/efivars.c
@@ -87,12 +87,12 @@ static int read_flag(const char *varname) {
return r;
}
-int is_efi_secure_boot(void) {
- return read_flag("SecureBoot");
+bool is_efi_secure_boot(void) {
+ return read_flag("SecureBoot") > 0;
}
-int is_efi_secure_boot_setup_mode(void) {
- return read_flag("SetupMode");
+bool is_efi_secure_boot_setup_mode(void) {
+ return read_flag("SetupMode") > 0;
}
int efi_reboot_to_firmware_supported(void) {
diff --git a/src/shared/efivars.h b/src/shared/efivars.h
index e796bf4..420013a 100644
--- a/src/shared/efivars.h
+++ b/src/shared/efivars.h
@@ -33,8 +33,8 @@
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
bool is_efi_boot(void);
-int is_efi_secure_boot(void);
-int is_efi_secure_boot_setup_mode(void);
+bool is_efi_secure_boot(void);
+bool is_efi_secure_boot_setup_mode(void);
int efi_reboot_to_firmware_supported(void);
int efi_get_reboot_to_firmware(void);
int efi_set_reboot_to_firmware(bool value);
More information about the systemd-commits
mailing list