Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998 Intel Corporation
Module Name:
handle.c Abstract:
Shell environment handle information management
Revision History
--*/
#include "shelle.h"
UINTN SEnvNoHandles; EFI_HANDLE *SEnvHandles;
VOID INTERNAL SEnvInitHandleGlobals ( VOID ) { SEnvNoHandles = 0; SEnvHandles = NULL; }
VOID INTERNAL SEnvLoadHandleTable ( VOID ) { /*
* For ease of use the shell maps handle #'s to short numbers. * * This is only done on request for various internal commands and * the references are immediately freed when the internal command * completes. */
/* Free any old info */ SEnvFreeHandleTable();
/* Load new info */ SEnvHandles = NULL; LibLocateHandle (AllHandles, NULL, NULL, &SEnvNoHandles, &SEnvHandles); }
VOID INTERNAL SEnvFreeHandleTable ( VOID ) { if (SEnvNoHandles) { SEnvFreeHandleProtocolInfo();
FreePool (SEnvHandles); SEnvHandles = NULL; SEnvNoHandles = 0; } }
UINTN SEnvHandleNoFromStr( IN CHAR16 *Str ) { UINTN HandleNo;
HandleNo = xtoi(Str); HandleNo = HandleNo > SEnvNoHandles ? 0 : HandleNo; return HandleNo; }
EFI_HANDLE SEnvHandleFromStr( IN CHAR16 *Str ) { UINTN HandleNo; EFI_HANDLE Handle;
HandleNo = xtoi(Str) - 1; Handle = HandleNo > SEnvNoHandles ? NULL : SEnvHandles[HandleNo]; return Handle; }
|