On Sep 18, 2014, at 10:21 PM, J. E. <[email protected]> wrote:

> Yep thats the first thing I did, search all of UDK for SHELLENV_GET_ENV using 
> Agent Ransack which searches binary and unicode as well.
> I found nothing except for the EfiShellEnvironment2.h and UefiShellLib.lib 
> files.
> No idea where SHELLENV_GET_ENV is defined, it doesnt make sense.

A Protocol is a C structure, typically with member functions, that is named by 
a GUID. 

If you  grep for EFI_SHELL_EXECUTE


~/work/src/edk2(master)>git grep EFI_SHELL_EXECUTE -- *.h
ShellPkg/Include/Protocol/EfiShell.h:197:(EFIAPI *EFI_SHELL_EXECUTE) (
ShellPkg/Include/Protocol/EfiShell.h:1080:  EFI_SHELL_EXECUTE                   
      Execute;

We see that it is a typedef for a member function in a protocol the structure 
for the protocol is EFI_SHELL_PROTOCOL, the name of the protocol is 
gEfiShellProtocolGuid. The EFI_SHELL_EXECUTE typedef is only used to define the 
protocol structure, you will not tend to see these in other places. 

~/work/src/edk2(master)>git grep gEfiShellProtocolGuid -- *.c
ShellPkg/Application/Shell/ShellProtocol.c:3478:                             
&gEfiShellProtocolGuid,
ShellPkg/Application/Shell/ShellProtocol.c:3491:                               
&gEfiShellProtocolGuid,
ShellPkg/Application/Shell/ShellProtocol.c:3506:                                
&gEfiShellProtocolGuid,
ShellPkg/Application/Shell/ShellProtocol.c:3519:                            
&gEfiShellProtocolGuid,
ShellPkg/Application/Shell/ShellProtocol.c:3542:                      
&gEfiShellProtocolGuid,
ShellPkg/Application/Shell/ShellProtocol.c:3588:                                
               &gEfiShellProtocolGuid,
ShellPkg/Application/Shell/ShellProtocol.c:3598:                                
             &gEfiShellProtocolGuid,
ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c:784:  
{STRING_TOKEN(STR_SHELL),                 &gEfiShellProtocolGuid,               
            NULL},
ShellPkg/Library/UefiShellLib/UefiShellLib.c:188:    &gEfiShellProtocolGuid,
ShellPkg/Library/UefiShellLib/UefiShellLib.c:199:      &gEfiShellProtocolGuid,
ShellPkg/Library/UefiShellLib/UefiShellLib.c:339:                       
&gEfiShellProtocolGuid,

If you search for the EFI_GUID you can find the producers and the consumers of 
the interface. 

Thanks,

Andrew Fish

------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to