On 10/04/18 21:05, jim.dai...@dell.com wrote: >> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of >> Laszlo Ersek > > I'll attempt answer some of your questions, but Jaben may have to > answer some of them (like his commit speed :-) or questions about what > the shell spec allows). > >> >> So my first question would have been, what if the shell is memory mapped >> (from a firmware volume), but the platform doesn't expose firmware >> filesystems (FFSs) as EFI simple file system protocol instances? In that >> case, the "file system on which the executing shell is located" seems >> ill-defined. > > In such a case homefilesystem will not get defined, I think.
OK, thanks. > >>>>> execute %homefilesystem% to set the cwd to the root of the file system >>>>> where the shell is located. >> >> I think the commit message here misses a "CD" command. > > The shell does not handle "cd fsN:". But "fsN:" does work. I suppose > one could always add a "cd \" after "%hoemfilesystem%", but I think it > will not have any effect in most (all?) cases where homefilesystem is > defined. My mistake. >>>>> + InternalEfiShellSetEnv(L"homefilesystem", StartupScriptPath, TRUE); >>>>> + >> >> Again, this refers to the startup script, not the shell itself. > > The variable's name implies the startup script, but at the point it is > used, it contains only the file system where the shell itself was found. > Code following this continues to modify the variable's value until it > eventually does point to where the startup script *might* be. Thanks for explaining! Laszlo _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel