[syslinux] load_env32

Geert Stappers stappers at stappers.nl
Mon Oct 26 12:54:24 PDT 2015


On Fri, Oct 09, 2015 at 04:28:58PM +0200, Geert Stappers via Syslinux wrote:
> On Thu, Oct 08, 2015 at 01:24:26AM +0200, Geert Stappers via Syslinux wrote:
> > --- a/efi/main.c
> > +++ b/efi/main.c
> > @@ -1371,7 +1371,9 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *table)
> >          */
> >         efi_setcwd(DevicePathToStr(info->FilePath));
> >  
> > +       Print(L"fs_init start\n");
> >         fs_init(ops, (void *)&priv);
> > +       Print(L"fs_init done.\n");
> >  
> >         /*
> >          * There may be pending user input that wasn't processed by
> > @@ -1383,8 +1385,10 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *table)
> >                 status = uefi_call_wrapper(in->ReadKeyStroke, 2, in, &key);
> >         } while (status == EFI_SUCCESS);
> >  
> > +       Print(L"load_env32 start\n");
> >         if (!setjmp(load_error_buf))
> >                 load_env32(NULL);
> > +       Print(L"load_env32 done.\n");
> >  
> >         /* load_env32() failed.. cancel timer and bailout */
> >         status = cancel_timer(timer_ev);
> > 
> > 
> > Untested
> 
> (James did)
> 
> It dies in load_env32.
> 
> $ git grep load_env
> core/diskstart.inc:             pm_call load_env32
> core/elflink/load_env32.c:void load_env32(com32sys_t * regs __unused)
> core/extern.inc:        ; elflink/load_env32.c
> core/extern.inc:        extern load_env32, pm_env32_run
> core/include/core.h:extern void load_env32(com32sys_t *regs);
> core/isolinux.asm:              pm_call load_env32
> core/isolinux.asm:              jmp kaboom              ; load_env32() should never return. If
> core/pxelinux.asm:              pm_call load_env32
> core/pxelinux.asm:              jmp kaboom              ; load_env32() shouldn't return. If it does, then kaboom!
> efi/main.c:     Print(L"load_env32 start\n");
> efi/main.c:             load_env32(NULL);
> efi/main.c:     Print(L"load_env32 done.\n");
> efi/main.c:     /* load_env32() failed.. cancel timer and bailout */
> 
> 
> In which source file should the next debug print statement go?

--- a/core/elflink/load_env32.c
+++ b/core/elflink/load_env32.c
@@ -119,6 +119,7 @@ void load_env32(com32sys_t * regs __unused)
                NULL
        };
 
+        printf("Starting %s elf module subsystem...\n", ELF_MOD_SYS);
        dprintf("Starting %s elf module subsystem...\n", ELF_MOD_SYS);
 
        if (strlen(CurrentDirName) && !path_add(CurrentDirName)) {


Didn't show up in testresult posted
at http://www.syslinux.org/archives/2015-October/024433.html

Further advice is appreciated


Groeten
Geert Stappers
-- 
Leven en laten leven


More information about the Syslinux mailing list