REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			163 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   This file defines the EFI REST JSON Structure Protocol interface.
 | |
| 
 | |
|   (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
|   @par Revision Reference:
 | |
|   This Protocol is introduced in UEFI Specification 2.8
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef EFI_REST_JSON_STRUCTURE_PROTOCOL_H_
 | |
| #define EFI_REST_JSON_STRUCTURE_PROTOCOL_H_
 | |
| 
 | |
| ///
 | |
| /// GUID definitions
 | |
| ///
 | |
| #define EFI_REST_JSON_STRUCTURE_PROTOCOL_GUID \
 | |
|   { \
 | |
|     0xa9a048f6, 0x48a0, 0x4714, {0xb7, 0xda, 0xa9, 0xad,0x87, 0xd4, 0xda, 0xc9 } \
 | |
|   }
 | |
| 
 | |
| typedef struct _EFI_REST_JSON_STRUCTURE_PROTOCOL  EFI_REST_JSON_STRUCTURE_PROTOCOL;
 | |
| typedef CHAR8                                     *EFI_REST_JSON_RESOURCE_TYPE_DATATYPE;
 | |
| 
 | |
| ///
 | |
| /// Structure defintions of resource name space.
 | |
| ///
 | |
| /// The fields declared in this structure define the
 | |
| /// name and revision of payload delievered throught
 | |
| /// REST API.
 | |
| ///
 | |
| typedef struct _EFI_REST_JSON_RESOURCE_TYPE_NAMESPACE {
 | |
|   CHAR8    *ResourceTypeName; ///< Resource type name
 | |
|   CHAR8    *MajorVersion;     ///< Resource major version
 | |
|   CHAR8    *MinorVersion;     ///< Resource minor version
 | |
|   CHAR8    *ErrataVersion;    ///< Resource errata version
 | |
| } EFI_REST_JSON_RESOURCE_TYPE_NAMESPACE;
 | |
| 
 | |
| ///
 | |
| /// REST resource type identifier
 | |
| ///
 | |
| /// REST resource type consists of name space and data type.
 | |
| ///
 | |
| typedef struct _EFI_REST_JSON_RESOURCE_TYPE_IDENTIFIER {
 | |
|   EFI_REST_JSON_RESOURCE_TYPE_NAMESPACE    NameSpace; ///< Namespace of this resource type.
 | |
|   EFI_REST_JSON_RESOURCE_TYPE_DATATYPE     DataType;  ///< Name of data type declared in this
 | |
|                                                       ///< resource type.
 | |
| } EFI_REST_JSON_RESOURCE_TYPE_IDENTIFIER;
 | |
| 
 | |
| ///
 | |
| /// List of JSON to C structure conversions which this convertor supports.
 | |
| ///
 | |
| typedef struct _EFI_REST_JSON_STRUCTURE_SUPPORTED {
 | |
|   LIST_ENTRY                                NextSupportedRsrcInterp; ///< Linklist to next supported conversion.
 | |
|   EFI_REST_JSON_RESOURCE_TYPE_IDENTIFIER    RestResourceInterp;      ///< JSON resource type this convertor supports.
 | |
| } EFI_REST_JSON_STRUCTURE_SUPPORTED;
 | |
| 
 | |
| ///
 | |
| /// The header file of JSON C structure
 | |
| ///
 | |
| typedef struct _EFI_REST_JSON_STRUCTURE_HEADER {
 | |
|   EFI_REST_JSON_RESOURCE_TYPE_IDENTIFIER    JsonRsrcIdentifier; ///< Resource identifier which use to
 | |
|                                                                 ///< choice the proper interpreter.
 | |
|   ///< Follow by a pointer points to JSON structure, the content in the
 | |
|   ///< JSON structure is implementation-specific according to converter producer.
 | |
|   VOID                                      *JsonStructurePointer;
 | |
| } EFI_REST_JSON_STRUCTURE_HEADER;
 | |
| 
 | |
| /**
 | |
|   JSON-IN C Structure-OUT function. Convert the given REST JSON resource into structure.
 | |
| 
 | |
|   @param[in]    This                This is the EFI_REST_JSON_STRUCTURE_PROTOCOL instance.
 | |
|   @param[in]    JsonRsrcIdentifier  This indicates the resource type and version is given in
 | |
|                                     ResourceJsonText.
 | |
|   @param[in]    ResourceJsonText    REST JSON resource in text format.
 | |
|   @param[out]   JsonStructure       Pointer to receive the pointer to EFI_REST_JSON_STRUCTURE_HEADER
 | |
| 
 | |
|   @retval EFI_SUCCESS
 | |
|   @retval Others
 | |
| --*/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_REST_JSON_STRUCTURE_TO_STRUCTURE)(
 | |
|   IN  EFI_REST_JSON_STRUCTURE_PROTOCOL        *This,
 | |
|   IN  EFI_REST_JSON_RESOURCE_TYPE_IDENTIFIER *JsonRsrcIdentifier OPTIONAL,
 | |
|   IN  CHAR8                                   *ResourceJsonText,
 | |
|   OUT  EFI_REST_JSON_STRUCTURE_HEADER         **JsonStructure
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Convert the given REST JSON structure into JSON text.
 | |
| 
 | |
|   @param[in]    This                 This is the EFI_REST_JSON_STRUCTURE_PROTOCOL instance.
 | |
|   @param[in]    JsonStructureHeader  The point to EFI_REST_JSON_STRUCTURE_HEADER  structure.
 | |
|   @param[out]   ResourceJsonText     Pointer to receive REST JSON resource in text format.
 | |
| 
 | |
|   @retval EFI_SUCCESS
 | |
|   @retval Others
 | |
| 
 | |
| --*/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_REST_JSON_STRUCTURE_TO_JSON)(
 | |
|   IN EFI_REST_JSON_STRUCTURE_PROTOCOL     *This,
 | |
|   IN EFI_REST_JSON_STRUCTURE_HEADER       *JsonStructureHeader,
 | |
|   OUT CHAR8                               **ResourceJsonText
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   This function destroys the REST JSON structure.
 | |
| 
 | |
|   @param[in]    This                 This is the EFI_REST_JSON_STRUCTURE_PROTOCOL instance.
 | |
|   @param[in]    JsonStructureHeader  JSON structure to destroy.
 | |
| 
 | |
|   @retval EFI_SUCCESS
 | |
|   @retval Others
 | |
| 
 | |
| --*/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_REST_JSON_STRUCTURE_DESTORY_STRUCTURE)(
 | |
|   IN EFI_REST_JSON_STRUCTURE_PROTOCOL   *This,
 | |
|   IN EFI_REST_JSON_STRUCTURE_HEADER     *JsonStructureHeader
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   This function provides REST JSON resource to structure converter registration.
 | |
| 
 | |
|   @param[in]    This                     This is the EFI_REST_JSON_STRUCTURE_PROTOCOL instance.
 | |
|   @param[in]    JsonStructureSupported   The type and version of REST JSON resource which this converter
 | |
|                                          supports.
 | |
|   @param[in]    ToStructure              The function to convert REST JSON resource to structure.
 | |
|   @param[in]    ToJson                   The function to convert REST JSON structure to JSON in text format.
 | |
|   @param[in]    DestroyStructure         Destroy REST JSON structure returned in ToStructure() function.
 | |
| 
 | |
|   @retval EFI_SUCCESS             Register successfully.
 | |
|   @retval Others                  Fail to register.
 | |
| 
 | |
| --*/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_REST_JSON_STRUCTURE_REGISTER)(
 | |
|   IN EFI_REST_JSON_STRUCTURE_PROTOCOL       *This,
 | |
|   IN EFI_REST_JSON_STRUCTURE_SUPPORTED      *JsonStructureSupported,
 | |
|   IN EFI_REST_JSON_STRUCTURE_TO_STRUCTURE   ToStructure,
 | |
|   IN EFI_REST_JSON_STRUCTURE_TO_JSON        ToJson,
 | |
|   IN EFI_REST_JSON_STRUCTURE_DESTORY_STRUCTURE DestroyStructure
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// EFI REST JSON to C structure protocol definition.
 | |
| ///
 | |
| struct _EFI_REST_JSON_STRUCTURE_PROTOCOL {
 | |
|   EFI_REST_JSON_STRUCTURE_REGISTER             Register;         ///< Register JSON to C structure convertor
 | |
|   EFI_REST_JSON_STRUCTURE_TO_STRUCTURE         ToStructure;      ///< The function to convert JSON to C structure
 | |
|   EFI_REST_JSON_STRUCTURE_TO_JSON              ToJson;           ///< The function to convert C structure to JSON
 | |
|   EFI_REST_JSON_STRUCTURE_DESTORY_STRUCTURE    DestoryStructure; ///< Destory C structure.
 | |
| };
 | |
| 
 | |
| #endif
 |