Message ID | 20230701071835.41599-9-christopher.w.clark@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | v3: Boot modules for Hyperlaunch | expand |
On Sat, 1 Jul 2023, Christopher Clark wrote: > Changes to ensure that inclusion of <xen/bootinfo.h> succeeds in each > of the main archtecture builds and in the 32-bit early x86 boot build. > > The <xen/bootinfo.h> header contains structures that will be used in efi > logic prior to the main start of Xen, so it needs to be suitable for > inclusion in Arm source files. > > The same header will also be included in early x86 boot logic, where > asm/* headers are not reachable, and so they cannot be transitively > included, so a ifdef condition is needed to prevent an attempt to > include <asm/bootinfo.h> from within <xen/bootinfo.h> in that case. > > The early x86 boot logic can then directly include <asm/bootinfo.h> via > a specified directory path where it can be included successfully. > > Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com> > Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com> I think this is fine. > --- > New for v2 series. > > xen/arch/arm/include/asm/bootinfo.h | 20 ++++++++++++++++++++ > xen/arch/riscv/include/asm/bootinfo.h | 20 ++++++++++++++++++++ > xen/include/xen/bootinfo.h | 7 ++----- > 3 files changed, 42 insertions(+), 5 deletions(-) > create mode 100644 xen/arch/arm/include/asm/bootinfo.h > create mode 100644 xen/arch/riscv/include/asm/bootinfo.h > > diff --git a/xen/arch/arm/include/asm/bootinfo.h b/xen/arch/arm/include/asm/bootinfo.h > new file mode 100644 > index 0000000000..5316c87a3d > --- /dev/null > +++ b/xen/arch/arm/include/asm/bootinfo.h > @@ -0,0 +1,20 @@ > +#ifndef __ARCH_ARM_BOOTINFO_H__ > +#define __ARCH_ARM_BOOTINFO_H__ > + > +struct __packed arch_bootmodule { }; > +DEFINE_STRUCT_PTR_TYPE(arch_bootmodule); > + > +struct __packed arch_boot_info { }; > +DEFINE_STRUCT_PTR_TYPE(arch_boot_info); > + > +#endif > + > +/* > + * Local variables: > + * mode: C > + * c-file-style: "BSD" > + * c-basic-offset: 4 > + * tab-width: 4 > + * indent-tabs-mode: nil > + * End: > + */ > diff --git a/xen/arch/riscv/include/asm/bootinfo.h b/xen/arch/riscv/include/asm/bootinfo.h > new file mode 100644 > index 0000000000..5316c87a3d > --- /dev/null > +++ b/xen/arch/riscv/include/asm/bootinfo.h > @@ -0,0 +1,20 @@ > +#ifndef __ARCH_ARM_BOOTINFO_H__ > +#define __ARCH_ARM_BOOTINFO_H__ > + > +struct __packed arch_bootmodule { }; > +DEFINE_STRUCT_PTR_TYPE(arch_bootmodule); > + > +struct __packed arch_boot_info { }; > +DEFINE_STRUCT_PTR_TYPE(arch_boot_info); > + > +#endif > + > +/* > + * Local variables: > + * mode: C > + * c-file-style: "BSD" > + * c-basic-offset: 4 > + * tab-width: 4 > + * indent-tabs-mode: nil > + * End: > + */ > diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h > index 8389da4f72..bf5586a76b 100644 > --- a/xen/include/xen/bootinfo.h > +++ b/xen/include/xen/bootinfo.h > @@ -5,11 +5,8 @@ > #include <xen/compiler.h> > #include <xen/mm-frame.h> > > -#ifdef CONFIG_X86 > -#include <asm/bootinfo.h> > -#else > - struct arch_bootmodule { }; > - struct arch_boot_info { }; > +#if defined CONFIG_X86 || CONFIG_ARM || CONFIG_RISCV > +# include <asm/bootinfo.h> > #endif > > /* Boot module binary type / purpose */ > -- > 2.25.1 > >
diff --git a/xen/arch/arm/include/asm/bootinfo.h b/xen/arch/arm/include/asm/bootinfo.h new file mode 100644 index 0000000000..5316c87a3d --- /dev/null +++ b/xen/arch/arm/include/asm/bootinfo.h @@ -0,0 +1,20 @@ +#ifndef __ARCH_ARM_BOOTINFO_H__ +#define __ARCH_ARM_BOOTINFO_H__ + +struct __packed arch_bootmodule { }; +DEFINE_STRUCT_PTR_TYPE(arch_bootmodule); + +struct __packed arch_boot_info { }; +DEFINE_STRUCT_PTR_TYPE(arch_boot_info); + +#endif + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/xen/arch/riscv/include/asm/bootinfo.h b/xen/arch/riscv/include/asm/bootinfo.h new file mode 100644 index 0000000000..5316c87a3d --- /dev/null +++ b/xen/arch/riscv/include/asm/bootinfo.h @@ -0,0 +1,20 @@ +#ifndef __ARCH_ARM_BOOTINFO_H__ +#define __ARCH_ARM_BOOTINFO_H__ + +struct __packed arch_bootmodule { }; +DEFINE_STRUCT_PTR_TYPE(arch_bootmodule); + +struct __packed arch_boot_info { }; +DEFINE_STRUCT_PTR_TYPE(arch_boot_info); + +#endif + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h index 8389da4f72..bf5586a76b 100644 --- a/xen/include/xen/bootinfo.h +++ b/xen/include/xen/bootinfo.h @@ -5,11 +5,8 @@ #include <xen/compiler.h> #include <xen/mm-frame.h> -#ifdef CONFIG_X86 -#include <asm/bootinfo.h> -#else - struct arch_bootmodule { }; - struct arch_boot_info { }; +#if defined CONFIG_X86 || CONFIG_ARM || CONFIG_RISCV +# include <asm/bootinfo.h> #endif /* Boot module binary type / purpose */