[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v11 07/13] x86: add multiboot2 protocol support for EFI platforms
On 05/12/16 22:25, Daniel Kiper wrote: > diff --git a/xen/arch/x86/efi/stub.c b/xen/arch/x86/efi/stub.c > index 4158124..6ea6aa1 100644 > --- a/xen/arch/x86/efi/stub.c > +++ b/xen/arch/x86/efi/stub.c > @@ -3,6 +3,44 @@ > #include <xen/init.h> > #include <xen/lib.h> > #include <asm/page.h> > +#include <asm/efibind.h> > +#include <efi/efidef.h> > +#include <efi/eficapsule.h> > +#include <efi/eficon.h> > +#include <efi/efidevp.h> > +#include <efi/efiapi.h> > + > +/* > + * Here we are in EFI stub. EFI calls are not supported due to lack > + * of relevant functionality in compiler and/or linker. > + * > + * efi_multiboot2() is an exception. Please look below for more details. > + */ > + > +paddr_t __init noreturn efi_multiboot2(EFI_HANDLE ImageHandle, > + EFI_SYSTEM_TABLE *SystemTable) > +{ > + CHAR16 *err = L"Xen does not have EFI code build in!!!\r\nSystem > halted!!!\r\n"; > + SIMPLE_TEXT_OUTPUT_INTERFACE *StdErr; > + > + StdErr = SystemTable->StdErr ? SystemTable->StdErr : SystemTable->ConOut; > + > + /* > + * Print error message and halt the system. > + * > + * We have to open code MS x64 calling convention > + * in assembly because here this convention may > + * not be directly supported by C compiler. > + */ > + asm volatile( > + " call %2 \n" This should be `call *%2`, because otherwise gcc complains with: stub.c: Assembler messages: stub.c:35: Warning: indirect call without `*' Interestingly, it isn't fatal to the build which is why I didn't spot it earlier. I also can't work out why it isn't fatal to the build, because I'd have thought the -Werror should have been enough. ~Andrew > + "0: hlt \n" > + " jmp 0b \n" > + : "+c" (StdErr), "+d" (err) : "g" (StdErr->OutputString) > + : "rax", "r8", "r9", "r10", "r11", "memory"); > + > + unreachable(); > +} > > bool efi_enabled(unsigned int feature) > { _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |