https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
		
			
				
	
	
		
			89 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  This file defines the EFI REST Protocol interface.
 | 
						|
 | 
						|
  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
  @par Revision Reference:
 | 
						|
  This Protocol is introduced in UEFI Specification 2.5
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __EFI_REST_PROTOCOL_H__
 | 
						|
#define __EFI_REST_PROTOCOL_H__
 | 
						|
 | 
						|
#include <Protocol/Http.h>
 | 
						|
 | 
						|
#define EFI_REST_PROTOCOL_GUID \
 | 
						|
  { \
 | 
						|
    0x0db48a36, 0x4e54, 0xea9c, {0x9b, 0x09, 0x1e, 0xa5, 0xbe, 0x3a, 0x66, 0x0b } \
 | 
						|
  }
 | 
						|
 | 
						|
typedef struct _EFI_REST_PROTOCOL EFI_REST_PROTOCOL;
 | 
						|
 | 
						|
/**
 | 
						|
  Provides a simple HTTP-like interface to send and receive resources from a REST
 | 
						|
  service.
 | 
						|
 | 
						|
  The SendReceive() function sends an HTTP request to this REST service, and returns a
 | 
						|
  response when the data is retrieved from the service. RequestMessage contains the HTTP
 | 
						|
  request to the REST resource identified by RequestMessage.Request.Url. The
 | 
						|
  ResponseMessage is the returned HTTP response for that request, including any HTTP
 | 
						|
  status.
 | 
						|
 | 
						|
  @param[in]  This                Pointer to EFI_REST_PROTOCOL instance for a particular
 | 
						|
                                  REST service.
 | 
						|
  @param[in]  RequestMessage      Pointer to the HTTP request data for this resource.
 | 
						|
  @param[out] ResponseMessage     Pointer to the HTTP response data obtained for this
 | 
						|
                                  requested.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             Operation succeeded.
 | 
						|
  @retval EFI_INVALID_PARAMETER   This, RequestMessage, or ResponseMessage are NULL.
 | 
						|
  @retval EFI_DEVICE_ERROR        An unexpected system or network error occurred.
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_REST_SEND_RECEIVE) (
 | 
						|
  IN  EFI_REST_PROTOCOL         *This,
 | 
						|
  IN  EFI_HTTP_MESSAGE          *RequestMessage,
 | 
						|
  OUT EFI_HTTP_MESSAGE          *ResponseMessage
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  The GetServiceTime() function is an optional interface to obtain the current time from
 | 
						|
  this REST service instance. If this REST service does not support retrieving the time,
 | 
						|
  this function returns EFI_UNSUPPORTED.
 | 
						|
 | 
						|
  @param[in]  This                Pointer to EFI_REST_PROTOCOL instance.
 | 
						|
  @param[out] Time                A pointer to storage to receive a snapshot of the
 | 
						|
                                  current time of the REST service.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS             Operation succeeded
 | 
						|
  @retval EFI_INVALID_PARAMETER   This or Time are NULL.
 | 
						|
  @retval EFI_UNSUPPORTED         The RESTful service does not support returning the
 | 
						|
                                  time.
 | 
						|
  @retval EFI_DEVICE_ERROR        An unexpected system or network error occurred.
 | 
						|
**/
 | 
						|
typedef
 | 
						|
EFI_STATUS
 | 
						|
(EFIAPI *EFI_REST_GET_TIME) (
 | 
						|
  IN  EFI_REST_PROTOCOL         *This,
 | 
						|
  OUT EFI_TIME                  *Time
 | 
						|
  );
 | 
						|
 | 
						|
///
 | 
						|
/// The EFI REST protocol is designed to be used by EFI drivers and applications to send
 | 
						|
/// and receive resources from a RESTful service. This protocol abstracts REST
 | 
						|
/// (Representational State Transfer) client functionality. This EFI protocol could be
 | 
						|
/// implemented to use an underlying EFI HTTP protocol, or it could rely on other
 | 
						|
/// interfaces that abstract HTTP access to the resources.
 | 
						|
///
 | 
						|
struct _EFI_REST_PROTOCOL {
 | 
						|
  EFI_REST_SEND_RECEIVE         SendReceive;
 | 
						|
  EFI_REST_GET_TIME             GetServiceTime;
 | 
						|
};
 | 
						|
 | 
						|
extern EFI_GUID gEfiRestProtocolGuid;
 | 
						|
 | 
						|
#endif
 |