| /** @file | |
| Common definitions needed for Platform Runtime Mechanism (PRM) modules. | |
| Copyright (c) Microsoft Corporation | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef PRM_MODULE_H_ | |
| #define PRM_MODULE_H_ | |
| #include <Prm.h> | |
| #include <PrmContextBuffer.h> | |
| #include <PrmDataBuffer.h> | |
| #include <PrmExportDescriptor.h> | |
| #include <PrmMmio.h> | |
| /** | |
| Macro that provides a condensed form of a PRM Handler. | |
| This macro can be used to define a PRM Handler that uses the standard PRM Handle | |
| signature. It is simply provided for convenience. | |
| **/ | |
| #define PRM_HANDLER_EXPORT(Name) \ | |
| STATIC_ASSERT (sizeof (PRM_STRING_(Name)) <= PRM_HANDLER_NAME_MAXIMUM_LENGTH, "The PRM handler exceeds the maximum allowed size of 128."); \ | |
| \ | |
| /** \ | |
| A Platform Runtime Mechanism (PRM) handler. \ | |
| \ | |
| @param[in] ParameterBuffer A pointer to the PRM handler parameter buffer \ | |
| @param[in] ContextBUffer A pointer to the PRM handler context buffer \ | |
| \ | |
| @retval EFI_STATUS The PRM handler executed successfully. \ | |
| @retval Others An error occurred in the PRM handler. \ | |
| \ | |
| **/ \ | |
| EFI_STATUS \ | |
| PRM_EXPORT_API \ | |
| EFIAPI \ | |
| Name ( \ | |
| IN VOID *ParameterBuffer, \ | |
| IN PRM_CONTEXT_BUFFER *ContextBuffer \ | |
| ) \ | |
| #endif |