Home | History | Annotate | Download | only in PrintDxe
      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