TianoCore EDK2 master
Loading...
Searching...
No Matches
MmMp.h
Go to the documentation of this file.
1
16#ifndef _MM_MP_H_
17#define _MM_MP_H_
18
19#include <Pi/PiMmCis.h>
20
21#define EFI_MM_MP_PROTOCOL_GUID \
22 { \
23 0x5d5450d7, 0x990c, 0x4180, {0xa8, 0x3, 0x8e, 0x63, 0xf0, 0x60, 0x83, 0x7 } \
24 }
25
26//
27// Revision definition.
28//
29#define EFI_MM_MP_PROTOCOL_REVISION 0x00
30
31//
32// Attribute flags
33//
34#define EFI_MM_MP_TIMEOUT_SUPPORTED 0x01
35
36//
37// Completion token
38//
39typedef VOID *MM_COMPLETION;
40
41typedef struct {
42 MM_COMPLETION Completion;
43 EFI_STATUS Status;
45
47
58typedef
62 OUT UINTN *NumberOfProcessors
63 );
64
124typedef
128 IN EFI_AP_PROCEDURE2 Procedure,
129 IN UINTN CpuNumber,
130 IN UINTN TimeoutInMicroseconds,
131 IN OUT VOID *ProcedureArguments OPTIONAL,
132 IN OUT MM_COMPLETION *Token,
133 IN OUT EFI_STATUS *CPUStatus
134 );
135
202typedef
206 IN EFI_AP_PROCEDURE2 Procedure,
207 IN UINTN TimeoutInMicroseconds,
208 IN OUT VOID *ProcedureArguments OPTIONAL,
209 IN OUT MM_COMPLETION *Token,
210 IN OUT EFI_STATUS *CPUStatus
211 );
212
237typedef
241 IN EFI_AP_PROCEDURE Procedure,
242 IN OUT VOID *ProcedureArguments OPTIONAL
243 );
244
273typedef
277 IN MM_COMPLETION Token
278 );
279
305typedef
307(EFIAPI *EFI_WAIT_FOR_PROCEDURE)(
309 IN MM_COMPLETION Token
310 );
311
317 UINT32 Revision;
318 UINT32 Attributes;
319 EFI_MM_GET_NUMBER_OF_PROCESSORS GetNumberOfProcessors;
320 EFI_MM_DISPATCH_PROCEDURE DispatchProcedure;
321 EFI_MM_BROADCAST_PROCEDURE BroadcastProcedure;
322 EFI_MM_SET_STARTUP_PROCEDURE SetStartupProcedure;
323 EFI_CHECK_FOR_PROCEDURE CheckForProcedure;
324 EFI_WAIT_FOR_PROCEDURE WaitForProcedure;
325};
326
327extern EFI_GUID gEfiMmMpProtocolGuid;
328
329#endif
UINT64 UINTN
#define CONST
Definition: Base.h:259
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
EFI_STATUS(EFIAPI * EFI_CHECK_FOR_PROCEDURE)(IN CONST EFI_MM_MP_PROTOCOL *This, IN MM_COMPLETION Token)
Definition: MmMp.h:275
EFI_STATUS(EFIAPI * EFI_MM_BROADCAST_PROCEDURE)(IN CONST EFI_MM_MP_PROTOCOL *This, IN EFI_AP_PROCEDURE2 Procedure, IN UINTN TimeoutInMicroseconds, IN OUT VOID *ProcedureArguments OPTIONAL, IN OUT MM_COMPLETION *Token, IN OUT EFI_STATUS *CPUStatus)
Definition: MmMp.h:204
EFI_STATUS(EFIAPI * EFI_MM_GET_NUMBER_OF_PROCESSORS)(IN CONST EFI_MM_MP_PROTOCOL *This, OUT UINTN *NumberOfProcessors)
Definition: MmMp.h:60
EFI_STATUS(EFIAPI * EFI_MM_SET_STARTUP_PROCEDURE)(IN CONST EFI_MM_MP_PROTOCOL *This, IN EFI_AP_PROCEDURE Procedure, IN OUT VOID *ProcedureArguments OPTIONAL)
Definition: MmMp.h:239
EFI_STATUS(EFIAPI * EFI_MM_DISPATCH_PROCEDURE)(IN CONST EFI_MM_MP_PROTOCOL *This, IN EFI_AP_PROCEDURE2 Procedure, IN UINTN CpuNumber, IN UINTN TimeoutInMicroseconds, IN OUT VOID *ProcedureArguments OPTIONAL, IN OUT MM_COMPLETION *Token, IN OUT EFI_STATUS *CPUStatus)
Definition: MmMp.h:126
EFI_STATUS(EFIAPI * EFI_WAIT_FOR_PROCEDURE)(IN CONST EFI_MM_MP_PROTOCOL *This, IN MM_COMPLETION Token)
Definition: MmMp.h:307
VOID(EFIAPI * EFI_AP_PROCEDURE)(IN OUT VOID *Buffer)
Definition: PiMultiPhase.h:198
EFI_STATUS(EFIAPI * EFI_AP_PROCEDURE2)(IN VOID *ProcedureArgument)
Definition: PiMultiPhase.h:214
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
Definition: Base.h:213