/** Return protocol attributes of the performance management protocol. @param[in] This A Pointer to SCMI_PERFORMANCE_PROTOCOL Instance. @param[out] Attributes Protocol attributes. @retval EFI_SUCCESS Protocol attributes are returned. @retval EFI_DEVICE_ERROR SCP returns an SCMI error. @retval !(EFI_SUCCESS) Other errors. **/ STATIC EFI_STATUS PerformanceGetAttributes ( IN SCMI_PERFORMANCE_PROTOCOL *This, OUT SCMI_PERFORMANCE_PROTOCOL_ATTRIBUTES *Attributes ) { EFI_STATUS Status; UINT32* ReturnValues; Status = ScmiGetProtocolAttributes ( SCMI_PROTOCOL_ID_PERFORMANCE, &ReturnValues ); if (EFI_ERROR (Status)) { return Status; } CopyMem ( Attributes, ReturnValues, sizeof (SCMI_PERFORMANCE_PROTOCOL_ATTRIBUTES) ); return EFI_SUCCESS; }
/** Return total number of SCMI protocols supported by the SCP firmware. @param[in] This A Pointer to SCMI_BASE_PROTOCOL Instance. @param[out] TotalProtocols Total number of SCMI protocols supported. @retval EFI_SUCCESS Total number of protocols supported are returned. @retval EFI_DEVICE_ERROR SCP returns a SCMI error. @retval !(EFI_SUCCESS) Other errors. **/ STATIC EFI_STATUS BaseGetTotalProtocols ( IN SCMI_BASE_PROTOCOL *This, OUT UINT32 *TotalProtocols ) { EFI_STATUS Status; UINT32 *ReturnValues; Status = ScmiGetProtocolAttributes (SCMI_PROTOCOL_ID_BASE, &ReturnValues); if (EFI_ERROR (Status)) { return Status; } *TotalProtocols = SCMI_TOTAL_PROTOCOLS (ReturnValues[0]); return EFI_SUCCESS; }