/** @file Common Platform Runtime Mechanism (PRM) definitions. Copyright (c) Microsoft Corporation Copyright (c) 2022, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef PRM_H_ #define PRM_H_ #include #include #if defined (_MSC_VER) #define PRM_EXPORT_API __declspec(dllexport) #elif defined (__GNUC__) #define PRM_EXPORT_API __attribute__ ((visibility ("default"))) #else #define PRM_EXPORT_API #endif #define PRM_HANDLER_NAME_MAXIMUM_LENGTH 128 #define PRM_STRING_(x) #x #define PRM_STRING(x) PRM_STRING_(x) /** A Platform Runtime Mechanism (PRM) handler function. @param[in] ParameterBuffer A pointer to a buffer with arbitrary data that is allocated and populated by the PRM handler caller. @param[in] ContextBuffer A pointer to a buffer with arbitrary data that is allocated in the firmware boot environment. @retval EFI_STATUS The PRM handler executed successfully. @retval Others An error occurred in the PRM handler. **/ typedef EFI_STATUS (EFIAPI PRM_HANDLER)( IN VOID *ParameterBuffer OPTIONAL, IN PRM_CONTEXT_BUFFER *ContextBuffer OPTIONAL ); #endif