REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the RedfishPkg 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: Abner Chang <abner.chang@hpe.com>
		
			
				
	
	
		
			152 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   This file is cloned from DMTF libredfish library tag v1.0.0 and maintained
 | |
|   by EDKII.
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // Copyright Notice:
 | |
| // Copyright 2017 Distributed Management Task Force, Inc. All rights reserved.
 | |
| // License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libredfish/LICENSE.md
 | |
| //----------------------------------------------------------------------------
 | |
| 
 | |
|   Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
 | |
|   (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef LIBREDFISH_REDFISH_SERVICE_H_
 | |
| #define LIBREDFISH_REDFISH_SERVICE_H_
 | |
| 
 | |
| #include <IndustryStandard/Http11.h>
 | |
| 
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/HttpLib.h>
 | |
| #include <Library/MemoryAllocationLib.h>
 | |
| #include <Library/NetLib.h>
 | |
| #include <Library/RedfishContentCodingLib.h>
 | |
| #include <Library/UefiRuntimeServicesTableLib.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| 
 | |
| #include <Include/Library/RedfishCrtLib.h>
 | |
| 
 | |
| #include <Protocol/EdkIIRedfishConfigHandler.h>
 | |
| #include <Protocol/RestEx.h>
 | |
| 
 | |
| #include <jansson.h>
 | |
| 
 | |
| typedef struct {
 | |
|   char                    *host;
 | |
|   json_t                  *versions;
 | |
|   unsigned int            flags;
 | |
|   char                    *sessionToken;
 | |
|   char                    *basicAuthStr;
 | |
|   //
 | |
|   // point to the <HOST> part in above "host" field, which will be put into
 | |
|   // the "Host" header of HTTP request message.
 | |
|   //
 | |
|   char                    *HostHeaderValue;
 | |
|   EFI_REST_EX_PROTOCOL    *RestEx;
 | |
| } redfishService;
 | |
| 
 | |
| typedef struct {
 | |
|   json_t            *json;
 | |
|   redfishService    *service;
 | |
| } redfishPayload;
 | |
| 
 | |
| #define REDFISH_AUTH_BASIC         0
 | |
| #define REDFISH_AUTH_BEARER_TOKEN  1
 | |
| #define REDFISH_AUTH_SESSION       2
 | |
| 
 | |
| #define REDFISH_HTTP_RESPONSE_TIMEOUT  5000       /// 5 seconds in uints of millisecond.
 | |
| 
 | |
| ///
 | |
| /// Library class public defines
 | |
| ///
 | |
| #define HTTP_FLAG   L"http://"
 | |
| #define HTTPS_FLAG  L"https://"
 | |
| 
 | |
| ///
 | |
| /// The redfish first URL should be "/redfish/v1/", while we use "/redfish/v1" here without "/"
 | |
| /// in the end is to avoid the 301 Perment redirect response from Redfish profile simulator.
 | |
| ///
 | |
| #define REDFISH_FIRST_URL  L"/redfish/v1"
 | |
| 
 | |
| typedef struct {
 | |
|   unsigned int    authType;
 | |
|   union {
 | |
|     struct {
 | |
|       char    *username;
 | |
|       char    *password;
 | |
|     } userPass;
 | |
|     struct {
 | |
|       char    *token;
 | |
|     } authToken;
 | |
|   } authCodes;
 | |
| } enumeratorAuthentication;
 | |
| 
 | |
| // Values for flags
 | |
| #define REDFISH_FLAG_SERVICE_NO_VERSION_DOC  0x00000001// The Redfish Service lacks the version document (in violation of the Redfish spec)
 | |
| redfishService *
 | |
| createServiceEnumerator (
 | |
|   REDFISH_CONFIG_SERVICE_INFORMATION  *RedfishConfigServiceInfo,
 | |
|   const char                          *rootUri,
 | |
|   enumeratorAuthentication            *auth,
 | |
|   unsigned int                        flags
 | |
|   );
 | |
| 
 | |
| json_t *
 | |
| getUriFromService (
 | |
|   redfishService        *service,
 | |
|   const char            *uri,
 | |
|   EFI_HTTP_STATUS_CODE  **StatusCode
 | |
|   );
 | |
| 
 | |
| json_t *
 | |
| patchUriFromService (
 | |
|   redfishService        *service,
 | |
|   const char            *uri,
 | |
|   const char            *content,
 | |
|   EFI_HTTP_STATUS_CODE  **StatusCode
 | |
|   );
 | |
| 
 | |
| json_t *
 | |
| postUriFromService (
 | |
|   redfishService        *service,
 | |
|   const char            *uri,
 | |
|   const char            *content,
 | |
|   size_t                contentLength,
 | |
|   const char            *contentType,
 | |
|   EFI_HTTP_STATUS_CODE  **StatusCode
 | |
|   );
 | |
| 
 | |
| json_t *
 | |
| deleteUriFromService (
 | |
|   redfishService        *service,
 | |
|   const char            *uri,
 | |
|   EFI_HTTP_STATUS_CODE  **StatusCode
 | |
|   );
 | |
| 
 | |
| redfishPayload *
 | |
| getRedfishServiceRoot (
 | |
|   redfishService        *service,
 | |
|   const char            *version,
 | |
|   EFI_HTTP_STATUS_CODE  **StatusCode
 | |
|   );
 | |
| 
 | |
| redfishPayload *
 | |
| getPayloadByPath (
 | |
|   redfishService        *service,
 | |
|   const char            *path,
 | |
|   EFI_HTTP_STATUS_CODE  **StatusCode
 | |
|   );
 | |
| 
 | |
| void
 | |
| cleanupServiceEnumerator (
 | |
|   redfishService  *service
 | |
|   );
 | |
| 
 | |
| #endif
 |