alder_lake_bios/Insyde/InsydeModulePkg/Universal/Console/RotateScreenDxe/HookLib.h

76 lines
2.4 KiB
C

/** @file
Hook Lib
;******************************************************************************
;* Copyright (c) 2012 - 2014, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#include <Uefi.h>
#include <Guid/DebugMask.h>
#include <Library/UefiLib.h>
#include <Library/BaseLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
#include <Protocol/DriverBinding.h>
typedef struct _HOOK_DRIVER_BINDING_ENTRY {
UINT32 Signature;
LIST_ENTRY Link;
EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
EFI_DRIVER_BINDING_SUPPORTED Supported;
EFI_DRIVER_BINDING_START Start;
EFI_DRIVER_BINDING_STOP Stop;
} HOOK_DRIVER_BINDING_ENTRY;
#define HOOK_DRIVER_BINDING_ENTRY_SIGNATURE SIGNATURE_32 ('h', 'd', 'b', 'e')
#define HOOK_DRIVER_BINDING_ENTYRY_FROM_LINK(_link) CR (_link, HOOK_DRIVER_BINDING_ENTRY, Link, HOOK_DRIVER_BINDING_ENTRY_SIGNATURE)
EFI_STATUS
EFIAPI
HookDriverBindingLibConstructor (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
);
EFI_DRIVER_BINDING_PROTOCOL *
EFIAPI
LocateDriverBindingByProtocolGuid (
IN EFI_HANDLE ControllerHandle,
IN EFI_GUID *ProtocolGuid
);
HOOK_DRIVER_BINDING_ENTRY *
EFIAPI
FindHookDriverBindingEntry (
EFI_DRIVER_BINDING_PROTOCOL *DriverBinding
);
EFI_STATUS
EFIAPI
HookDriverBinding (
IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
IN EFI_DRIVER_BINDING_SUPPORTED DriverBindingSupported OPTIONAL,
IN EFI_DRIVER_BINDING_START DriverBindingStart OPTIONAL,
IN EFI_DRIVER_BINDING_STOP DriverBindingStop OPTIONAL,
OUT HOOK_DRIVER_BINDING_ENTRY **Entry
);
EFI_STATUS
EFIAPI
HookDriverBindingByDriverName (
IN CHAR16 *DriverName,
IN EFI_DRIVER_BINDING_SUPPORTED DriverBindingSupported OPTIONAL,
IN EFI_DRIVER_BINDING_START DriverBindingStart OPTIONAL,
IN EFI_DRIVER_BINDING_STOP DriverBindingStop OPTIONAL,
OUT HOOK_DRIVER_BINDING_ENTRY **Entry
);