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
 |