]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Drivers/ArmScmiDxe/ArmScmiBaseProtocolPrivate.h
ArmPkg: Introduce SCMI protocol
[mirror_edk2.git] / ArmPkg / Drivers / ArmScmiDxe / ArmScmiBaseProtocolPrivate.h
1 /** @file
2
3 Copyright (c) 2017-2018, Arm Limited. All rights reserved.
4
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 System Control and Management Interface V1.0
14 http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/
15 DEN0056A_System_Control_and_Management_Interface.pdf
16 **/
17
18 #ifndef ARM_SCMI_BASE_PROTOCOL_PRIVATE_H_
19 #define ARM_SCMI_BASE_PROTOCOL_PRIVATE_H_
20
21 // Return values of BASE_DISCOVER_LIST_PROTOCOLS command.
22 typedef struct {
23 UINT32 NumProtocols;
24
25 // Array of four protocols in each element
26 // Total elements = 1 + (NumProtocols-1)/4
27
28 // NOTE: Since EDK2 does not allow flexible array member [] we declare
29 // here array of 1 element length. However below is used as a variable
30 // length array.
31 UINT8 Protocols[1];
32 } BASE_DISCOVER_LIST;
33
34 /** Initialize Base protocol and install protocol on a given handle.
35
36 @param[in] Handle Handle to install Base protocol.
37
38 @retval EFI_SUCCESS Base protocol interface installed
39 successfully.
40 **/
41 EFI_STATUS
42 ScmiBaseProtocolInit (
43 IN OUT EFI_HANDLE* Handle
44 );
45
46 #endif /* ARM_SCMI_BASE_PROTOCOL_PRIVATE_H_ */