Files
system76-edk2/PrmPkg/Include/PrmModule.h
Michael Kubacki a409f4b67d PrmPkg: Remove PRM Module Update Lock
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>
2022-04-05 00:42:38 +00:00

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