diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2020-01-15 15:39:04 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2020-01-15 16:58:48 +0000 |
commit | 319500e94bae0ae674ba945be29f17617823c7df (patch) | |
tree | 5e355e33c200fd3110b43f4b9c264cd89a9d3354 /main/grub/0004-xen-Prepare-common-code-for-Xen-PVH-support.patch | |
parent | 313fffd7875542f30a4aa9313e90ee1d7c3651af (diff) | |
download | aports-319500e94bae0ae674ba945be29f17617823c7df.tar.bz2 aports-319500e94bae0ae674ba945be29f17617823c7df.tar.xz |
main/grub: upgrade to 2.04
Diffstat (limited to 'main/grub/0004-xen-Prepare-common-code-for-Xen-PVH-support.patch')
-rw-r--r-- | main/grub/0004-xen-Prepare-common-code-for-Xen-PVH-support.patch | 245 |
1 files changed, 0 insertions, 245 deletions
diff --git a/main/grub/0004-xen-Prepare-common-code-for-Xen-PVH-support.patch b/main/grub/0004-xen-Prepare-common-code-for-Xen-PVH-support.patch deleted file mode 100644 index f5d42d8829..0000000000 --- a/main/grub/0004-xen-Prepare-common-code-for-Xen-PVH-support.patch +++ /dev/null @@ -1,245 +0,0 @@ -From 49a68b2a338cd55490c776d15b0b399303a08df5 Mon Sep 17 00:00:00 2001 -From: Juergen Gross <jgross@suse.com> -Date: Fri, 7 Dec 2018 13:11:32 +0100 -Subject: [PATCH 04/20] xen: Prepare common code for Xen PVH support - -Some common code needs to be special cased for Xen PVH mode. This hits -mostly Xen PV mode specific areas. - -Split include/grub/i386/pc/int_types.h off from -include/grub/i386/pc/int.h to support including this file later from -xen_pvh code without the grub_bios_interrupt definition. - -Move definition of struct grub_e820_mmap_entry from -grub-core/mmap/i386/pc/mmap.c to include/grub/i386/memory.h in order -to make it usable from xen_pvh code. - -Signed-off-by: Juergen Gross <jgross@suse.com> -Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> -Tested-by: Hans van Kranenburg <hans@knorrie.org> -(cherry picked from commit fc9d47ead56365c3335bb42cf651008c9ac1f494) ---- - grub-core/kern/i386/tsc.c | 2 +- - grub-core/mmap/i386/pc/mmap.c | 8 ----- - include/grub/i386/memory.h | 7 ++++ - include/grub/i386/pc/int.h | 36 +------------------ - include/grub/i386/pc/int_types.h | 59 +++++++++++++++++++++++++++++++ - include/grub/i386/tsc.h | 2 +- - include/grub/i386/xen/hypercall.h | 5 ++- - include/grub/kernel.h | 4 ++- - 8 files changed, 76 insertions(+), 47 deletions(-) - create mode 100644 include/grub/i386/pc/int_types.h - -diff --git a/grub-core/kern/i386/tsc.c b/grub-core/kern/i386/tsc.c -index 2e85289d8..b50831bfc 100644 ---- a/grub-core/kern/i386/tsc.c -+++ b/grub-core/kern/i386/tsc.c -@@ -65,7 +65,7 @@ grub_tsc_init (void) - - tsc_boot_time = grub_get_tsc (); - --#ifdef GRUB_MACHINE_XEN -+#if defined (GRUB_MACHINE_XEN) || defined (GRUB_MACHINE_XEN_PVH) - (void) (grub_tsc_calibrate_from_xen () || calibrate_tsc_hardcode()); - #elif defined (GRUB_MACHINE_EFI) - (void) (grub_tsc_calibrate_from_pit () || grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_efi() || calibrate_tsc_hardcode()); -diff --git a/grub-core/mmap/i386/pc/mmap.c b/grub-core/mmap/i386/pc/mmap.c -index 609994516..6ab4f6730 100644 ---- a/grub-core/mmap/i386/pc/mmap.c -+++ b/grub-core/mmap/i386/pc/mmap.c -@@ -42,14 +42,6 @@ extern grub_uint16_t grub_machine_mmaphook_kblow; - extern grub_uint16_t grub_machine_mmaphook_kbin16mb; - extern grub_uint16_t grub_machine_mmaphook_64kbin4gb; - --struct grub_e820_mmap_entry --{ -- grub_uint64_t addr; -- grub_uint64_t len; -- grub_uint32_t type; --} GRUB_PACKED; -- -- - /* Helper for preboot. */ - static int fill_hook (grub_uint64_t addr, grub_uint64_t size, - grub_memory_type_t type, void *data) -diff --git a/include/grub/i386/memory.h b/include/grub/i386/memory.h -index 8bb6e1cbb..5cb607fb4 100644 ---- a/include/grub/i386/memory.h -+++ b/include/grub/i386/memory.h -@@ -44,6 +44,13 @@ - - #include <grub/types.h> - -+struct grub_e820_mmap_entry -+{ -+ grub_uint64_t addr; -+ grub_uint64_t len; -+ grub_uint32_t type; -+} GRUB_PACKED; -+ - grub_uint64_t grub_mmap_get_upper (void); - grub_uint64_t grub_mmap_get_lower (void); - grub_uint64_t grub_mmap_get_post64 (void); -diff --git a/include/grub/i386/pc/int.h b/include/grub/i386/pc/int.h -index 16a53e4fe..a60104001 100644 ---- a/include/grub/i386/pc/int.h -+++ b/include/grub/i386/pc/int.h -@@ -20,45 +20,11 @@ - #define GRUB_INTERRUPT_MACHINE_HEADER 1 - - #include <grub/symbol.h> --#include <grub/types.h> -- --struct grub_bios_int_registers --{ -- grub_uint32_t eax; -- grub_uint16_t es; -- grub_uint16_t ds; -- grub_uint16_t flags; -- grub_uint16_t dummy; -- grub_uint32_t ebx; -- grub_uint32_t ecx; -- grub_uint32_t edi; -- grub_uint32_t esi; -- grub_uint32_t edx; --}; -- --#define GRUB_CPU_INT_FLAGS_CARRY 0x1 --#define GRUB_CPU_INT_FLAGS_PARITY 0x4 --#define GRUB_CPU_INT_FLAGS_ADJUST 0x10 --#define GRUB_CPU_INT_FLAGS_ZERO 0x40 --#define GRUB_CPU_INT_FLAGS_SIGN 0x80 --#define GRUB_CPU_INT_FLAGS_TRAP 0x100 --#define GRUB_CPU_INT_FLAGS_INTERRUPT 0x200 --#define GRUB_CPU_INT_FLAGS_DIRECTION 0x400 --#define GRUB_CPU_INT_FLAGS_OVERFLOW 0x800 --#ifdef GRUB_MACHINE_PCBIOS --#define GRUB_CPU_INT_FLAGS_DEFAULT GRUB_CPU_INT_FLAGS_INTERRUPT --#else --#define GRUB_CPU_INT_FLAGS_DEFAULT 0 --#endif -+#include <grub/i386/pc/int_types.h> - - void EXPORT_FUNC (grub_bios_interrupt) (grub_uint8_t intno, - struct grub_bios_int_registers *regs) - __attribute__ ((regparm(3))); --struct grub_i386_idt --{ -- grub_uint16_t limit; -- grub_uint32_t base; --} GRUB_PACKED; - - #ifdef GRUB_MACHINE_PCBIOS - extern struct grub_i386_idt *EXPORT_VAR(grub_realidt); -diff --git a/include/grub/i386/pc/int_types.h b/include/grub/i386/pc/int_types.h -new file mode 100644 -index 000000000..2c5a69b63 ---- /dev/null -+++ b/include/grub/i386/pc/int_types.h -@@ -0,0 +1,59 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2018 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>. -+ */ -+ -+#ifndef GRUB_INTERRUPT_TYPES_MACHINE_HEADER -+#define GRUB_INTERRUPT_TYPES_MACHINE_HEADER 1 -+ -+#include <grub/types.h> -+ -+#define GRUB_CPU_INT_FLAGS_CARRY 0x1 -+#define GRUB_CPU_INT_FLAGS_PARITY 0x4 -+#define GRUB_CPU_INT_FLAGS_ADJUST 0x10 -+#define GRUB_CPU_INT_FLAGS_ZERO 0x40 -+#define GRUB_CPU_INT_FLAGS_SIGN 0x80 -+#define GRUB_CPU_INT_FLAGS_TRAP 0x100 -+#define GRUB_CPU_INT_FLAGS_INTERRUPT 0x200 -+#define GRUB_CPU_INT_FLAGS_DIRECTION 0x400 -+#define GRUB_CPU_INT_FLAGS_OVERFLOW 0x800 -+#ifdef GRUB_MACHINE_PCBIOS -+#define GRUB_CPU_INT_FLAGS_DEFAULT GRUB_CPU_INT_FLAGS_INTERRUPT -+#else -+#define GRUB_CPU_INT_FLAGS_DEFAULT 0 -+#endif -+ -+struct grub_bios_int_registers -+{ -+ grub_uint32_t eax; -+ grub_uint16_t es; -+ grub_uint16_t ds; -+ grub_uint16_t flags; -+ grub_uint16_t dummy; -+ grub_uint32_t ebx; -+ grub_uint32_t ecx; -+ grub_uint32_t edi; -+ grub_uint32_t esi; -+ grub_uint32_t edx; -+}; -+ -+struct grub_i386_idt -+{ -+ grub_uint16_t limit; -+ grub_uint32_t base; -+} GRUB_PACKED; -+ -+#endif -diff --git a/include/grub/i386/tsc.h b/include/grub/i386/tsc.h -index a0aa2c573..324174ded 100644 ---- a/include/grub/i386/tsc.h -+++ b/include/grub/i386/tsc.h -@@ -54,7 +54,7 @@ grub_get_tsc (void) - static __inline int - grub_cpu_is_tsc_supported (void) - { --#ifndef GRUB_MACHINE_XEN -+#if !defined(GRUB_MACHINE_XEN) && !defined(GRUB_MACHINE_XEN_PVH) - grub_uint32_t a,b,c,d; - if (! grub_cpu_is_cpuid_supported ()) - return 0; -diff --git a/include/grub/i386/xen/hypercall.h b/include/grub/i386/xen/hypercall.h -index 198ee94af..4e4c12a49 100644 ---- a/include/grub/i386/xen/hypercall.h -+++ b/include/grub/i386/xen/hypercall.h -@@ -26,7 +26,10 @@ EXPORT_FUNC (grub_xen_hypercall) (grub_uint32_t callno, grub_uint32_t a0, - grub_uint32_t a1, grub_uint32_t a2, - grub_uint32_t a3, grub_uint32_t a4, - grub_uint32_t a5) --__attribute__ ((regparm (3), cdecl)); -+#ifdef GRUB_MACHINE_XEN -+ __attribute__ ((regparm (3), cdecl)) -+#endif -+ ; - - static inline int - grub_xen_sched_op (int cmd, void *arg) -diff --git a/include/grub/kernel.h b/include/grub/kernel.h -index 20ddf2da2..c17fc6e60 100644 ---- a/include/grub/kernel.h -+++ b/include/grub/kernel.h -@@ -78,7 +78,9 @@ struct grub_module_info64 - #if defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_COREBOOT) \ - || defined (GRUB_MACHINE_MULTIBOOT) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) \ - || defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_ARC) \ -- || (defined (__sparc__) && defined (GRUB_MACHINE_IEEE1275)) || defined (GRUB_MACHINE_UBOOT) || defined (GRUB_MACHINE_XEN) -+ || (defined (__sparc__) && defined (GRUB_MACHINE_IEEE1275)) \ -+ || defined (GRUB_MACHINE_UBOOT) || defined (GRUB_MACHINE_XEN) \ -+ || defined(GRUB_MACHINE_XEN_PVH) - /* FIXME: stack is between 2 heap regions. Move it. */ - #define GRUB_KERNEL_PRELOAD_SPACE_REUSABLE 1 - #endif --- -2.21.0 - |