xref: /OK3568_Linux_fs/buildroot/boot/grub2/0131-kern-buffer-Add-variable-sized-heap-buffer.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1From 030fb6c4fa354cdbd6a8d6903dfed5d36eaf3cb2 Mon Sep 17 00:00:00 2001
2From: Chris Coulson <chris.coulson@canonical.com>
3Date: Thu, 7 Jan 2021 15:15:43 +0000
4Subject: [PATCH] kern/buffer: Add variable sized heap buffer
5
6Add a new variable sized heap buffer type (grub_buffer_t) with simple
7operations for appending data, accessing the data and maintaining
8a read cursor.
9
10Signed-off-by: Chris Coulson <chris.coulson@canonical.com>
11Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
12[Add changes to generated files]
13Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
14---
15 grub-core/Makefile.core.am  |  46 +++---
16 grub-core/Makefile.core.def |   1 +
17 grub-core/Makefile.in       | 341 +++++++++++++++++++++++++-------------------
18 grub-core/kern/buffer.c     | 117 +++++++++++++++
19 include/grub/buffer.h       | 144 +++++++++++++++++++
20 po/POTFILES.in              |   2 +
21 6 files changed, 485 insertions(+), 166 deletions(-)
22 create mode 100644 grub-core/kern/buffer.c
23 create mode 100644 include/grub/buffer.h
24
25diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am
26index fbfb627..2fa9a8e 100644
27--- a/grub-core/Makefile.core.am
28+++ b/grub-core/Makefile.core.am
29@@ -22334,7 +22334,7 @@ gcry_whirlpool.marker: $(gcry_whirlpool_module_SOURCES) $(nodist_gcry_whirlpool_
30 if COND_emu
31 platform_PROGRAMS += kernel.exec
32 kernel_exec_SOURCES  =
33-kernel_exec_SOURCES += disk/host.c kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c osdep/emunet.c osdep/cputime.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
34+kernel_exec_SOURCES += disk/host.c kern/emu/cache_s.S kern/emu/hostdisk.c osdep/unix/hostdisk.c osdep/exec.c osdep/devmapper/hostdisk.c osdep/hostdisk.c kern/emu/hostfs.c kern/emu/main.c kern/emu/argp_common.c kern/emu/misc.c kern/emu/mm.c kern/emu/time.c kern/emu/cache.c osdep/emuconsole.c osdep/dl.c osdep/sleep.c osdep/init.c osdep/emunet.c osdep/cputime.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/buffer.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 kern/verifiers.c
35 nodist_kernel_exec_SOURCES  =  ## platform nodist sources
36 kernel_exec_LDADD  =
37 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL) $(CFLAGS_GNULIB)
38@@ -22356,7 +22356,7 @@ endif
39 if COND_i386_pc
40 platform_PROGRAMS += kernel.exec
41 kernel_exec_SOURCES  = kern/i386/pc/startup.S
42-kernel_exec_SOURCES += kern/i386/pc/init.c kern/i386/pc/mmap.c term/i386/pc/console.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.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 kern/verifiers.c
43+kernel_exec_SOURCES += kern/i386/pc/init.c kern/i386/pc/mmap.c term/i386/pc/console.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
44 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
45 kernel_exec_LDADD  =
46 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
47@@ -22378,7 +22378,7 @@ endif
48 if COND_i386_efi
49 platform_PROGRAMS += kernel.exec
50 kernel_exec_SOURCES  = kern/i386/efi/startup.S
51-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/lockdown.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 kern/verifiers.c
52+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/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
53 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
54 kernel_exec_LDADD  =
55 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
56@@ -22400,7 +22400,7 @@ endif
57 if COND_i386_qemu
58 platform_PROGRAMS += kernel.exec
59 kernel_exec_SOURCES  = kern/i386/qemu/startup.S
60-kernel_exec_SOURCES += kern/i386/qemu/init.c bus/pci.c kern/vga_init.c kern/i386/qemu/mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.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 kern/verifiers.c
61+kernel_exec_SOURCES += kern/i386/qemu/init.c bus/pci.c kern/vga_init.c kern/i386/qemu/mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
62 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
63 kernel_exec_LDADD  =
64 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
65@@ -22422,7 +22422,7 @@ endif
66 if COND_i386_coreboot
67 platform_PROGRAMS += kernel.exec
68 kernel_exec_SOURCES  = kern/i386/coreboot/startup.S
69-kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/tsc_pmtimer.c kern/i386/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.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 kern/verifiers.c
70+kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/tsc_pmtimer.c kern/i386/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
71 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
72 kernel_exec_LDADD  =
73 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
74@@ -22444,7 +22444,7 @@ endif
75 if COND_i386_multiboot
76 platform_PROGRAMS += kernel.exec
77 kernel_exec_SOURCES  = kern/i386/coreboot/startup.S
78-kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/multiboot_mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.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 kern/verifiers.c
79+kernel_exec_SOURCES += kern/i386/coreboot/init.c kern/i386/pc/acpi.c kern/acpi.c kern/i386/multiboot_mmap.c term/i386/pc/vga_text.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
80 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
81 kernel_exec_LDADD  =
82 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
83@@ -22466,7 +22466,7 @@ endif
84 if COND_i386_ieee1275
85 platform_PROGRAMS += kernel.exec
86 kernel_exec_SOURCES  = kern/i386/ieee1275/startup.S
87-kernel_exec_SOURCES += disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
88+kernel_exec_SOURCES += disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c kern/i386/dl.c kern/i386/tsc.c kern/i386/tsc_pit.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
89 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
90 kernel_exec_LDADD  =
91 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
92@@ -22488,7 +22488,7 @@ endif
93 if COND_x86_64_efi
94 platform_PROGRAMS += kernel.exec
95 kernel_exec_SOURCES  = kern/x86_64/efi/startup.S
96-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/lockdown.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 kern/verifiers.c
97+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/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
98 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
99 kernel_exec_LDADD  =
100 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
101@@ -22510,7 +22510,7 @@ endif
102 if COND_i386_xen
103 platform_PROGRAMS += kernel.exec
104 kernel_exec_SOURCES  = kern/i386/xen/startup.S
105-kernel_exec_SOURCES += kern/i386/dl.c kern/i386/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
106+kernel_exec_SOURCES += kern/i386/dl.c kern/i386/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
107 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
108 kernel_exec_LDADD  =
109 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
110@@ -22532,7 +22532,7 @@ endif
111 if COND_x86_64_xen
112 platform_PROGRAMS += kernel.exec
113 kernel_exec_SOURCES  = kern/x86_64/xen/startup.S
114-kernel_exec_SOURCES += kern/x86_64/dl.c kern/x86_64/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
115+kernel_exec_SOURCES += kern/x86_64/dl.c kern/x86_64/xen/hypercall.S kern/i386/tsc.c kern/i386/xen/tsc.c kern/xen/init.c term/xen/console.c disk/xen/xendisk.c commands/boot.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
116 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
117 kernel_exec_LDADD  =
118 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
119@@ -22554,7 +22554,7 @@ endif
120 if COND_i386_xen_pvh
121 platform_PROGRAMS += kernel.exec
122 kernel_exec_SOURCES  = kern/i386/xen/startup_pvh.S
123-kernel_exec_SOURCES += kern/i386/dl.c commands/boot.c disk/xen/xendisk.c kern/i386/tsc.c kern/i386/xen/tsc.c kern/i386/xen/pvh.c kern/xen/init.c term/xen/console.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
124+kernel_exec_SOURCES += kern/i386/dl.c commands/boot.c disk/xen/xendisk.c kern/i386/tsc.c kern/i386/xen/tsc.c kern/i386/xen/pvh.c kern/xen/init.c term/xen/console.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
125 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
126 kernel_exec_LDADD  =
127 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
128@@ -22576,7 +22576,7 @@ endif
129 if COND_mips_loongson
130 platform_PROGRAMS += kernel.exec
131 kernel_exec_SOURCES  = kern/mips/startup.S
132-kernel_exec_SOURCES += term/ns8250.c bus/bonito.c bus/cs5536.c bus/pci.c kern/mips/loongson/init.c term/at_keyboard.c term/ps2.c commands/boot.c term/serial.c video/sm712.c video/sis315pro.c video/radeon_fuloong2e.c video/radeon_yeeloong3a.c commands/keylayouts.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
133+kernel_exec_SOURCES += term/ns8250.c bus/bonito.c bus/cs5536.c bus/pci.c kern/mips/loongson/init.c term/at_keyboard.c term/ps2.c commands/boot.c term/serial.c video/sm712.c video/sis315pro.c video/radeon_fuloong2e.c video/radeon_yeeloong3a.c commands/keylayouts.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
134 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
135 kernel_exec_LDADD  =
136 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
137@@ -22598,7 +22598,7 @@ endif
138 if COND_sparc64_ieee1275
139 platform_PROGRAMS += kernel.exec
140 kernel_exec_SOURCES  = kern/sparc64/ieee1275/crt0.S
141-kernel_exec_SOURCES += kern/sparc64/cache.S kern/sparc64/dl.c kern/sparc64/ieee1275/ieee1275.c disk/ieee1275/obdisk.c disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
142+kernel_exec_SOURCES += kern/sparc64/cache.S kern/sparc64/dl.c kern/sparc64/ieee1275/ieee1275.c disk/ieee1275/obdisk.c disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
143 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
144 kernel_exec_LDADD  =
145 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
146@@ -22620,7 +22620,7 @@ endif
147 if COND_powerpc_ieee1275
148 platform_PROGRAMS += kernel.exec
149 kernel_exec_SOURCES  = kern/powerpc/ieee1275/startup.S
150-kernel_exec_SOURCES += kern/powerpc/cache.S kern/powerpc/dl.c kern/powerpc/compiler-rt.S disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
151+kernel_exec_SOURCES += kern/powerpc/cache.S kern/powerpc/dl.c kern/powerpc/compiler-rt.S disk/ieee1275/ofdisk.c kern/ieee1275/cmain.c kern/ieee1275/ieee1275.c kern/ieee1275/mmap.c kern/ieee1275/openfw.c term/ieee1275/console.c kern/ieee1275/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
152 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
153 kernel_exec_LDADD  =
154 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
155@@ -22642,7 +22642,7 @@ endif
156 if COND_mips_arc
157 platform_PROGRAMS += kernel.exec
158 kernel_exec_SOURCES  = kern/mips/startup.S
159-kernel_exec_SOURCES += kern/mips/arc/init.c term/arc/console.c disk/arc/arcdisk.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
160+kernel_exec_SOURCES += kern/mips/arc/init.c term/arc/console.c disk/arc/arcdisk.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
161 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
162 kernel_exec_LDADD  =
163 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
164@@ -22664,7 +22664,7 @@ endif
165 if COND_ia64_efi
166 platform_PROGRAMS += kernel.exec
167 kernel_exec_SOURCES  =
168-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/lockdown.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 kern/verifiers.c
169+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/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
170 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
171 kernel_exec_LDADD  =
172 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL) -fno-builtin -fpic -minline-int-divide-max-throughput
173@@ -22686,7 +22686,7 @@ endif
174 if COND_mips_qemu_mips
175 platform_PROGRAMS += kernel.exec
176 kernel_exec_SOURCES  = kern/mips/startup.S
177-kernel_exec_SOURCES += kern/mips/qemu_mips/init.c term/ns8250.c term/serial.c term/at_keyboard.c term/ps2.c commands/boot.c commands/keylayouts.c term/i386/pc/vga_text.c kern/vga_init.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
178+kernel_exec_SOURCES += kern/mips/qemu_mips/init.c term/ns8250.c term/serial.c term/at_keyboard.c term/ps2.c commands/boot.c commands/keylayouts.c term/i386/pc/vga_text.c kern/vga_init.c kern/generic/rtc_get_time_ms.c kern/mips/cache.S kern/mips/dl.c kern/mips/init.c term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
179 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
180 kernel_exec_LDADD  =
181 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
182@@ -22708,7 +22708,7 @@ endif
183 if COND_arm_uboot
184 platform_PROGRAMS += kernel.exec
185 kernel_exec_SOURCES  = kern/arm/startup.S
186-kernel_exec_SOURCES += kern/arm/uboot/init.c kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c term/uboot/console.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 term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.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 kern/verifiers.c
187+kernel_exec_SOURCES += kern/arm/uboot/init.c kern/arm/uboot/uboot.S disk/uboot/ubootdisk.c kern/uboot/uboot.c kern/uboot/init.c kern/uboot/hw.c term/uboot/console.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 term/terminfo.c term/tparm.c commands/extcmd.c lib/arg.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
188 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
189 kernel_exec_LDADD  =
190 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
191@@ -22730,7 +22730,7 @@ endif
192 if COND_arm_efi
193 platform_PROGRAMS += kernel.exec
194 kernel_exec_SOURCES  = kern/arm/efi/startup.S
195-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/lockdown.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 kern/verifiers.c
196+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/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
197 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
198 kernel_exec_LDADD  =
199 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
200@@ -22752,7 +22752,7 @@ endif
201 if COND_arm64_efi
202 platform_PROGRAMS += kernel.exec
203 kernel_exec_SOURCES  = kern/arm64/efi/startup.S
204-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/lockdown.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 kern/verifiers.c
205+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/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
206 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
207 kernel_exec_LDADD  =
208 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
209@@ -22774,7 +22774,7 @@ endif
210 if COND_arm_coreboot
211 platform_PROGRAMS += kernel.exec
212 kernel_exec_SOURCES  = kern/arm/startup.S
213-kernel_exec_SOURCES += kern/arm/coreboot/init.c kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c commands/keylayouts.c kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.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 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 kern/verifiers.c
214+kernel_exec_SOURCES += kern/arm/coreboot/init.c kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c commands/keylayouts.c kern/arm/coreboot/dma.c kern/arm/coreboot/cbtable.c video/coreboot/cbfb.c kern/coreboot/mmap.c kern/coreboot/cbtable.c term/gfxterm.c font/font.c font/font_cmd.c io/bufio.c video/fb/fbblit.c video/fb/fbfill.c video/fb/fbutil.c video/fb/video_fb.c video/video.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 kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
215 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
216 kernel_exec_LDADD  =
217 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
218@@ -22796,7 +22796,7 @@ endif
219 if COND_riscv32_efi
220 platform_PROGRAMS += kernel.exec
221 kernel_exec_SOURCES  = kern/riscv/efi/startup.S
222-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/lockdown.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 kern/verifiers.c
223+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/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
224 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
225 kernel_exec_LDADD  =
226 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
227@@ -22818,7 +22818,7 @@ endif
228 if COND_riscv64_efi
229 platform_PROGRAMS += kernel.exec
230 kernel_exec_SOURCES  = kern/riscv/efi/startup.S
231-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/lockdown.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 kern/verifiers.c
232+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/lockdown.c kern/compiler-rt.c kern/mm.c kern/time.c kern/generic/millisleep.c kern/buffer.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 kern/verifiers.c
233 nodist_kernel_exec_SOURCES  = symlist.c  ## platform nodist sources
234 kernel_exec_LDADD  =
235 kernel_exec_CFLAGS  = $(AM_CFLAGS) $(CFLAGS_KERNEL)
236diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
237index ee8dc55..291b58a 100644
238--- a/grub-core/Makefile.core.def
239+++ b/grub-core/Makefile.core.def
240@@ -123,6 +123,7 @@ kernel = {
241   riscv32_efi_startup = kern/riscv/efi/startup.S;
242   riscv64_efi_startup = kern/riscv/efi/startup.S;
243
244+  common = kern/buffer.c;
245   common = kern/command.c;
246   common = kern/corecmd.c;
247   common = kern/device.c;
248diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in
249index ac400ea..1f8133b 100644
250--- a/grub-core/Makefile.in
251+++ b/grub-core/Makefile.in
252@@ -10459,12 +10459,12 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
253 	kern/efi/init.c kern/efi/mm.c term/efi/console.c kern/acpi.c \
254 	kern/efi/acpi.c kern/efi/sb.c kern/lockdown.c \
255 	kern/compiler-rt.c kern/mm.c kern/time.c \
256-	kern/generic/millisleep.c kern/command.c kern/corecmd.c \
257-	kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c \
258-	kern/file.c kern/fs.c kern/list.c kern/main.c kern/misc.c \
259-	kern/parser.c kern/partition.c kern/rescue_parser.c \
260-	kern/rescue_reader.c kern/term.c kern/verifiers.c \
261-	kern/arm/startup.S kern/arm/coreboot/init.c \
262+	kern/generic/millisleep.c kern/buffer.c kern/command.c \
263+	kern/corecmd.c kern/device.c kern/disk.c kern/dl.c kern/env.c \
264+	kern/err.c kern/file.c kern/fs.c kern/list.c kern/main.c \
265+	kern/misc.c kern/parser.c kern/partition.c \
266+	kern/rescue_parser.c kern/rescue_reader.c kern/term.c \
267+	kern/verifiers.c kern/arm/startup.S kern/arm/coreboot/init.c \
268 	kern/arm/coreboot/timer.c kern/arm/coreboot/coreboot.S \
269 	lib/fdt.c bus/fdt.c term/ps2.c term/arm/pl050.c \
270 	term/arm/cros.c term/arm/cros_ec.c bus/spi/rk3288_spi.c \
271@@ -10538,6 +10538,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
272 @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_FALSE@@COND_x86_64_xen_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
273 @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_FALSE@@COND_x86_64_xen_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
274 @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_FALSE@@COND_x86_64_xen_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
275+@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_FALSE@@COND_x86_64_xen_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
276 @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_FALSE@@COND_x86_64_xen_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
277 @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_FALSE@@COND_x86_64_xen_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
278 @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_FALSE@@COND_x86_64_xen_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
279@@ -10578,6 +10579,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
280 @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) \
281 @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) \
282 @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/generic/kernel_exec-millisleep.$(OBJEXT) \
283+@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-buffer.$(OBJEXT) \
284 @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-command.$(OBJEXT) \
285 @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-corecmd.$(OBJEXT) \
286 @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-device.$(OBJEXT) \
287@@ -10616,6 +10618,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
288 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
289 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
290 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
291+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
292 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
293 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
294 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
295@@ -10653,6 +10656,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
296 @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) \
297 @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) \
298 @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/generic/kernel_exec-millisleep.$(OBJEXT) \
299+@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-buffer.$(OBJEXT) \
300 @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-command.$(OBJEXT) \
301 @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-corecmd.$(OBJEXT) \
302 @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-device.$(OBJEXT) \
303@@ -10691,6 +10695,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
304 @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) \
305 @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) \
306 @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/generic/kernel_exec-millisleep.$(OBJEXT) \
307+@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-buffer.$(OBJEXT) \
308 @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-command.$(OBJEXT) \
309 @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-corecmd.$(OBJEXT) \
310 @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-device.$(OBJEXT) \
311@@ -10728,6 +10733,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
312 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
313 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
314 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
315+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
316 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
317 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
318 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
319@@ -10768,6 +10774,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
320 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
321 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
322 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
323+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
324 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
325 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
326 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
327@@ -10822,6 +10829,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
328 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
329 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
330 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
331+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
332 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
333 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
334 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
335@@ -10856,6 +10864,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
336 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
337 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
338 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
339+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
340 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
341 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
342 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
343@@ -10893,6 +10902,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
344 @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) \
345 @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) \
346 @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/generic/kernel_exec-millisleep.$(OBJEXT) \
347+@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-buffer.$(OBJEXT) \
348 @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-command.$(OBJEXT) \
349 @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-corecmd.$(OBJEXT) \
350 @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-device.$(OBJEXT) \
351@@ -10928,6 +10938,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
352 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
353 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
354 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
355+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
356 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
357 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
358 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
359@@ -10963,6 +10974,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
360 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
361 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
362 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
363+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
364 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
365 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
366 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
367@@ -10994,6 +11006,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
368 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
369 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
370 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
371+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
372 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
373 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
374 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
375@@ -11023,6 +11036,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
376 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
377 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
378 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
379+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
380 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
381 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
382 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
383@@ -11054,6 +11068,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
384 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
385 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
386 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
387+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
388 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
389 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
390 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
391@@ -11091,6 +11106,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
392 @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_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
393 @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_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
394 @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_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
395+@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_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
396 @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_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
397 @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_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
398 @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_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
399@@ -11130,6 +11146,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
400 @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) \
401 @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) \
402 @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/generic/kernel_exec-millisleep.$(OBJEXT) \
403+@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-buffer.$(OBJEXT) \
404 @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-command.$(OBJEXT) \
405 @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-corecmd.$(OBJEXT) \
406 @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-device.$(OBJEXT) \
407@@ -11174,6 +11191,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
408 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
409 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
410 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
411+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
412 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
413 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
414 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_FALSE@@COND_i386_coreboot_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
415@@ -11216,6 +11234,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
416 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@	term/kernel_exec-tparm.$(OBJEXT) \
417 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@	commands/kernel_exec-extcmd.$(OBJEXT) \
418 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@	lib/kernel_exec-arg.$(OBJEXT) \
419+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
420 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
421 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
422 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_FALSE@@COND_emu_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
423@@ -11257,6 +11276,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
424 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
425 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
426 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
427+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
428 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
429 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
430 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_FALSE@@COND_arm_uboot_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
431@@ -11298,6 +11318,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
432 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
433 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
434 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
435+@COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
436 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
437 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
438 @COND_arm64_efi_FALSE@@COND_arm_coreboot_FALSE@@COND_arm_efi_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
439@@ -11353,6 +11374,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
440 @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
441 @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
442 @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
443+@COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
444 @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
445 @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
446 @COND_arm64_efi_FALSE@@COND_arm_coreboot_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
447@@ -11391,6 +11413,7 @@ am__kernel_exec_SOURCES_DIST = kern/arm64/efi/startup.S \
448 @COND_arm64_efi_TRUE@	kern/kernel_exec-mm.$(OBJEXT) \
449 @COND_arm64_efi_TRUE@	kern/kernel_exec-time.$(OBJEXT) \
450 @COND_arm64_efi_TRUE@	kern/generic/kernel_exec-millisleep.$(OBJEXT) \
451+@COND_arm64_efi_TRUE@	kern/kernel_exec-buffer.$(OBJEXT) \
452 @COND_arm64_efi_TRUE@	kern/kernel_exec-command.$(OBJEXT) \
453 @COND_arm64_efi_TRUE@	kern/kernel_exec-corecmd.$(OBJEXT) \
454 @COND_arm64_efi_TRUE@	kern/kernel_exec-device.$(OBJEXT) \
455@@ -25607,11 +25630,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
456 @COND_arm64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
457 @COND_arm64_efi_TRUE@	kern/lockdown.c kern/compiler-rt.c \
458 @COND_arm64_efi_TRUE@	kern/mm.c kern/time.c \
459-@COND_arm64_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
460-@COND_arm64_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
461-@COND_arm64_efi_TRUE@	kern/dl.c kern/env.c kern/err.c \
462-@COND_arm64_efi_TRUE@	kern/file.c kern/fs.c kern/list.c \
463-@COND_arm64_efi_TRUE@	kern/main.c kern/misc.c kern/parser.c \
464+@COND_arm64_efi_TRUE@	kern/generic/millisleep.c kern/buffer.c \
465+@COND_arm64_efi_TRUE@	kern/command.c kern/corecmd.c \
466+@COND_arm64_efi_TRUE@	kern/device.c kern/disk.c kern/dl.c \
467+@COND_arm64_efi_TRUE@	kern/env.c kern/err.c kern/file.c \
468+@COND_arm64_efi_TRUE@	kern/fs.c kern/list.c kern/main.c \
469+@COND_arm64_efi_TRUE@	kern/misc.c kern/parser.c \
470 @COND_arm64_efi_TRUE@	kern/partition.c kern/rescue_parser.c \
471 @COND_arm64_efi_TRUE@	kern/rescue_reader.c kern/term.c \
472 @COND_arm64_efi_TRUE@	kern/verifiers.c
473@@ -25639,12 +25663,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
474 @COND_arm_coreboot_TRUE@	kern/arm/compiler-rt.S lib/division.c \
475 @COND_arm_coreboot_TRUE@	kern/compiler-rt.c kern/mm.c \
476 @COND_arm_coreboot_TRUE@	kern/time.c kern/generic/millisleep.c \
477-@COND_arm_coreboot_TRUE@	kern/command.c kern/corecmd.c \
478-@COND_arm_coreboot_TRUE@	kern/device.c kern/disk.c kern/dl.c \
479-@COND_arm_coreboot_TRUE@	kern/env.c kern/err.c kern/file.c \
480-@COND_arm_coreboot_TRUE@	kern/fs.c kern/list.c kern/main.c \
481-@COND_arm_coreboot_TRUE@	kern/misc.c kern/parser.c \
482-@COND_arm_coreboot_TRUE@	kern/partition.c kern/rescue_parser.c \
483+@COND_arm_coreboot_TRUE@	kern/buffer.c kern/command.c \
484+@COND_arm_coreboot_TRUE@	kern/corecmd.c kern/device.c \
485+@COND_arm_coreboot_TRUE@	kern/disk.c kern/dl.c kern/env.c \
486+@COND_arm_coreboot_TRUE@	kern/err.c kern/file.c kern/fs.c \
487+@COND_arm_coreboot_TRUE@	kern/list.c kern/main.c kern/misc.c \
488+@COND_arm_coreboot_TRUE@	kern/parser.c kern/partition.c \
489+@COND_arm_coreboot_TRUE@	kern/rescue_parser.c \
490 @COND_arm_coreboot_TRUE@	kern/rescue_reader.c kern/term.c \
491 @COND_arm_coreboot_TRUE@	kern/verifiers.c
492 @COND_arm_efi_TRUE@kernel_exec_SOURCES = kern/arm/efi/startup.S \
493@@ -25659,13 +25684,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
494 @COND_arm_efi_TRUE@	kern/efi/acpi.c kern/efi/sb.c \
495 @COND_arm_efi_TRUE@	kern/lockdown.c kern/compiler-rt.c \
496 @COND_arm_efi_TRUE@	kern/mm.c kern/time.c \
497-@COND_arm_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
498-@COND_arm_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
499-@COND_arm_efi_TRUE@	kern/dl.c kern/env.c kern/err.c kern/file.c \
500-@COND_arm_efi_TRUE@	kern/fs.c kern/list.c kern/main.c \
501-@COND_arm_efi_TRUE@	kern/misc.c kern/parser.c kern/partition.c \
502-@COND_arm_efi_TRUE@	kern/rescue_parser.c kern/rescue_reader.c \
503-@COND_arm_efi_TRUE@	kern/term.c kern/verifiers.c
504+@COND_arm_efi_TRUE@	kern/generic/millisleep.c kern/buffer.c \
505+@COND_arm_efi_TRUE@	kern/command.c kern/corecmd.c kern/device.c \
506+@COND_arm_efi_TRUE@	kern/disk.c kern/dl.c kern/env.c kern/err.c \
507+@COND_arm_efi_TRUE@	kern/file.c kern/fs.c kern/list.c \
508+@COND_arm_efi_TRUE@	kern/main.c kern/misc.c kern/parser.c \
509+@COND_arm_efi_TRUE@	kern/partition.c kern/rescue_parser.c \
510+@COND_arm_efi_TRUE@	kern/rescue_reader.c kern/term.c \
511+@COND_arm_efi_TRUE@	kern/verifiers.c
512 @COND_arm_uboot_TRUE@kernel_exec_SOURCES = kern/arm/startup.S \
513 @COND_arm_uboot_TRUE@	kern/arm/uboot/init.c \
514 @COND_arm_uboot_TRUE@	kern/arm/uboot/uboot.S \
515@@ -25679,11 +25705,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
516 @COND_arm_uboot_TRUE@	term/terminfo.c term/tparm.c \
517 @COND_arm_uboot_TRUE@	commands/extcmd.c lib/arg.c \
518 @COND_arm_uboot_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
519-@COND_arm_uboot_TRUE@	kern/generic/millisleep.c kern/command.c \
520-@COND_arm_uboot_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
521-@COND_arm_uboot_TRUE@	kern/dl.c kern/env.c kern/err.c \
522-@COND_arm_uboot_TRUE@	kern/file.c kern/fs.c kern/list.c \
523-@COND_arm_uboot_TRUE@	kern/main.c kern/misc.c kern/parser.c \
524+@COND_arm_uboot_TRUE@	kern/generic/millisleep.c kern/buffer.c \
525+@COND_arm_uboot_TRUE@	kern/command.c kern/corecmd.c \
526+@COND_arm_uboot_TRUE@	kern/device.c kern/disk.c kern/dl.c \
527+@COND_arm_uboot_TRUE@	kern/env.c kern/err.c kern/file.c \
528+@COND_arm_uboot_TRUE@	kern/fs.c kern/list.c kern/main.c \
529+@COND_arm_uboot_TRUE@	kern/misc.c kern/parser.c \
530 @COND_arm_uboot_TRUE@	kern/partition.c kern/rescue_parser.c \
531 @COND_arm_uboot_TRUE@	kern/rescue_reader.c kern/term.c \
532 @COND_arm_uboot_TRUE@	kern/verifiers.c
533@@ -25696,11 +25723,11 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
534 @COND_emu_TRUE@	kern/emu/cache.c osdep/emuconsole.c osdep/dl.c \
535 @COND_emu_TRUE@	osdep/sleep.c osdep/init.c osdep/emunet.c \
536 @COND_emu_TRUE@	osdep/cputime.c term/terminfo.c term/tparm.c \
537-@COND_emu_TRUE@	commands/extcmd.c lib/arg.c kern/command.c \
538-@COND_emu_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
539-@COND_emu_TRUE@	kern/dl.c kern/env.c kern/err.c kern/file.c \
540-@COND_emu_TRUE@	kern/fs.c kern/list.c kern/main.c kern/misc.c \
541-@COND_emu_TRUE@	kern/parser.c kern/partition.c \
542+@COND_emu_TRUE@	commands/extcmd.c lib/arg.c kern/buffer.c \
543+@COND_emu_TRUE@	kern/command.c kern/corecmd.c kern/device.c \
544+@COND_emu_TRUE@	kern/disk.c kern/dl.c kern/env.c kern/err.c \
545+@COND_emu_TRUE@	kern/file.c kern/fs.c kern/list.c kern/main.c \
546+@COND_emu_TRUE@	kern/misc.c kern/parser.c kern/partition.c \
547 @COND_emu_TRUE@	kern/rescue_parser.c kern/rescue_reader.c \
548 @COND_emu_TRUE@	kern/term.c kern/verifiers.c
549 @COND_i386_coreboot_TRUE@kernel_exec_SOURCES =  \
550@@ -25721,12 +25748,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
551 @COND_i386_coreboot_TRUE@	kern/i386/tsc_pit.c \
552 @COND_i386_coreboot_TRUE@	kern/compiler-rt.c kern/mm.c \
553 @COND_i386_coreboot_TRUE@	kern/time.c kern/generic/millisleep.c \
554-@COND_i386_coreboot_TRUE@	kern/command.c kern/corecmd.c \
555-@COND_i386_coreboot_TRUE@	kern/device.c kern/disk.c kern/dl.c \
556-@COND_i386_coreboot_TRUE@	kern/env.c kern/err.c kern/file.c \
557-@COND_i386_coreboot_TRUE@	kern/fs.c kern/list.c kern/main.c \
558-@COND_i386_coreboot_TRUE@	kern/misc.c kern/parser.c \
559-@COND_i386_coreboot_TRUE@	kern/partition.c kern/rescue_parser.c \
560+@COND_i386_coreboot_TRUE@	kern/buffer.c kern/command.c \
561+@COND_i386_coreboot_TRUE@	kern/corecmd.c kern/device.c \
562+@COND_i386_coreboot_TRUE@	kern/disk.c kern/dl.c kern/env.c \
563+@COND_i386_coreboot_TRUE@	kern/err.c kern/file.c kern/fs.c \
564+@COND_i386_coreboot_TRUE@	kern/list.c kern/main.c kern/misc.c \
565+@COND_i386_coreboot_TRUE@	kern/parser.c kern/partition.c \
566+@COND_i386_coreboot_TRUE@	kern/rescue_parser.c \
567 @COND_i386_coreboot_TRUE@	kern/rescue_reader.c kern/term.c \
568 @COND_i386_coreboot_TRUE@	kern/verifiers.c
569 @COND_i386_efi_TRUE@kernel_exec_SOURCES = kern/i386/efi/startup.S \
570@@ -25740,14 +25768,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
571 @COND_i386_efi_TRUE@	kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
572 @COND_i386_efi_TRUE@	kern/lockdown.c kern/compiler-rt.c \
573 @COND_i386_efi_TRUE@	kern/mm.c kern/time.c \
574-@COND_i386_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
575-@COND_i386_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
576-@COND_i386_efi_TRUE@	kern/dl.c kern/env.c kern/err.c \
577-@COND_i386_efi_TRUE@	kern/file.c kern/fs.c kern/list.c \
578-@COND_i386_efi_TRUE@	kern/main.c kern/misc.c kern/parser.c \
579-@COND_i386_efi_TRUE@	kern/partition.c kern/rescue_parser.c \
580-@COND_i386_efi_TRUE@	kern/rescue_reader.c kern/term.c \
581-@COND_i386_efi_TRUE@	kern/verifiers.c
582+@COND_i386_efi_TRUE@	kern/generic/millisleep.c kern/buffer.c \
583+@COND_i386_efi_TRUE@	kern/command.c kern/corecmd.c \
584+@COND_i386_efi_TRUE@	kern/device.c kern/disk.c kern/dl.c \
585+@COND_i386_efi_TRUE@	kern/env.c kern/err.c kern/file.c \
586+@COND_i386_efi_TRUE@	kern/fs.c kern/list.c kern/main.c \
587+@COND_i386_efi_TRUE@	kern/misc.c kern/parser.c kern/partition.c \
588+@COND_i386_efi_TRUE@	kern/rescue_parser.c kern/rescue_reader.c \
589+@COND_i386_efi_TRUE@	kern/term.c kern/verifiers.c
590 @COND_i386_ieee1275_TRUE@kernel_exec_SOURCES =  \
591 @COND_i386_ieee1275_TRUE@	kern/i386/ieee1275/startup.S \
592 @COND_i386_ieee1275_TRUE@	disk/ieee1275/ofdisk.c \
593@@ -25762,12 +25790,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
594 @COND_i386_ieee1275_TRUE@	commands/extcmd.c lib/arg.c \
595 @COND_i386_ieee1275_TRUE@	kern/compiler-rt.c kern/mm.c \
596 @COND_i386_ieee1275_TRUE@	kern/time.c kern/generic/millisleep.c \
597-@COND_i386_ieee1275_TRUE@	kern/command.c kern/corecmd.c \
598-@COND_i386_ieee1275_TRUE@	kern/device.c kern/disk.c kern/dl.c \
599-@COND_i386_ieee1275_TRUE@	kern/env.c kern/err.c kern/file.c \
600-@COND_i386_ieee1275_TRUE@	kern/fs.c kern/list.c kern/main.c \
601-@COND_i386_ieee1275_TRUE@	kern/misc.c kern/parser.c \
602-@COND_i386_ieee1275_TRUE@	kern/partition.c kern/rescue_parser.c \
603+@COND_i386_ieee1275_TRUE@	kern/buffer.c kern/command.c \
604+@COND_i386_ieee1275_TRUE@	kern/corecmd.c kern/device.c \
605+@COND_i386_ieee1275_TRUE@	kern/disk.c kern/dl.c kern/env.c \
606+@COND_i386_ieee1275_TRUE@	kern/err.c kern/file.c kern/fs.c \
607+@COND_i386_ieee1275_TRUE@	kern/list.c kern/main.c kern/misc.c \
608+@COND_i386_ieee1275_TRUE@	kern/parser.c kern/partition.c \
609+@COND_i386_ieee1275_TRUE@	kern/rescue_parser.c \
610 @COND_i386_ieee1275_TRUE@	kern/rescue_reader.c kern/term.c \
611 @COND_i386_ieee1275_TRUE@	kern/verifiers.c
612 @COND_i386_multiboot_TRUE@kernel_exec_SOURCES =  \
613@@ -25781,12 +25810,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
614 @COND_i386_multiboot_TRUE@	kern/compiler-rt.c kern/mm.c \
615 @COND_i386_multiboot_TRUE@	kern/time.c \
616 @COND_i386_multiboot_TRUE@	kern/generic/millisleep.c \
617-@COND_i386_multiboot_TRUE@	kern/command.c kern/corecmd.c \
618-@COND_i386_multiboot_TRUE@	kern/device.c kern/disk.c kern/dl.c \
619-@COND_i386_multiboot_TRUE@	kern/env.c kern/err.c kern/file.c \
620-@COND_i386_multiboot_TRUE@	kern/fs.c kern/list.c kern/main.c \
621-@COND_i386_multiboot_TRUE@	kern/misc.c kern/parser.c \
622-@COND_i386_multiboot_TRUE@	kern/partition.c \
623+@COND_i386_multiboot_TRUE@	kern/buffer.c kern/command.c \
624+@COND_i386_multiboot_TRUE@	kern/corecmd.c kern/device.c \
625+@COND_i386_multiboot_TRUE@	kern/disk.c kern/dl.c kern/env.c \
626+@COND_i386_multiboot_TRUE@	kern/err.c kern/file.c kern/fs.c \
627+@COND_i386_multiboot_TRUE@	kern/list.c kern/main.c kern/misc.c \
628+@COND_i386_multiboot_TRUE@	kern/parser.c kern/partition.c \
629 @COND_i386_multiboot_TRUE@	kern/rescue_parser.c \
630 @COND_i386_multiboot_TRUE@	kern/rescue_reader.c kern/term.c \
631 @COND_i386_multiboot_TRUE@	kern/verifiers.c
632@@ -25795,24 +25824,26 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
633 @COND_i386_pc_TRUE@	term/i386/pc/console.c kern/i386/dl.c \
634 @COND_i386_pc_TRUE@	kern/i386/tsc.c kern/i386/tsc_pit.c \
635 @COND_i386_pc_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
636-@COND_i386_pc_TRUE@	kern/generic/millisleep.c kern/command.c \
637-@COND_i386_pc_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
638-@COND_i386_pc_TRUE@	kern/dl.c kern/env.c kern/err.c kern/file.c \
639-@COND_i386_pc_TRUE@	kern/fs.c kern/list.c kern/main.c \
640-@COND_i386_pc_TRUE@	kern/misc.c kern/parser.c kern/partition.c \
641-@COND_i386_pc_TRUE@	kern/rescue_parser.c kern/rescue_reader.c \
642-@COND_i386_pc_TRUE@	kern/term.c kern/verifiers.c
643+@COND_i386_pc_TRUE@	kern/generic/millisleep.c kern/buffer.c \
644+@COND_i386_pc_TRUE@	kern/command.c kern/corecmd.c kern/device.c \
645+@COND_i386_pc_TRUE@	kern/disk.c kern/dl.c kern/env.c kern/err.c \
646+@COND_i386_pc_TRUE@	kern/file.c kern/fs.c kern/list.c \
647+@COND_i386_pc_TRUE@	kern/main.c kern/misc.c kern/parser.c \
648+@COND_i386_pc_TRUE@	kern/partition.c kern/rescue_parser.c \
649+@COND_i386_pc_TRUE@	kern/rescue_reader.c kern/term.c \
650+@COND_i386_pc_TRUE@	kern/verifiers.c
651 @COND_i386_qemu_TRUE@kernel_exec_SOURCES = kern/i386/qemu/startup.S \
652 @COND_i386_qemu_TRUE@	kern/i386/qemu/init.c bus/pci.c \
653 @COND_i386_qemu_TRUE@	kern/vga_init.c kern/i386/qemu/mmap.c \
654 @COND_i386_qemu_TRUE@	term/i386/pc/vga_text.c kern/i386/dl.c \
655 @COND_i386_qemu_TRUE@	kern/i386/tsc.c kern/i386/tsc_pit.c \
656 @COND_i386_qemu_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
657-@COND_i386_qemu_TRUE@	kern/generic/millisleep.c kern/command.c \
658-@COND_i386_qemu_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
659-@COND_i386_qemu_TRUE@	kern/dl.c kern/env.c kern/err.c \
660-@COND_i386_qemu_TRUE@	kern/file.c kern/fs.c kern/list.c \
661-@COND_i386_qemu_TRUE@	kern/main.c kern/misc.c kern/parser.c \
662+@COND_i386_qemu_TRUE@	kern/generic/millisleep.c kern/buffer.c \
663+@COND_i386_qemu_TRUE@	kern/command.c kern/corecmd.c \
664+@COND_i386_qemu_TRUE@	kern/device.c kern/disk.c kern/dl.c \
665+@COND_i386_qemu_TRUE@	kern/env.c kern/err.c kern/file.c \
666+@COND_i386_qemu_TRUE@	kern/fs.c kern/list.c kern/main.c \
667+@COND_i386_qemu_TRUE@	kern/misc.c kern/parser.c \
668 @COND_i386_qemu_TRUE@	kern/partition.c kern/rescue_parser.c \
669 @COND_i386_qemu_TRUE@	kern/rescue_reader.c kern/term.c \
670 @COND_i386_qemu_TRUE@	kern/verifiers.c
671@@ -25824,14 +25855,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
672 @COND_i386_xen_TRUE@	term/terminfo.c term/tparm.c \
673 @COND_i386_xen_TRUE@	commands/extcmd.c lib/arg.c \
674 @COND_i386_xen_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
675-@COND_i386_xen_TRUE@	kern/generic/millisleep.c kern/command.c \
676-@COND_i386_xen_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
677-@COND_i386_xen_TRUE@	kern/dl.c kern/env.c kern/err.c \
678-@COND_i386_xen_TRUE@	kern/file.c kern/fs.c kern/list.c \
679-@COND_i386_xen_TRUE@	kern/main.c kern/misc.c kern/parser.c \
680-@COND_i386_xen_TRUE@	kern/partition.c kern/rescue_parser.c \
681-@COND_i386_xen_TRUE@	kern/rescue_reader.c kern/term.c \
682-@COND_i386_xen_TRUE@	kern/verifiers.c
683+@COND_i386_xen_TRUE@	kern/generic/millisleep.c kern/buffer.c \
684+@COND_i386_xen_TRUE@	kern/command.c kern/corecmd.c \
685+@COND_i386_xen_TRUE@	kern/device.c kern/disk.c kern/dl.c \
686+@COND_i386_xen_TRUE@	kern/env.c kern/err.c kern/file.c \
687+@COND_i386_xen_TRUE@	kern/fs.c kern/list.c kern/main.c \
688+@COND_i386_xen_TRUE@	kern/misc.c kern/parser.c kern/partition.c \
689+@COND_i386_xen_TRUE@	kern/rescue_parser.c kern/rescue_reader.c \
690+@COND_i386_xen_TRUE@	kern/term.c kern/verifiers.c
691 @COND_i386_xen_pvh_TRUE@kernel_exec_SOURCES =  \
692 @COND_i386_xen_pvh_TRUE@	kern/i386/xen/startup_pvh.S \
693 @COND_i386_xen_pvh_TRUE@	kern/i386/dl.c commands/boot.c \
694@@ -25842,12 +25873,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
695 @COND_i386_xen_pvh_TRUE@	term/tparm.c commands/extcmd.c \
696 @COND_i386_xen_pvh_TRUE@	lib/arg.c kern/compiler-rt.c kern/mm.c \
697 @COND_i386_xen_pvh_TRUE@	kern/time.c kern/generic/millisleep.c \
698-@COND_i386_xen_pvh_TRUE@	kern/command.c kern/corecmd.c \
699-@COND_i386_xen_pvh_TRUE@	kern/device.c kern/disk.c kern/dl.c \
700-@COND_i386_xen_pvh_TRUE@	kern/env.c kern/err.c kern/file.c \
701-@COND_i386_xen_pvh_TRUE@	kern/fs.c kern/list.c kern/main.c \
702-@COND_i386_xen_pvh_TRUE@	kern/misc.c kern/parser.c \
703-@COND_i386_xen_pvh_TRUE@	kern/partition.c kern/rescue_parser.c \
704+@COND_i386_xen_pvh_TRUE@	kern/buffer.c kern/command.c \
705+@COND_i386_xen_pvh_TRUE@	kern/corecmd.c kern/device.c \
706+@COND_i386_xen_pvh_TRUE@	kern/disk.c kern/dl.c kern/env.c \
707+@COND_i386_xen_pvh_TRUE@	kern/err.c kern/file.c kern/fs.c \
708+@COND_i386_xen_pvh_TRUE@	kern/list.c kern/main.c kern/misc.c \
709+@COND_i386_xen_pvh_TRUE@	kern/parser.c kern/partition.c \
710+@COND_i386_xen_pvh_TRUE@	kern/rescue_parser.c \
711 @COND_i386_xen_pvh_TRUE@	kern/rescue_reader.c kern/term.c \
712 @COND_i386_xen_pvh_TRUE@	kern/verifiers.c
713 @COND_ia64_efi_TRUE@kernel_exec_SOURCES = kern/ia64/efi/startup.S \
714@@ -25859,14 +25891,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
715 @COND_ia64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c kern/efi/sb.c \
716 @COND_ia64_efi_TRUE@	kern/lockdown.c kern/compiler-rt.c \
717 @COND_ia64_efi_TRUE@	kern/mm.c kern/time.c \
718-@COND_ia64_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
719-@COND_ia64_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
720-@COND_ia64_efi_TRUE@	kern/dl.c kern/env.c kern/err.c \
721-@COND_ia64_efi_TRUE@	kern/file.c kern/fs.c kern/list.c \
722-@COND_ia64_efi_TRUE@	kern/main.c kern/misc.c kern/parser.c \
723-@COND_ia64_efi_TRUE@	kern/partition.c kern/rescue_parser.c \
724-@COND_ia64_efi_TRUE@	kern/rescue_reader.c kern/term.c \
725-@COND_ia64_efi_TRUE@	kern/verifiers.c
726+@COND_ia64_efi_TRUE@	kern/generic/millisleep.c kern/buffer.c \
727+@COND_ia64_efi_TRUE@	kern/command.c kern/corecmd.c \
728+@COND_ia64_efi_TRUE@	kern/device.c kern/disk.c kern/dl.c \
729+@COND_ia64_efi_TRUE@	kern/env.c kern/err.c kern/file.c \
730+@COND_ia64_efi_TRUE@	kern/fs.c kern/list.c kern/main.c \
731+@COND_ia64_efi_TRUE@	kern/misc.c kern/parser.c kern/partition.c \
732+@COND_ia64_efi_TRUE@	kern/rescue_parser.c kern/rescue_reader.c \
733+@COND_ia64_efi_TRUE@	kern/term.c kern/verifiers.c
734 @COND_mips_arc_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \
735 @COND_mips_arc_TRUE@	kern/mips/arc/init.c term/arc/console.c \
736 @COND_mips_arc_TRUE@	disk/arc/arcdisk.c \
737@@ -25875,14 +25907,14 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
738 @COND_mips_arc_TRUE@	kern/mips/init.c term/terminfo.c \
739 @COND_mips_arc_TRUE@	term/tparm.c commands/extcmd.c lib/arg.c \
740 @COND_mips_arc_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
741-@COND_mips_arc_TRUE@	kern/generic/millisleep.c kern/command.c \
742-@COND_mips_arc_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
743-@COND_mips_arc_TRUE@	kern/dl.c kern/env.c kern/err.c \
744-@COND_mips_arc_TRUE@	kern/file.c kern/fs.c kern/list.c \
745-@COND_mips_arc_TRUE@	kern/main.c kern/misc.c kern/parser.c \
746-@COND_mips_arc_TRUE@	kern/partition.c kern/rescue_parser.c \
747-@COND_mips_arc_TRUE@	kern/rescue_reader.c kern/term.c \
748-@COND_mips_arc_TRUE@	kern/verifiers.c
749+@COND_mips_arc_TRUE@	kern/generic/millisleep.c kern/buffer.c \
750+@COND_mips_arc_TRUE@	kern/command.c kern/corecmd.c \
751+@COND_mips_arc_TRUE@	kern/device.c kern/disk.c kern/dl.c \
752+@COND_mips_arc_TRUE@	kern/env.c kern/err.c kern/file.c \
753+@COND_mips_arc_TRUE@	kern/fs.c kern/list.c kern/main.c \
754+@COND_mips_arc_TRUE@	kern/misc.c kern/parser.c kern/partition.c \
755+@COND_mips_arc_TRUE@	kern/rescue_parser.c kern/rescue_reader.c \
756+@COND_mips_arc_TRUE@	kern/term.c kern/verifiers.c
757 @COND_mips_loongson_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \
758 @COND_mips_loongson_TRUE@	term/ns8250.c bus/bonito.c \
759 @COND_mips_loongson_TRUE@	bus/cs5536.c bus/pci.c \
760@@ -25904,12 +25936,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
761 @COND_mips_loongson_TRUE@	lib/arg.c kern/compiler-rt.c \
762 @COND_mips_loongson_TRUE@	kern/mm.c kern/time.c \
763 @COND_mips_loongson_TRUE@	kern/generic/millisleep.c \
764-@COND_mips_loongson_TRUE@	kern/command.c kern/corecmd.c \
765-@COND_mips_loongson_TRUE@	kern/device.c kern/disk.c kern/dl.c \
766-@COND_mips_loongson_TRUE@	kern/env.c kern/err.c kern/file.c \
767-@COND_mips_loongson_TRUE@	kern/fs.c kern/list.c kern/main.c \
768-@COND_mips_loongson_TRUE@	kern/misc.c kern/parser.c \
769-@COND_mips_loongson_TRUE@	kern/partition.c kern/rescue_parser.c \
770+@COND_mips_loongson_TRUE@	kern/buffer.c kern/command.c \
771+@COND_mips_loongson_TRUE@	kern/corecmd.c kern/device.c \
772+@COND_mips_loongson_TRUE@	kern/disk.c kern/dl.c kern/env.c \
773+@COND_mips_loongson_TRUE@	kern/err.c kern/file.c kern/fs.c \
774+@COND_mips_loongson_TRUE@	kern/list.c kern/main.c kern/misc.c \
775+@COND_mips_loongson_TRUE@	kern/parser.c kern/partition.c \
776+@COND_mips_loongson_TRUE@	kern/rescue_parser.c \
777 @COND_mips_loongson_TRUE@	kern/rescue_reader.c kern/term.c \
778 @COND_mips_loongson_TRUE@	kern/verifiers.c
779 @COND_mips_qemu_mips_TRUE@kernel_exec_SOURCES = kern/mips/startup.S \
780@@ -25927,12 +25960,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
781 @COND_mips_qemu_mips_TRUE@	lib/arg.c kern/compiler-rt.c \
782 @COND_mips_qemu_mips_TRUE@	kern/mm.c kern/time.c \
783 @COND_mips_qemu_mips_TRUE@	kern/generic/millisleep.c \
784-@COND_mips_qemu_mips_TRUE@	kern/command.c kern/corecmd.c \
785-@COND_mips_qemu_mips_TRUE@	kern/device.c kern/disk.c kern/dl.c \
786-@COND_mips_qemu_mips_TRUE@	kern/env.c kern/err.c kern/file.c \
787-@COND_mips_qemu_mips_TRUE@	kern/fs.c kern/list.c kern/main.c \
788-@COND_mips_qemu_mips_TRUE@	kern/misc.c kern/parser.c \
789-@COND_mips_qemu_mips_TRUE@	kern/partition.c \
790+@COND_mips_qemu_mips_TRUE@	kern/buffer.c kern/command.c \
791+@COND_mips_qemu_mips_TRUE@	kern/corecmd.c kern/device.c \
792+@COND_mips_qemu_mips_TRUE@	kern/disk.c kern/dl.c kern/env.c \
793+@COND_mips_qemu_mips_TRUE@	kern/err.c kern/file.c kern/fs.c \
794+@COND_mips_qemu_mips_TRUE@	kern/list.c kern/main.c kern/misc.c \
795+@COND_mips_qemu_mips_TRUE@	kern/parser.c kern/partition.c \
796 @COND_mips_qemu_mips_TRUE@	kern/rescue_parser.c \
797 @COND_mips_qemu_mips_TRUE@	kern/rescue_reader.c kern/term.c \
798 @COND_mips_qemu_mips_TRUE@	kern/verifiers.c
799@@ -25953,12 +25986,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
800 @COND_powerpc_ieee1275_TRUE@	kern/compiler-rt.c kern/mm.c \
801 @COND_powerpc_ieee1275_TRUE@	kern/time.c \
802 @COND_powerpc_ieee1275_TRUE@	kern/generic/millisleep.c \
803-@COND_powerpc_ieee1275_TRUE@	kern/command.c kern/corecmd.c \
804-@COND_powerpc_ieee1275_TRUE@	kern/device.c kern/disk.c \
805-@COND_powerpc_ieee1275_TRUE@	kern/dl.c kern/env.c kern/err.c \
806-@COND_powerpc_ieee1275_TRUE@	kern/file.c kern/fs.c kern/list.c \
807-@COND_powerpc_ieee1275_TRUE@	kern/main.c kern/misc.c \
808-@COND_powerpc_ieee1275_TRUE@	kern/parser.c kern/partition.c \
809+@COND_powerpc_ieee1275_TRUE@	kern/buffer.c kern/command.c \
810+@COND_powerpc_ieee1275_TRUE@	kern/corecmd.c kern/device.c \
811+@COND_powerpc_ieee1275_TRUE@	kern/disk.c kern/dl.c kern/env.c \
812+@COND_powerpc_ieee1275_TRUE@	kern/err.c kern/file.c kern/fs.c \
813+@COND_powerpc_ieee1275_TRUE@	kern/list.c kern/main.c \
814+@COND_powerpc_ieee1275_TRUE@	kern/misc.c kern/parser.c \
815+@COND_powerpc_ieee1275_TRUE@	kern/partition.c \
816 @COND_powerpc_ieee1275_TRUE@	kern/rescue_parser.c \
817 @COND_powerpc_ieee1275_TRUE@	kern/rescue_reader.c kern/term.c \
818 @COND_powerpc_ieee1275_TRUE@	kern/verifiers.c
819@@ -25973,7 +26007,7 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
820 @COND_riscv32_efi_TRUE@	kern/efi/acpi.c kern/efi/sb.c \
821 @COND_riscv32_efi_TRUE@	kern/lockdown.c kern/compiler-rt.c \
822 @COND_riscv32_efi_TRUE@	kern/mm.c kern/time.c \
823-@COND_riscv32_efi_TRUE@	kern/generic/millisleep.c \
824+@COND_riscv32_efi_TRUE@	kern/generic/millisleep.c kern/buffer.c \
825 @COND_riscv32_efi_TRUE@	kern/command.c kern/corecmd.c \
826 @COND_riscv32_efi_TRUE@	kern/device.c kern/disk.c kern/dl.c \
827 @COND_riscv32_efi_TRUE@	kern/env.c kern/err.c kern/file.c \
828@@ -25993,12 +26027,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
829 @COND_riscv64_efi_TRUE@	kern/efi/sb.c kern/lockdown.c \
830 @COND_riscv64_efi_TRUE@	kern/compiler-rt.c kern/mm.c \
831 @COND_riscv64_efi_TRUE@	kern/time.c kern/generic/millisleep.c \
832-@COND_riscv64_efi_TRUE@	kern/command.c kern/corecmd.c \
833-@COND_riscv64_efi_TRUE@	kern/device.c kern/disk.c kern/dl.c \
834-@COND_riscv64_efi_TRUE@	kern/env.c kern/err.c kern/file.c \
835-@COND_riscv64_efi_TRUE@	kern/fs.c kern/list.c kern/main.c \
836-@COND_riscv64_efi_TRUE@	kern/misc.c kern/parser.c \
837-@COND_riscv64_efi_TRUE@	kern/partition.c kern/rescue_parser.c \
838+@COND_riscv64_efi_TRUE@	kern/buffer.c kern/command.c \
839+@COND_riscv64_efi_TRUE@	kern/corecmd.c kern/device.c \
840+@COND_riscv64_efi_TRUE@	kern/disk.c kern/dl.c kern/env.c \
841+@COND_riscv64_efi_TRUE@	kern/err.c kern/file.c kern/fs.c \
842+@COND_riscv64_efi_TRUE@	kern/list.c kern/main.c kern/misc.c \
843+@COND_riscv64_efi_TRUE@	kern/parser.c kern/partition.c \
844+@COND_riscv64_efi_TRUE@	kern/rescue_parser.c \
845 @COND_riscv64_efi_TRUE@	kern/rescue_reader.c kern/term.c \
846 @COND_riscv64_efi_TRUE@	kern/verifiers.c
847 @COND_sparc64_ieee1275_TRUE@kernel_exec_SOURCES =  \
848@@ -26019,12 +26054,13 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
849 @COND_sparc64_ieee1275_TRUE@	kern/compiler-rt.c kern/mm.c \
850 @COND_sparc64_ieee1275_TRUE@	kern/time.c \
851 @COND_sparc64_ieee1275_TRUE@	kern/generic/millisleep.c \
852-@COND_sparc64_ieee1275_TRUE@	kern/command.c kern/corecmd.c \
853-@COND_sparc64_ieee1275_TRUE@	kern/device.c kern/disk.c \
854-@COND_sparc64_ieee1275_TRUE@	kern/dl.c kern/env.c kern/err.c \
855-@COND_sparc64_ieee1275_TRUE@	kern/file.c kern/fs.c kern/list.c \
856-@COND_sparc64_ieee1275_TRUE@	kern/main.c kern/misc.c \
857-@COND_sparc64_ieee1275_TRUE@	kern/parser.c kern/partition.c \
858+@COND_sparc64_ieee1275_TRUE@	kern/buffer.c kern/command.c \
859+@COND_sparc64_ieee1275_TRUE@	kern/corecmd.c kern/device.c \
860+@COND_sparc64_ieee1275_TRUE@	kern/disk.c kern/dl.c kern/env.c \
861+@COND_sparc64_ieee1275_TRUE@	kern/err.c kern/file.c kern/fs.c \
862+@COND_sparc64_ieee1275_TRUE@	kern/list.c kern/main.c \
863+@COND_sparc64_ieee1275_TRUE@	kern/misc.c kern/parser.c \
864+@COND_sparc64_ieee1275_TRUE@	kern/partition.c \
865 @COND_sparc64_ieee1275_TRUE@	kern/rescue_parser.c \
866 @COND_sparc64_ieee1275_TRUE@	kern/rescue_reader.c kern/term.c \
867 @COND_sparc64_ieee1275_TRUE@	kern/verifiers.c
868@@ -26040,11 +26076,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
869 @COND_x86_64_efi_TRUE@	kern/acpi.c kern/efi/acpi.c \
870 @COND_x86_64_efi_TRUE@	kern/efi/sb.c kern/lockdown.c \
871 @COND_x86_64_efi_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
872-@COND_x86_64_efi_TRUE@	kern/generic/millisleep.c kern/command.c \
873-@COND_x86_64_efi_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
874-@COND_x86_64_efi_TRUE@	kern/dl.c kern/env.c kern/err.c \
875-@COND_x86_64_efi_TRUE@	kern/file.c kern/fs.c kern/list.c \
876-@COND_x86_64_efi_TRUE@	kern/main.c kern/misc.c kern/parser.c \
877+@COND_x86_64_efi_TRUE@	kern/generic/millisleep.c kern/buffer.c \
878+@COND_x86_64_efi_TRUE@	kern/command.c kern/corecmd.c \
879+@COND_x86_64_efi_TRUE@	kern/device.c kern/disk.c kern/dl.c \
880+@COND_x86_64_efi_TRUE@	kern/env.c kern/err.c kern/file.c \
881+@COND_x86_64_efi_TRUE@	kern/fs.c kern/list.c kern/main.c \
882+@COND_x86_64_efi_TRUE@	kern/misc.c kern/parser.c \
883 @COND_x86_64_efi_TRUE@	kern/partition.c kern/rescue_parser.c \
884 @COND_x86_64_efi_TRUE@	kern/rescue_reader.c kern/term.c \
885 @COND_x86_64_efi_TRUE@	kern/verifiers.c
886@@ -26057,11 +26094,12 @@ gcry_whirlpool_module_DEPENDENCIES = $(TARGET_OBJ2ELF)
887 @COND_x86_64_xen_TRUE@	term/terminfo.c term/tparm.c \
888 @COND_x86_64_xen_TRUE@	commands/extcmd.c lib/arg.c \
889 @COND_x86_64_xen_TRUE@	kern/compiler-rt.c kern/mm.c kern/time.c \
890-@COND_x86_64_xen_TRUE@	kern/generic/millisleep.c kern/command.c \
891-@COND_x86_64_xen_TRUE@	kern/corecmd.c kern/device.c kern/disk.c \
892-@COND_x86_64_xen_TRUE@	kern/dl.c kern/env.c kern/err.c \
893-@COND_x86_64_xen_TRUE@	kern/file.c kern/fs.c kern/list.c \
894-@COND_x86_64_xen_TRUE@	kern/main.c kern/misc.c kern/parser.c \
895+@COND_x86_64_xen_TRUE@	kern/generic/millisleep.c kern/buffer.c \
896+@COND_x86_64_xen_TRUE@	kern/command.c kern/corecmd.c \
897+@COND_x86_64_xen_TRUE@	kern/device.c kern/disk.c kern/dl.c \
898+@COND_x86_64_xen_TRUE@	kern/env.c kern/err.c kern/file.c \
899+@COND_x86_64_xen_TRUE@	kern/fs.c kern/list.c kern/main.c \
900+@COND_x86_64_xen_TRUE@	kern/misc.c kern/parser.c \
901 @COND_x86_64_xen_TRUE@	kern/partition.c kern/rescue_parser.c \
902 @COND_x86_64_xen_TRUE@	kern/rescue_reader.c kern/term.c \
903 @COND_x86_64_xen_TRUE@	kern/verifiers.c
904@@ -28027,6 +28065,8 @@ kern/generic/$(DEPDIR)/$(am__dirstamp):
905 kern/generic/kernel_exec-millisleep.$(OBJEXT):  \
906 	kern/generic/$(am__dirstamp) \
907 	kern/generic/$(DEPDIR)/$(am__dirstamp)
908+kern/kernel_exec-buffer.$(OBJEXT): kern/$(am__dirstamp) \
909+	kern/$(DEPDIR)/$(am__dirstamp)
910 kern/kernel_exec-command.$(OBJEXT): kern/$(am__dirstamp) \
911 	kern/$(DEPDIR)/$(am__dirstamp)
912 kern/kernel_exec-corecmd.$(OBJEXT): kern/$(am__dirstamp) \
913@@ -30952,6 +30992,7 @@ distclean-compile:
914 @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/acpi_module-acpi.Po@am__quote@
915 @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/elf_module-elf.Po@am__quote@
916 @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-acpi.Po@am__quote@
917+@AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-buffer.Po@am__quote@
918 @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-command.Po@am__quote@
919 @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-compiler-rt.Po@am__quote@
920 @AMDEP_TRUE@@am__include@ @am__quote@kern/$(DEPDIR)/kernel_exec-corecmd.Po@am__quote@
921@@ -35382,6 +35423,20 @@ kern/generic/kernel_exec-millisleep.obj: kern/generic/millisleep.c
922 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
923 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/generic/kernel_exec-millisleep.obj `if test -f 'kern/generic/millisleep.c'; then $(CYGPATH_W) 'kern/generic/millisleep.c'; else $(CYGPATH_W) '$(srcdir)/kern/generic/millisleep.c'; fi`
924
925+kern/kernel_exec-buffer.o: kern/buffer.c
926+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-buffer.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-buffer.Tpo -c -o kern/kernel_exec-buffer.o `test -f 'kern/buffer.c' || echo '$(srcdir)/'`kern/buffer.c
927+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-buffer.Tpo kern/$(DEPDIR)/kernel_exec-buffer.Po
928+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='kern/buffer.c' object='kern/kernel_exec-buffer.o' libtool=no @AMDEPBACKSLASH@
929+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
930+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-buffer.o `test -f 'kern/buffer.c' || echo '$(srcdir)/'`kern/buffer.c
931+
932+kern/kernel_exec-buffer.obj: kern/buffer.c
933+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-buffer.obj -MD -MP -MF kern/$(DEPDIR)/kernel_exec-buffer.Tpo -c -o kern/kernel_exec-buffer.obj `if test -f 'kern/buffer.c'; then $(CYGPATH_W) 'kern/buffer.c'; else $(CYGPATH_W) '$(srcdir)/kern/buffer.c'; fi`
934+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-buffer.Tpo kern/$(DEPDIR)/kernel_exec-buffer.Po
935+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='kern/buffer.c' object='kern/kernel_exec-buffer.obj' libtool=no @AMDEPBACKSLASH@
936+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
937+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kern/kernel_exec-buffer.obj `if test -f 'kern/buffer.c'; then $(CYGPATH_W) 'kern/buffer.c'; else $(CYGPATH_W) '$(srcdir)/kern/buffer.c'; fi`
938+
939 kern/kernel_exec-command.o: kern/command.c
940 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(kernel_exec_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -MT kern/kernel_exec-command.o -MD -MP -MF kern/$(DEPDIR)/kernel_exec-command.Tpo -c -o kern/kernel_exec-command.o `test -f 'kern/command.c' || echo '$(srcdir)/'`kern/command.c
941 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) kern/$(DEPDIR)/kernel_exec-command.Tpo kern/$(DEPDIR)/kernel_exec-command.Po
942diff --git a/grub-core/kern/buffer.c b/grub-core/kern/buffer.c
943new file mode 100644
944index 0000000..9f5f8b8
945--- /dev/null
946+++ b/grub-core/kern/buffer.c
947@@ -0,0 +1,117 @@
948+/*
949+ *  GRUB  --  GRand Unified Bootloader
950+ *  Copyright (C) 2021  Free Software Foundation, Inc.
951+ *
952+ *  GRUB is free software: you can redistribute it and/or modify
953+ *  it under the terms of the GNU General Public License as published by
954+ *  the Free Software Foundation, either version 3 of the License, or
955+ *  (at your option) any later version.
956+ *
957+ *  GRUB is distributed in the hope that it will be useful,
958+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
959+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
960+ *  GNU General Public License for more details.
961+ *
962+ *  You should have received a copy of the GNU General Public License
963+ *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
964+ */
965+
966+#include <grub/buffer.h>
967+#include <grub/err.h>
968+#include <grub/misc.h>
969+#include <grub/mm.h>
970+#include <grub/safemath.h>
971+#include <grub/types.h>
972+
973+grub_buffer_t
974+grub_buffer_new (grub_size_t sz)
975+{
976+  struct grub_buffer *ret;
977+
978+  ret = (struct grub_buffer *) grub_malloc (sizeof (*ret));
979+  if (ret == NULL)
980+    return NULL;
981+
982+  ret->data = (grub_uint8_t *) grub_malloc (sz);
983+  if (ret->data == NULL)
984+    {
985+      grub_free (ret);
986+      return NULL;
987+    }
988+
989+  ret->sz = sz;
990+  ret->pos = 0;
991+  ret->used = 0;
992+
993+  return ret;
994+}
995+
996+void
997+grub_buffer_free (grub_buffer_t buf)
998+{
999+  grub_free (buf->data);
1000+  grub_free (buf);
1001+}
1002+
1003+grub_err_t
1004+grub_buffer_ensure_space (grub_buffer_t buf, grub_size_t req)
1005+{
1006+  grub_uint8_t *d;
1007+  grub_size_t newsz = 1;
1008+
1009+  /* Is the current buffer size adequate? */
1010+  if (buf->sz >= req)
1011+    return GRUB_ERR_NONE;
1012+
1013+  /* Find the smallest power-of-2 size that satisfies the request. */
1014+  while (newsz < req)
1015+    {
1016+      if (newsz == 0)
1017+	return grub_error (GRUB_ERR_OUT_OF_RANGE,
1018+			   N_("requested buffer size is too large"));
1019+      newsz <<= 1;
1020+    }
1021+
1022+  d = (grub_uint8_t *) grub_realloc (buf->data, newsz);
1023+  if (d == NULL)
1024+    return grub_errno;
1025+
1026+  buf->data = d;
1027+  buf->sz = newsz;
1028+
1029+  return GRUB_ERR_NONE;
1030+}
1031+
1032+void *
1033+grub_buffer_take_data (grub_buffer_t buf)
1034+{
1035+  void *data = buf->data;
1036+
1037+  buf->data = NULL;
1038+  buf->sz = buf->pos = buf->used = 0;
1039+
1040+  return data;
1041+}
1042+
1043+void
1044+grub_buffer_reset (grub_buffer_t buf)
1045+{
1046+  buf->pos = buf->used = 0;
1047+}
1048+
1049+grub_err_t
1050+grub_buffer_advance_read_pos (grub_buffer_t buf, grub_size_t n)
1051+{
1052+  grub_size_t newpos;
1053+
1054+  if (grub_add (buf->pos, n, &newpos))
1055+    return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected"));
1056+
1057+  if (newpos > buf->used)
1058+    return grub_error (GRUB_ERR_OUT_OF_RANGE,
1059+		       N_("new read is position beyond the end of the written data"));
1060+
1061+  buf->pos = newpos;
1062+
1063+  return GRUB_ERR_NONE;
1064+}
1065diff --git a/include/grub/buffer.h b/include/grub/buffer.h
1066new file mode 100644
1067index 0000000..f4b10cf
1068--- /dev/null
1069+++ b/include/grub/buffer.h
1070@@ -0,0 +1,144 @@
1071+/*
1072+ *  GRUB  --  GRand Unified Bootloader
1073+ *  Copyright (C) 2021  Free Software Foundation, Inc.
1074+ *
1075+ *  GRUB is free software: you can redistribute it and/or modify
1076+ *  it under the terms of the GNU General Public License as published by
1077+ *  the Free Software Foundation, either version 3 of the License, or
1078+ *  (at your option) any later version.
1079+ *
1080+ *  GRUB is distributed in the hope that it will be useful,
1081+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
1082+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1083+ *  GNU General Public License for more details.
1084+ *
1085+ *  You should have received a copy of the GNU General Public License
1086+ *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
1087+ */
1088+
1089+#ifndef GRUB_BUFFER_H
1090+#define GRUB_BUFFER_H	1
1091+
1092+#include <grub/err.h>
1093+#include <grub/misc.h>
1094+#include <grub/mm.h>
1095+#include <grub/safemath.h>
1096+#include <grub/types.h>
1097+
1098+struct grub_buffer
1099+{
1100+  grub_uint8_t *data;
1101+  grub_size_t sz;
1102+  grub_size_t pos;
1103+  grub_size_t used;
1104+};
1105+
1106+/*
1107+ * grub_buffer_t represents a simple variable sized byte buffer with
1108+ * read and write cursors. It currently only implements
1109+ * functionality required by the only user in GRUB (append byte[s],
1110+ * peeking data at a specified position and updating the read cursor.
1111+ * Some things that this doesn't do yet are:
1112+ * - Reading a portion of the buffer by copying data from the current
1113+ *   read position in to a caller supplied destination buffer and then
1114+ *   automatically updating the read cursor.
1115+ * - Dropping the read part at the start of the buffer when an append
1116+ *   requires more space.
1117+ */
1118+typedef struct grub_buffer *grub_buffer_t;
1119+
1120+/* Allocate a new buffer with the specified initial size. */
1121+extern grub_buffer_t grub_buffer_new (grub_size_t sz);
1122+
1123+/* Free the buffer and its resources. */
1124+extern void grub_buffer_free (grub_buffer_t buf);
1125+
1126+/* Return the number of unread bytes in this buffer. */
1127+static inline grub_size_t
1128+grub_buffer_get_unread_bytes (grub_buffer_t buf)
1129+{
1130+  return buf->used - buf->pos;
1131+}
1132+
1133+/*
1134+ * Ensure that the buffer size is at least the requested
1135+ * number of bytes.
1136+ */
1137+extern grub_err_t grub_buffer_ensure_space (grub_buffer_t buf, grub_size_t req);
1138+
1139+/*
1140+ * Append the specified number of bytes from the supplied
1141+ * data to the buffer.
1142+ */
1143+static inline grub_err_t
1144+grub_buffer_append_data (grub_buffer_t buf, const void *data, grub_size_t len)
1145+{
1146+  grub_size_t req;
1147+
1148+  if (grub_add (buf->used, len, &req))
1149+    return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected"));
1150+
1151+  if (grub_buffer_ensure_space (buf, req) != GRUB_ERR_NONE)
1152+    return grub_errno;
1153+
1154+  grub_memcpy (&buf->data[buf->used], data, len);
1155+  buf->used = req;
1156+
1157+  return GRUB_ERR_NONE;
1158+}
1159+
1160+/* Append the supplied character to the buffer. */
1161+static inline grub_err_t
1162+grub_buffer_append_char (grub_buffer_t buf, char c)
1163+{
1164+  return grub_buffer_append_data (buf, &c, 1);
1165+}
1166+
1167+/*
1168+ * Forget and return the underlying data buffer. The caller
1169+ * becomes the owner of this buffer, and must free it when it
1170+ * is no longer required.
1171+ */
1172+extern void *grub_buffer_take_data (grub_buffer_t buf);
1173+
1174+/* Reset this buffer. Note that this does not deallocate any resources. */
1175+void grub_buffer_reset (grub_buffer_t buf);
1176+
1177+/*
1178+ * Return a pointer to the underlying data buffer at the specified
1179+ * offset from the current read position. Note that this pointer may
1180+ * become invalid if the buffer is mutated further.
1181+ */
1182+static inline void *
1183+grub_buffer_peek_data_at (grub_buffer_t buf, grub_size_t off)
1184+{
1185+  if (grub_add (buf->pos, off, &off))
1186+    {
1187+      grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected."));
1188+      return NULL;
1189+    }
1190+
1191+  if (off >= buf->used)
1192+    {
1193+      grub_error (GRUB_ERR_OUT_OF_RANGE, N_("peek out of range"));
1194+      return NULL;
1195+    }
1196+
1197+  return &buf->data[off];
1198+}
1199+
1200+/*
1201+ * Return a pointer to the underlying data buffer at the current
1202+ * read position. Note that this pointer may become invalid if the
1203+ * buffer is mutated further.
1204+ */
1205+static inline void *
1206+grub_buffer_peek_data (grub_buffer_t buf)
1207+{
1208+  return grub_buffer_peek_data_at (buf, 0);
1209+}
1210+
1211+/* Advance the read position by the specified number of bytes. */
1212+extern grub_err_t grub_buffer_advance_read_pos (grub_buffer_t buf, grub_size_t n);
1213+
1214+#endif /* GRUB_BUFFER_H */
1215diff --git a/po/POTFILES.in b/po/POTFILES.in
1216index 5e26845..7753ab4 100644
1217--- a/po/POTFILES.in
1218+++ b/po/POTFILES.in
1219@@ -250,6 +250,7 @@
1220 ./grub-core/kern/arm64/dl.c
1221 ./grub-core/kern/arm64/dl_helper.c
1222 ./grub-core/kern/arm64/efi/init.c
1223+./grub-core/kern/buffer.c
1224 ./grub-core/kern/command.c
1225 ./grub-core/kern/compiler-rt.c
1226 ./grub-core/kern/coreboot/cbtable.c
1227@@ -1021,6 +1022,7 @@
1228 ./include/grub/boottime.h
1229 ./include/grub/bsdlabel.h
1230 ./include/grub/btrfs.h
1231+./include/grub/buffer.h
1232 ./include/grub/bufio.h
1233 ./include/grub/cache.h
1234 ./include/grub/cbfs_core.h
1235--
12362.14.2
1237
1238