TianoCore EDK2 master
Loading...
Searching...
No Matches
ArmScmiPerformanceProtocolPrivate.h
Go to the documentation of this file.
1
12#ifndef ARM_SCMI_PERFORMANCE_PROTOCOL_PRIVATE_H_
13#define ARM_SCMI_PERFORMANCE_PROTOCOL_PRIVATE_H_
14
16
17// Number of performance levels returned by a call to the SCP, Lvls Bits[11:0]
18#define NUM_PERF_LEVELS_MASK 0x0FFF
19#define NUM_PERF_LEVELS(Lvls) (Lvls & NUM_PERF_LEVELS_MASK)
20
21// Number of performance levels remaining after a call to the SCP, Lvls Bits[31:16]
22#define NUM_REMAIN_PERF_LEVELS_SHIFT 16
23#define NUM_REMAIN_PERF_LEVELS(Lvls) (Lvls >> NUM_REMAIN_PERF_LEVELS_SHIFT)
24
28typedef struct {
29 UINT32 NumLevels;
30
31 // NOTE: Since EDK2 does not allow flexible array member [] we declare
32 // here array of 1 element length. However below is used as a variable
33 // length array.
34 SCMI_PERFORMANCE_LEVEL PerfLevel[1]; // Offset to array of performance levels
36
46 IN EFI_HANDLE *Handle
47 );
48
49#endif /* ARM_SCMI_PERFORMANCE_PROTOCOL_PRIVATE_H_ */
EFI_STATUS ScmiPerformanceProtocolInit(IN EFI_HANDLE *Handle)
#define IN
Definition: Base.h:279
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33