Per latest design direction, we've abandoned treating the PRM Module Update Lock as an exported object. There was concern sharing the PRM module address space (where the lock structure resided in a data section) with the OS kernel mode driver. The lock will now be entirely maintained in OS context with interaces to control the lock available to ASL (for _DSM invocation) and OS native code (for direct call). Cc: Andrew Fish <afish@apple.com> Cc: Kang Gao <kang.gao@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Michael Kubacki <michael.kubacki@microsoft.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Benjamin You <benjamin.you@intel.com> Cc: Liu Yun <yun.y.liu@intel.com> Cc: Ankit Sinha <ankit.sinha@intel.com> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Acked-by: Michael D Kinney <michael.d.kinney@intel.com> Acked-by: Liming Gao <gaoliming@byosoft.com.cn> Acked-by: Leif Lindholm <quic_llindhol@quicinc.com> Reviewed-by: Ankit Sinha <ankit.sinha@intel.com>
49 lines
2.1 KiB
C
49 lines
2.1 KiB
C
/** @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>
|
|
#include <PrmOsServices.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
|