alder_lake_bios/Insyde/InsydeModulePkg/Include/Library/IrsiRegistrationLib.h

145 lines
3.9 KiB
C

/** @file
IRSI Registration Library Class definitions
;******************************************************************************
;* Copyright (c) 2012, 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.
;*
;******************************************************************************
*/
#ifndef _IRSI_REGISTRATION_LIB_H_
#define _IRSI_REGISTRATION_LIB_H_
#include <Protocol/IrsiRegistration.h>
typedef
UINT32
(EFIAPI *IRSI_RUNTIME_SERVICES_ENTRY) (
VOID *CommBuf,
UINT32 BufSize
);
/**
Irsi Registerfunction
This routine provides Irsi function registration
@param Guid IRSI function GUID
@param FunctionNumber Command code of the IRSI function
@param IrsiFunction The IRSI function pointer
@retval EFI_SUCCESS IRSI function successfully registered
@retval EFI_ABORTED System aborted in OS runtime
**/
EFI_STATUS
EFIAPI
IrsiRegisterFunction (
EFI_GUID *Guid,
UINT32 FunctionNumber,
IRSI_FUNCTION IrsiFunction
);
/**
Execute IRSI function
@param Guid IRSI Service Type GUID
@param FunctionNumber Command code of IRSI function
@param CommBuf Communication Buffer
@param BufSize Buffer size
@return IRSR Status
**/
EFI_STATUS
EFIAPI
IrsiExecuteFunction (
IN EFI_GUID *Guid,
IN UINT32 FunctionNumber,
IN VOID *CommBuf,
IN UINT32 BufSize
);
/**
Irsi AddVirtualPointer function
This routine adds pointer to the virtual conversion list
@param Pointer pointer to be converted
@retval EFI_SUCCESS: Pointer successfully added to virtual conversion list
@retval EFI_ABORTED Failed to add virtual pointer conversion list
**/
EFI_STATUS
EFIAPI
IrsiAddVirtualPointer (
VOID **Pointer
);
/**
Irsi RemoveVirtualPointer function
This routine removes pointer from the virtual conversion list
@param[in] Pointer pointer to be removed
@retval EFI_SUCCESS Pointer successfully removed from virtual conversion list.
@retval EFI_NOT_FOUND pointer isn't in the conversion list.
@retval EFI_ABORTED Failed to remove virtual pointer conversion list.
**/
EFI_STATUS
EFIAPI
IrsiRemoveVirtualPointer (
VOID **Pointer
);
/**
Install IRSI Runtime Services
@param RuntimeServicesGuid IRSI Service Type GUID
@param BufSize Buffer size
@retval EFI_SUCCESS IRSI function successfully executed
@retval RuntimeServicesEntry Runtime Services Entrypoint
@retval EFI_SUCCESS Runtime Services successfully installed
@retval EFI_INVALID_PARAMETER NULL services GUID or NULL services entry given
@retval EFI_DEVICE_ERROR Memory allocation failed
@return others Runtime services Configuration table installation failed
**/
EFI_STATUS
EFIAPI
IrsiInstallRuntimeServices (
EFI_GUID *RuntimeServicesGuid,
IRSI_RUNTIME_SERVICES_ENTRY RuntimeServicesEntry
);
/**
IRSI Get Runtime Buffer
During runtime, the memory cannot be allocated by AllocatePool()
This routine provides the pre-allocated IRSI runtime buffer for use at runtime
@param IrsiBuffer Pointer to the pre-allocated runtime buffer pointer
@param BufferSize Pointer to the IRSI runtime buffer size
@retval EFI_SUCCESS Function returns successfully
@retval EFI_DEVICE_ERROR Unable to get IRSI runtime buffer
**/
EFI_STATUS
EFIAPI
IrsiGetRuntimeBuffer (
VOID **IrsiBuffer,
UINTN *BufferSize
);
#endif