1 /** @file 2 This driver produces Print2 protocol layered on top of the PrintLib from the MdePkg. 3 4 Copyright (c) 2009, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #include <PiDxe.h> 16 17 #include <Protocol/Print2.h> 18 #include <Library/PrintLib.h> 19 #include <Library/UefiBootServicesTableLib.h> 20 #include <Library/DebugLib.h> 21 #include <Library/UefiDriverEntryPoint.h> 22 23 EFI_HANDLE mPrintThunkHandle = NULL; 24 25 CONST EFI_PRINT2_PROTOCOL mPrint2Protocol = { 26 UnicodeBSPrint, 27 UnicodeSPrint, 28 UnicodeBSPrintAsciiFormat, 29 UnicodeSPrintAsciiFormat, 30 UnicodeValueToString, 31 AsciiBSPrint, 32 AsciiSPrint, 33 AsciiBSPrintUnicodeFormat, 34 AsciiSPrintUnicodeFormat, 35 AsciiValueToString 36 }; 37 38 /** 39 The user Entry Point for Print module. 40 41 This is the entry point for Print DXE Driver. It installs the Print2 Protocol. 42 43 @param[in] ImageHandle The firmware allocated handle for the EFI image. 44 @param[in] SystemTable A pointer to the EFI System Table. 45 46 @retval EFI_SUCCESS The entry point is executed successfully. 47 @retval Others Some error occurs when executing this entry point. 48 49 **/ 50 EFI_STATUS 51 EFIAPI 52 PrintEntryPoint ( 53 IN EFI_HANDLE ImageHandle, 54 IN EFI_SYSTEM_TABLE *SystemTable 55 ) 56 { 57 EFI_STATUS Status; 58 59 Status = gBS->InstallMultipleProtocolInterfaces ( 60 &mPrintThunkHandle, 61 &gEfiPrint2ProtocolGuid, &mPrint2Protocol, 62 NULL 63 ); 64 ASSERT_EFI_ERROR (Status); 65 66 return Status; 67 } 68