0032-efi-Add-secure-boot-detection.patch 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. From d7e54b2e5feee95d2f83058ed30d883c450d1473 Mon Sep 17 00:00:00 2001
  2. From: Daniel Kiper <daniel.kiper@oracle.com>
  3. Date: Thu, 3 Dec 2020 16:01:48 +0100
  4. Subject: [PATCH] efi: Add secure boot detection
  5. Introduce grub_efi_get_secureboot() function which returns whether
  6. UEFI Secure Boot is enabled or not on UEFI systems.
  7. Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
  8. Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
  9. Signed-off-by: Marco A Benatto <mbenatto@redhat.com>
  10. Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
  11. Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
  12. [Add changes to generated files]
  13. Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
  14. ---
  15. grub-core/Makefile.am | 1 +
  16. grub-core/Makefile.core.am | 14 +++---
  17. grub-core/Makefile.core.def | 1 +
  18. grub-core/Makefile.in | 102 ++++++++++++++++++++++++++---------------
  19. grub-core/kern/efi/sb.c | 109 ++++++++++++++++++++++++++++++++++++++++++++
  20. include/grub/efi/sb.h | 40 ++++++++++++++++
  21. po/POTFILES.in | 2 +
  22. 7 files changed, 225 insertions(+), 44 deletions(-)
  23. create mode 100644 grub-core/kern/efi/sb.c
  24. create mode 100644 include/grub/efi/sb.h
  25. diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am
  26. index 3ea8e7f..c6ba5b2 100644
  27. --- a/grub-core/Makefile.am
  28. +++ b/grub-core/Makefile.am
  29. @@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h
  30. KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h
  31. KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h
  32. KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h
  33. +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h
  34. KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h
  35. KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h
  36. KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h
  37. diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am
  38. index a217716..f28b753 100644
  39. --- a/grub-core/Makefile.core.am
  40. +++ b/grub-core/Makefile.core.am
  41. @@ -22421,7 +22421,7 @@ endif
  42. if COND_i386_efi
  43. platform_PROGRAMS += kernel.exec
  44. kernel_exec_SOURCES = kern/i386/efi/startup.S
  45. -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  46. +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/i386/efi/init.c bus/pci.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  47. nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
  48. kernel_exec_LDADD =
  49. kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL)
  50. @@ -22531,7 +22531,7 @@ endif
  51. if COND_x86_64_efi
  52. platform_PROGRAMS += kernel.exec
  53. kernel_exec_SOURCES = kern/x86_64/efi/startup.S
  54. -kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  55. +kernel_exec_SOURCES += kern/i386/efi/tsc.c kern/i386/tsc_pmtimer.c kern/x86_64/efi/callwrap.S kern/i386/efi/init.c bus/pci.c kern/x86_64/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  56. nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
  57. kernel_exec_LDADD =
  58. kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL)
  59. @@ -22707,7 +22707,7 @@ endif
  60. if COND_ia64_efi
  61. platform_PROGRAMS += kernel.exec
  62. kernel_exec_SOURCES =
  63. -kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  64. +kernel_exec_SOURCES += kern/ia64/efi/startup.S kern/ia64/efi/init.c kern/ia64/dl.c kern/ia64/dl_helper.c kern/ia64/cache.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  65. nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
  66. kernel_exec_LDADD =
  67. kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL) -fno-builtin -fpic -minline-int-divide-max-throughput
  68. @@ -22773,7 +22773,7 @@ endif
  69. if COND_arm_efi
  70. platform_PROGRAMS += kernel.exec
  71. kernel_exec_SOURCES = kern/arm/efi/startup.S
  72. -kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  73. +kernel_exec_SOURCES += kern/arm/efi/init.c kern/efi/fdt.c kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  74. nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
  75. kernel_exec_LDADD =
  76. kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL)
  77. @@ -22795,7 +22795,7 @@ endif
  78. if COND_arm64_efi
  79. platform_PROGRAMS += kernel.exec
  80. kernel_exec_SOURCES = kern/arm64/efi/startup.S
  81. -kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  82. +kernel_exec_SOURCES += kern/arm64/efi/init.c kern/efi/fdt.c kern/arm64/cache.c kern/arm64/cache_flush.S kern/arm64/dl.c kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  83. nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
  84. kernel_exec_LDADD =
  85. kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL)
  86. @@ -22839,7 +22839,7 @@ endif
  87. if COND_riscv32_efi
  88. platform_PROGRAMS += kernel.exec
  89. kernel_exec_SOURCES = kern/riscv/efi/startup.S
  90. -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  91. +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c lib/division.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  92. nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
  93. kernel_exec_LDADD =
  94. kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL)
  95. @@ -22861,7 +22861,7 @@ endif
  96. if COND_riscv64_efi
  97. platform_PROGRAMS += kernel.exec
  98. kernel_exec_SOURCES = kern/riscv/efi/startup.S
  99. -kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  100. +kernel_exec_SOURCES += kern/riscv/efi/init.c kern/efi/fdt.c kern/riscv/cache.c kern/riscv/cache_flush.S kern/riscv/dl.c disk/efi/efidisk.c kern/efi/efi.c kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/command.c kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c kern/parser.c kern/partition.c kern/rescue_parser.c kern/rescue_reader.c kern/term.c
  101. nodist_kernel_exec_SOURCES = symlist.c ## platform nodist sources
  102. kernel_exec_LDADD =
  103. kernel_exec_CFLAGS = $(AM_CFLAGS) $(CFLAGS_KERNEL)
  104. diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
  105. index 474a63e..abd26cf 100644
  106. --- a/grub-core/Makefile.core.def
  107. +++ b/grub-core/Makefile.core.def
  108. @@ -203,6 +203,7 @@ kernel = {
  109. efi = term/efi/console.c;
  110. efi = kern/acpi.c;
  111. efi = kern/efi/acpi.c;
  112. + efi = kern/efi/sb.c;
  113. i386_coreboot = kern/i386/pc/acpi.c;
  114. i386_multiboot = kern/i386/pc/acpi.c;
  115. i386_coreboot = kern/acpi.c;
  116. diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in
  117. index d287607..8fb81ee 100644
  118. --- a/grub-core/Makefile.in
  119. +++ b/grub-core/Makefile.in
  120. @@ -10468,32 +10468,33 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
  121. kern/arm64/cache_flush.S kern/arm64/dl.c \
  122. kern/arm64/dl_helper.c disk/efi/efidisk.c kern/efi/efi.c \
  123. kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c \
  124. - kern/efi/acpi.c kern/compiler-rt.c kern/mm.c kern/time.c \
  125. - kern/generic/millisleep.c kern/command.c kern/corecmd.c \
  126. - kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \
  127. - kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c \
  128. - kern/parser.c kern/partition.c kern/rescue_parser.c \
  129. - kern/rescue_reader.c kern/term.c kern/arm/startup.S \
  130. - kern/arm/coreboot/init.c kern/arm/coreboot/timer.c \
  131. - kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c \
  132. - term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c \
  133. - bus/spi/rk3288_spi.c commands/keylayouts.c \
  134. - kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c \
  135. - video/coreboot/cbfb.c kern/coreboot/mmap.c \
  136. - kern/coreboot/cbtable.c term/gfxterm.c font/font.c \
  137. - font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c \
  138. - video/fb/fbutil.c video/fb/video_fb.c video/video.c \
  139. - kern/arm/dl.c kern/arm/dl_helper.c kern/arm/cache_armv6.S \
  140. - kern/arm/cache_armv7.S kern/arm/cache.c kern/arm/compiler-rt.S \
  141. - lib/division.c kern/arm/efi/startup.S kern/arm/efi/init.c \
  142. - kern/arm/uboot/init.c kern/arm/uboot/uboot.S \
  143. - disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c \
  144. - kern/uboot/hw.c term/uboot/console.c term/terminfo.c \
  145. - term/tparm.c commands/extcmd.c lib/arg.c disk/host.c \
  146. - kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c \
  147. - osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c \
  148. - kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c \
  149. - kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c \
  150. + kern/efi/acpi.c kern/efi/sb.c kern/compiler-rt.c kern/mm.c \
  151. + kern/time.c kern/generic/millisleep.c kern/command.c \
  152. + kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c \
  153. + kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c \
  154. + kern/misc.c kern/parser.c kern/partition.c \
  155. + kern/rescue_parser.c kern/rescue_reader.c kern/term.c \
  156. + kern/arm/startup.S kern/arm/coreboot/init.c \
  157. + kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S \
  158. + lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c \
  159. + term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c \
  160. + commands/keylayouts.c kern/arm/coreboot/dma.c \
  161. + kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c \
  162. + kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c \
  163. + font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c \
  164. + video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c \
  165. + video/video.c kern/arm/dl.c kern/arm/dl_helper.c \
  166. + kern/arm/cache_armv6.S kern/arm/cache_armv7.S kern/arm/cache.c \
  167. + kern/arm/compiler-rt.S lib/division.c kern/arm/efi/startup.S \
  168. + kern/arm/efi/init.c kern/arm/uboot/init.c \
  169. + kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c \
  170. + kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c \
  171. + term/uboot/console.c term/terminfo.c term/tparm.c \
  172. + commands/extcmd.c lib/arg.c disk/host.c kern/emu/cache_s.S \
  173. + kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c \
  174. + osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c \
  175. + kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c \
  176. + kern/emu/mm.c kern/emu/time.c kern/emu/cache.c \
  177. osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c \
  178. osdep/emunet.c osdep/cputime.c kern/i386/coreboot/startup.S \
  179. kern/i386/coreboot/init.c kern/i386/pc/acpi.c \
  180. @@ -10580,6 +10581,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
  181. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \
  182. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \
  183. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \
  184. +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \
  185. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \
  186. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \
  187. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_FALSE@@COND_sparc64_ieee1275_FALSE@@COND_x86_64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \
  188. @@ -10651,6 +10653,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
  189. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \
  190. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \
  191. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \
  192. +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \
  193. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \
  194. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \
  195. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_FALSE@@COND_riscv64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \
  196. @@ -10686,6 +10689,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
  197. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \
  198. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \
  199. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \
  200. +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \
  201. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \
  202. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \
  203. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_FALSE@@COND_mips_arc_FALSE@@COND_mips_loongson_FALSE@@COND_mips_qemu_mips_FALSE@@COND_powerpc_ieee1275_FALSE@@COND_riscv32_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \
  204. @@ -10881,6 +10885,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
  205. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \
  206. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \
  207. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \
  208. +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \
  209. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \
  210. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \
  211. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_FALSE@@COND_i386_ieee1275_FALSE@@COND_i386_multiboot_FALSE@@COND_i386_pc_FALSE@@COND_i386_qemu_FALSE@@COND_i386_xen_FALSE@@COND_i386_xen_pvh_FALSE@@COND_ia64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \
  212. @@ -11109,6 +11114,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
  213. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \
  214. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \
  215. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \
  216. +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \
  217. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \
  218. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \
  219. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_FALSE@@COND_i386_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \
  220. @@ -11271,6 +11277,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
  221. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \
  222. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \
  223. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \
  224. +@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \
  225. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \
  226. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \
  227. @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \
  228. @@ -11360,6 +11367,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
  229. @COND_arm64_efi_TRUE@ term/efi/kernel_exec-console.$(OBJEXT) \
  230. @COND_arm64_efi_TRUE@ kern/kernel_exec-acpi.$(OBJEXT) \
  231. @COND_arm64_efi_TRUE@ kern/efi/kernel_exec-acpi.$(OBJEXT) \
  232. +@COND_arm64_efi_TRUE@ kern/efi/kernel_exec-sb.$(OBJEXT) \
  233. @COND_arm64_efi_TRUE@ kern/kernel_exec-compiler-rt.$(OBJEXT) \
  234. @COND_arm64_efi_TRUE@ kern/kernel_exec-mm.$(OBJEXT) \
  235. @COND_arm64_efi_TRUE@ kern/kernel_exec-time.$(OBJEXT) \
  236. @@ -16380,6 +16388,7 @@ KERNEL_HEADER_FILES = $(top_srcdir)/include/grub/cache.h \
  237. $(top_srcdir)/include/grub/device.h \
  238. $(top_srcdir)/include/grub/disk.h \
  239. $(top_srcdir)/include/grub/dl.h \
  240. + $(top_srcdir)/include/grub/efi/sb.h \
  241. $(top_srcdir)/include/grub/env.h \
  242. $(top_srcdir)/include/grub/env_private.h \
  243. $(top_srcdir)/include/grub/err.h \
  244. @@ -25612,7 +25621,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
  245. @COND_arm64_efi_TRUE@ kern/arm64/dl_helper.c disk/efi/efidisk.c \
  246. @COND_arm64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \
  247. @COND_arm64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \
  248. -@COND_arm64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \
  249. +@COND_arm64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
  250. @COND_arm64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \
  251. @COND_arm64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \
  252. @COND_arm64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \
  253. @@ -25661,8 +25670,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
  254. @COND_arm_efi_TRUE@ disk/efi/efidisk.c kern/efi/efi.c \
  255. @COND_arm_efi_TRUE@ kern/efi/init.c kern/efi/mm.c \
  256. @COND_arm_efi_TRUE@ term/efi/console.c kern/acpi.c \
  257. -@COND_arm_efi_TRUE@ kern/efi/acpi.c kern/compiler-rt.c \
  258. -@COND_arm_efi_TRUE@ kern/mm.c kern/time.c \
  259. +@COND_arm_efi_TRUE@ kern/efi/acpi.c kern/efi/sb.c \
  260. +@COND_arm_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \
  261. @COND_arm_efi_TRUE@ kern/generic/millisleep.c kern/command.c \
  262. @COND_arm_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \
  263. @COND_arm_efi_TRUE@ kern/dl.c kern/env.c kern/err.c kern/file.c \
  264. @@ -25739,7 +25748,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
  265. @COND_i386_efi_TRUE@ kern/i386/tsc_pit.c disk/efi/efidisk.c \
  266. @COND_i386_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \
  267. @COND_i386_efi_TRUE@ kern/efi/mm.c term/efi/console.c \
  268. -@COND_i386_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \
  269. +@COND_i386_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
  270. @COND_i386_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \
  271. @COND_i386_efi_TRUE@ kern/generic/millisleep.c kern/command.c \
  272. @COND_i386_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \
  273. @@ -25851,7 +25860,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
  274. @COND_ia64_efi_TRUE@ lib/division.c disk/efi/efidisk.c \
  275. @COND_ia64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \
  276. @COND_ia64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \
  277. -@COND_ia64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \
  278. +@COND_ia64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
  279. @COND_ia64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \
  280. @COND_ia64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \
  281. @COND_ia64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \
  282. @@ -25959,9 +25968,9 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
  283. @COND_riscv32_efi_TRUE@ disk/efi/efidisk.c kern/efi/efi.c \
  284. @COND_riscv32_efi_TRUE@ kern/efi/init.c kern/efi/mm.c \
  285. @COND_riscv32_efi_TRUE@ term/efi/console.c kern/acpi.c \
  286. -@COND_riscv32_efi_TRUE@ kern/efi/acpi.c kern/compiler-rt.c \
  287. -@COND_riscv32_efi_TRUE@ kern/mm.c kern/time.c \
  288. -@COND_riscv32_efi_TRUE@ kern/generic/millisleep.c \
  289. +@COND_riscv32_efi_TRUE@ kern/efi/acpi.c kern/efi/sb.c \
  290. +@COND_riscv32_efi_TRUE@ kern/compiler-rt.c kern/mm.c \
  291. +@COND_riscv32_efi_TRUE@ kern/time.c kern/generic/millisleep.c \
  292. @COND_riscv32_efi_TRUE@ kern/command.c kern/corecmd.c \
  293. @COND_riscv32_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \
  294. @COND_riscv32_efi_TRUE@ kern/env.c kern/err.c kern/file.c \
  295. @@ -25977,8 +25986,9 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
  296. @COND_riscv64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \
  297. @COND_riscv64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \
  298. @COND_riscv64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \
  299. -@COND_riscv64_efi_TRUE@ kern/compiler-rt.c kern/mm.c \
  300. -@COND_riscv64_efi_TRUE@ kern/time.c kern/generic/millisleep.c \
  301. +@COND_riscv64_efi_TRUE@ kern/efi/sb.c kern/compiler-rt.c \
  302. +@COND_riscv64_efi_TRUE@ kern/mm.c kern/time.c \
  303. +@COND_riscv64_efi_TRUE@ kern/generic/millisleep.c \
  304. @COND_riscv64_efi_TRUE@ kern/command.c kern/corecmd.c \
  305. @COND_riscv64_efi_TRUE@ kern/device.c kern/disk.c kern/dl.c \
  306. @COND_riscv64_efi_TRUE@ kern/env.c kern/err.c kern/file.c \
  307. @@ -26022,7 +26032,8 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
  308. @COND_x86_64_efi_TRUE@ kern/efi/efi.c kern/efi/init.c \
  309. @COND_x86_64_efi_TRUE@ kern/efi/mm.c term/efi/console.c \
  310. @COND_x86_64_efi_TRUE@ kern/acpi.c kern/efi/acpi.c \
  311. -@COND_x86_64_efi_TRUE@ kern/compiler-rt.c kern/mm.c kern/time.c \
  312. +@COND_x86_64_efi_TRUE@ kern/efi/sb.c kern/compiler-rt.c \
  313. +@COND_x86_64_efi_TRUE@ kern/mm.c kern/time.c \
  314. @COND_x86_64_efi_TRUE@ kern/generic/millisleep.c kern/command.c \
  315. @COND_x86_64_efi_TRUE@ kern/corecmd.c kern/device.c kern/disk.c \
  316. @COND_x86_64_efi_TRUE@ kern/dl.c kern/env.c kern/err.c \
  317. @@ -27989,6 +28000,8 @@ kern/kernel_exec-acpi.$(OBJEXT): kern/$(am__dirstamp) \
  318. kern/$(DEPDIR)/$(am__dirstamp)
  319. kern/efi/kernel_exec-acpi.$(OBJEXT): kern/efi/$(am__dirstamp) \
  320. kern/efi/$(DEPDIR)/$(am__dirstamp)
  321. +kern/efi/kernel_exec-sb.$(OBJEXT): kern/efi/$(am__dirstamp) \
  322. + kern/efi/$(DEPDIR)/$(am__dirstamp)
  323. kern/kernel_exec-compiler-rt.$(OBJEXT): kern/$(am__dirstamp) \
  324. kern/$(DEPDIR)/$(am__dirstamp)
  325. kern/kernel_exec-mm.$(OBJEXT): kern/$(am__dirstamp) \
  326. @@ -30994,6 +31007,7 @@ distclean-compile:
  327. @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-fdt.Po@am__quote@
  328. @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-init.Po@am__quote@
  329. @AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-mm.Po@am__quote@
  330. +@AMDEP_TRUE@@am__include@ @am__quote@kern/efi/$(DEPDIR)/kernel_exec-sb.Po@am__quote@
  331. @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/grub_emu-full.Po@am__quote@
  332. @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/grub_emu_lite-lite.Po@am__quote@
  333. @AMDEP_TRUE@@am__include@ @am__quote@kern/emu/$(DEPDIR)/kernel_exec-argp_common.Po@am__quote@
  334. @@ -35285,6 +35299,20 @@ kern/efi/kernel_exec-acpi.obj: kern/efi/acpi.c
  335. @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  336. @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-acpi.obj `if test -f 'kern/efi/acpi.c'; then $(CYGPATH_W) 'kern/efi/acpi.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/acpi.c'; fi`
  337. +kern/efi/kernel_exec-sb.o: kern/efi/sb.c
  338. +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/efi/kernel_exec-sb.o -MD -MP -MF kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo -c -o kern/efi/kernel_exec-sb.o `test -f 'kern/efi/sb.c' || echo '$(srcdir)/'`kern/efi/sb.c
  339. +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo kern/efi/$(DEPDIR)/kernel_exec-sb.Po
  340. +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/efi/sb.c' object='kern/efi/kernel_exec-sb.o' libtool=no @AMDEPBACKSLASH@
  341. +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  342. +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-sb.o `test -f 'kern/efi/sb.c' || echo '$(srcdir)/'`kern/efi/sb.c
  343. +
  344. +kern/efi/kernel_exec-sb.obj: kern/efi/sb.c
  345. +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/efi/kernel_exec-sb.obj -MD -MP -MF kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo -c -o kern/efi/kernel_exec-sb.obj `if test -f 'kern/efi/sb.c'; then $(CYGPATH_W) 'kern/efi/sb.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/sb.c'; fi`
  346. +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/efi/$(DEPDIR)/kernel_exec-sb.Tpo kern/efi/$(DEPDIR)/kernel_exec-sb.Po
  347. +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kern/efi/sb.c' object='kern/efi/kernel_exec-sb.obj' libtool=no @AMDEPBACKSLASH@
  348. +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  349. +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/efi/kernel_exec-sb.obj `if test -f 'kern/efi/sb.c'; then $(CYGPATH_W) 'kern/efi/sb.c'; else $(CYGPATH_W) '$(srcdir)/kern/efi/sb.c'; fi`
  350. +
  351. kern/kernel_exec-compiler-rt.o: kern/compiler-rt.c
  352. @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-compiler-rt.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-compiler-rt.Tpo -c -o kern/kernel_exec-compiler-rt.o `test -f 'kern/compiler-rt.c' || echo '$(srcdir)/'`kern/compiler-rt.c
  353. @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-compiler-rt.Tpo kern/$(DEPDIR)/kernel_exec-compiler-rt.Po
  354. diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c
  355. new file mode 100644
  356. index 0000000..19658d9
  357. --- /dev/null
  358. +++ b/grub-core/kern/efi/sb.c
  359. @@ -0,0 +1,109 @@
  360. +/*
  361. + * GRUB -- GRand Unified Bootloader
  362. + * Copyright (C) 2020 Free Software Foundation, Inc.
  363. + *
  364. + * GRUB is free software: you can redistribute it and/or modify
  365. + * it under the terms of the GNU General Public License as published by
  366. + * the Free Software Foundation, either version 3 of the License, or
  367. + * (at your option) any later version.
  368. + *
  369. + * GRUB is distributed in the hope that it will be useful,
  370. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  371. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  372. + * GNU General Public License for more details.
  373. + *
  374. + * You should have received a copy of the GNU General Public License
  375. + * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
  376. + *
  377. + * UEFI Secure Boot related checkings.
  378. + */
  379. +
  380. +#include <grub/efi/efi.h>
  381. +#include <grub/efi/pe32.h>
  382. +#include <grub/efi/sb.h>
  383. +#include <grub/err.h>
  384. +#include <grub/i386/linux.h>
  385. +#include <grub/mm.h>
  386. +#include <grub/types.h>
  387. +
  388. +/*
  389. + * Determine whether we're in secure boot mode.
  390. + *
  391. + * Please keep the logic in sync with the Linux kernel,
  392. + * drivers/firmware/efi/libstub/secureboot.c:efi_get_secureboot().
  393. + */
  394. +grub_uint8_t
  395. +grub_efi_get_secureboot (void)
  396. +{
  397. + static grub_efi_guid_t efi_variable_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID;
  398. + static grub_efi_guid_t efi_shim_lock_guid = GRUB_EFI_SHIM_LOCK_GUID;
  399. + grub_efi_status_t status;
  400. + grub_efi_uint32_t attr = 0;
  401. + grub_size_t size = 0;
  402. + grub_uint8_t *secboot = NULL;
  403. + grub_uint8_t *setupmode = NULL;
  404. + grub_uint8_t *moksbstate = NULL;
  405. + grub_uint8_t secureboot = GRUB_EFI_SECUREBOOT_MODE_UNKNOWN;
  406. + const char *secureboot_str = "UNKNOWN";
  407. +
  408. + status = grub_efi_get_variable ("SecureBoot", &efi_variable_guid,
  409. + &size, (void **) &secboot);
  410. +
  411. + if (status == GRUB_EFI_NOT_FOUND)
  412. + {
  413. + secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED;
  414. + goto out;
  415. + }
  416. +
  417. + if (status != GRUB_EFI_SUCCESS)
  418. + goto out;
  419. +
  420. + status = grub_efi_get_variable ("SetupMode", &efi_variable_guid,
  421. + &size, (void **) &setupmode);
  422. +
  423. + if (status != GRUB_EFI_SUCCESS)
  424. + goto out;
  425. +
  426. + if ((*secboot == 0) || (*setupmode == 1))
  427. + {
  428. + secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED;
  429. + goto out;
  430. + }
  431. +
  432. + /*
  433. + * See if a user has put the shim into insecure mode. If so, and if the
  434. + * variable doesn't have the runtime attribute set, we might as well
  435. + * honor that.
  436. + */
  437. + status = grub_efi_get_variable_with_attributes ("MokSBState", &efi_shim_lock_guid,
  438. + &size, (void **) &moksbstate, &attr);
  439. +
  440. + /* If it fails, we don't care why. Default to secure. */
  441. + if (status != GRUB_EFI_SUCCESS)
  442. + {
  443. + secureboot = GRUB_EFI_SECUREBOOT_MODE_ENABLED;
  444. + goto out;
  445. + }
  446. +
  447. + if (!(attr & GRUB_EFI_VARIABLE_RUNTIME_ACCESS) && *moksbstate == 1)
  448. + {
  449. + secureboot = GRUB_EFI_SECUREBOOT_MODE_DISABLED;
  450. + goto out;
  451. + }
  452. +
  453. + secureboot = GRUB_EFI_SECUREBOOT_MODE_ENABLED;
  454. +
  455. + out:
  456. + grub_free (moksbstate);
  457. + grub_free (setupmode);
  458. + grub_free (secboot);
  459. +
  460. + if (secureboot == GRUB_EFI_SECUREBOOT_MODE_DISABLED)
  461. + secureboot_str = "Disabled";
  462. + else if (secureboot == GRUB_EFI_SECUREBOOT_MODE_ENABLED)
  463. + secureboot_str = "Enabled";
  464. +
  465. + grub_dprintf ("efi", "UEFI Secure Boot state: %s\n", secureboot_str);
  466. +
  467. + return secureboot;
  468. +}
  469. diff --git a/include/grub/efi/sb.h b/include/grub/efi/sb.h
  470. new file mode 100644
  471. index 0000000..a33d985
  472. --- /dev/null
  473. +++ b/include/grub/efi/sb.h
  474. @@ -0,0 +1,40 @@
  475. +/*
  476. + * GRUB -- GRand Unified Bootloader
  477. + * Copyright (C) 2020 Free Software Foundation, Inc.
  478. + *
  479. + * GRUB is free software: you can redistribute it and/or modify
  480. + * it under the terms of the GNU General Public License as published by
  481. + * the Free Software Foundation, either version 3 of the License, or
  482. + * (at your option) any later version.
  483. + *
  484. + * GRUB is distributed in the hope that it will be useful,
  485. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  486. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  487. + * GNU General Public License for more details.
  488. + *
  489. + * You should have received a copy of the GNU General Public License
  490. + * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
  491. + */
  492. +
  493. +#ifndef GRUB_EFI_SB_H
  494. +#define GRUB_EFI_SB_H 1
  495. +
  496. +#include <grub/types.h>
  497. +#include <grub/dl.h>
  498. +
  499. +#define GRUB_EFI_SECUREBOOT_MODE_UNSET 0
  500. +#define GRUB_EFI_SECUREBOOT_MODE_UNKNOWN 1
  501. +#define GRUB_EFI_SECUREBOOT_MODE_DISABLED 2
  502. +#define GRUB_EFI_SECUREBOOT_MODE_ENABLED 3
  503. +
  504. +#ifdef GRUB_MACHINE_EFI
  505. +extern grub_uint8_t
  506. +EXPORT_FUNC (grub_efi_get_secureboot) (void);
  507. +#else
  508. +static inline grub_uint8_t
  509. +grub_efi_get_secureboot (void)
  510. +{
  511. + return GRUB_EFI_SECUREBOOT_MODE_UNSET;
  512. +}
  513. +#endif
  514. +#endif /* GRUB_EFI_SB_H */
  515. diff --git a/po/POTFILES.in b/po/POTFILES.in
  516. index 5574cbe..22543be 100644
  517. --- a/po/POTFILES.in
  518. +++ b/po/POTFILES.in
  519. @@ -266,6 +266,7 @@
  520. ./grub-core/kern/efi/fdt.c
  521. ./grub-core/kern/efi/init.c
  522. ./grub-core/kern/efi/mm.c
  523. +./grub-core/kern/efi/sb.c
  524. ./grub-core/kern/elf.c
  525. ./grub-core/kern/elfXX.c
  526. ./grub-core/kern/emu/argp_common.c
  527. @@ -1053,6 +1054,7 @@
  528. ./include/grub/efi/memory.h
  529. ./include/grub/efi/pci.h
  530. ./include/grub/efi/pe32.h
  531. +./include/grub/efi/sb.h
  532. ./include/grub/efi/tpm.h
  533. ./include/grub/efi/uga_draw.h
  534. ./include/grub/efiemu/efiemu.h
  535. --
  536. 2.14.2