1 /*++ 2 3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 WinNtLib.c 15 16 Abstract: 17 18 Setup gWinNt global 19 20 --*/ 21 22 #include "Efi2WinNT.h" 23 #include "EfiWinNtLib.h" 24 #include "EfiDriverLib.h" 25 #include "EfiHobLib.h" 26 #include EFI_GUID_DEFINITION (Hob) 27 28 EFI_WIN_NT_THUNK_PROTOCOL *gWinNt; 29 30 EFI_GUID mEfiHobListGuid = EFI_HOB_LIST_GUID; 31 32 EFI_STATUS EfiInitializeWinNtDriverLib(IN EFI_HANDLE ImageHandle,IN EFI_SYSTEM_TABLE * SystemTable)33EfiInitializeWinNtDriverLib ( 34 IN EFI_HANDLE ImageHandle, 35 IN EFI_SYSTEM_TABLE *SystemTable 36 ) 37 /*++ 38 39 Routine Description: 40 41 Intialize gWinNt and initialize debug console. 42 43 Arguments: 44 45 (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT) 46 47 Returns: 48 49 None 50 51 --*/ 52 // TODO: ImageHandle - add argument and description to function comment 53 // TODO: SystemTable - add argument and description to function comment 54 // TODO: EFI_NOT_FOUND - add return value to function comment 55 // TODO: EFI_NOT_FOUND - add return value to function comment 56 // TODO: EFI_SUCCESS - add return value to function comment 57 { 58 EFI_STATUS Status; 59 VOID *HobList; 60 VOID *Pointer; 61 62 Status = EfiLibGetSystemConfigurationTable (&mEfiHobListGuid, &HobList); 63 if (EFI_ERROR (Status)) { 64 return EFI_NOT_FOUND; 65 } 66 67 ASSERT (NULL != HobList); 68 Status = GetNextGuidHob (&HobList, &gEfiWinNtThunkProtocolGuid, &Pointer, NULL); 69 if (EFI_ERROR (Status)) { 70 return EFI_NOT_FOUND; 71 } 72 73 gWinNt = (VOID *) (*(UINTN *) (Pointer)); 74 return EFI_SUCCESS; 75 } 76