Fix few typos in comments and documentation. Cc: Jiaxin Wu <jiaxin.wu@intel.com> Cc: Siyuan Fu <siyuan.fu@intel.com> Cc: Maciej Rabeda <maciej.rabeda@intel.com> Signed-off-by: Antoine Coeur <coeur@gmx.fr> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com> Reviewed-by: Maciej Rabeda <maciej.rabeda@intel.com> Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com> Message-Id: <20200207010831.9046-50-philmd@redhat.com>
		
			
				
	
	
		
			233 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			233 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Header file of the Driver Binding and Service Binding Protocol for TlsDxe driver.
 | 
						|
 | 
						|
  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
 | 
						|
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __EFI_TLS_DRIVER_H__
 | 
						|
#define __EFI_TLS_DRIVER_H__
 | 
						|
 | 
						|
#include <Uefi.h>
 | 
						|
 | 
						|
//
 | 
						|
// Driver Protocols
 | 
						|
//
 | 
						|
#include <Protocol/ServiceBinding.h>
 | 
						|
 | 
						|
//
 | 
						|
// Driver Version
 | 
						|
//
 | 
						|
#define TLS_VERSION  0x00000000
 | 
						|
 | 
						|
#define TLS_SERVICE_SIGNATURE    SIGNATURE_32 ('T', 'L', 'S', 'S')
 | 
						|
 | 
						|
#define TLS_INSTANCE_SIGNATURE   SIGNATURE_32 ('T', 'L', 'S', 'I')
 | 
						|
 | 
						|
///
 | 
						|
/// TLS Service Data
 | 
						|
///
 | 
						|
typedef struct _TLS_SERVICE  TLS_SERVICE;
 | 
						|
 | 
						|
///
 | 
						|
/// TLS Instance Data
 | 
						|
///
 | 
						|
typedef struct _TLS_INSTANCE TLS_INSTANCE;
 | 
						|
 | 
						|
 | 
						|
struct _TLS_SERVICE {
 | 
						|
  UINT32                          Signature;
 | 
						|
  EFI_SERVICE_BINDING_PROTOCOL    ServiceBinding;
 | 
						|
 | 
						|
  UINT16                          TlsChildrenNum;
 | 
						|
  LIST_ENTRY                      TlsChildrenList;
 | 
						|
 | 
						|
  //
 | 
						|
  // Handle to install TlsServiceBinding protocol.
 | 
						|
  //
 | 
						|
  EFI_HANDLE                      Handle;
 | 
						|
  EFI_HANDLE                      ImageHandle;
 | 
						|
 | 
						|
  //
 | 
						|
  // Main SSL Context object which is created by a server or client once per program
 | 
						|
  // life-time and which holds mainly default values for the SSL object which are later
 | 
						|
  // created for the connections.
 | 
						|
  //
 | 
						|
  VOID                            *TlsCtx;
 | 
						|
};
 | 
						|
 | 
						|
struct _TLS_INSTANCE {
 | 
						|
  UINT32                          Signature;
 | 
						|
  LIST_ENTRY                      Link;
 | 
						|
 | 
						|
  BOOLEAN                         InDestroy;
 | 
						|
 | 
						|
  TLS_SERVICE                     *Service;
 | 
						|
  EFI_HANDLE                      ChildHandle;
 | 
						|
 | 
						|
  EFI_TLS_PROTOCOL                Tls;
 | 
						|
  EFI_TLS_CONFIGURATION_PROTOCOL  TlsConfig;
 | 
						|
 | 
						|
  EFI_TLS_SESSION_STATE           TlsSessionState;
 | 
						|
 | 
						|
  //
 | 
						|
  // Main SSL Connection which is created by a server or a client
 | 
						|
  // per established connection.
 | 
						|
  //
 | 
						|
  VOID                            *TlsConn;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#define TLS_SERVICE_FROM_THIS(a)   \
 | 
						|
  CR (a, TLS_SERVICE, ServiceBinding, TLS_SERVICE_SIGNATURE)
 | 
						|
 | 
						|
#define TLS_INSTANCE_FROM_PROTOCOL(a)  \
 | 
						|
  CR (a, TLS_INSTANCE, Tls, TLS_INSTANCE_SIGNATURE)
 | 
						|
 | 
						|
#define TLS_INSTANCE_FROM_CONFIGURATION(a)  \
 | 
						|
  CR (a, TLS_INSTANCE, TlsConfig, TLS_INSTANCE_SIGNATURE)
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Release all the resources used by the TLS instance.
 | 
						|
 | 
						|
  @param[in]  Instance        The TLS instance data.
 | 
						|
 | 
						|
**/
 | 
						|
VOID
 | 
						|
TlsCleanInstance (
 | 
						|
  IN TLS_INSTANCE           *Instance
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Create the TLS instance and initialize it.
 | 
						|
 | 
						|
  @param[in]  Service              The pointer to the TLS service.
 | 
						|
  @param[out] Instance             The pointer to the TLS instance.
 | 
						|
 | 
						|
  @retval EFI_OUT_OF_RESOURCES   Failed to allocate resources.
 | 
						|
  @retval EFI_SUCCESS            The TLS instance is created.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
TlsCreateInstance (
 | 
						|
  IN  TLS_SERVICE         *Service,
 | 
						|
  OUT TLS_INSTANCE        **Instance
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Release all the resources used by the TLS service binding instance.
 | 
						|
 | 
						|
  @param[in]  Service        The TLS service data.
 | 
						|
 | 
						|
**/
 | 
						|
VOID
 | 
						|
TlsCleanService (
 | 
						|
  IN TLS_SERVICE     *Service
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Create then initialize a TLS service.
 | 
						|
 | 
						|
  @param[in]  Image                  ImageHandle of the TLS driver
 | 
						|
  @param[out] Service                The service for TLS driver
 | 
						|
 | 
						|
  @retval EFI_OUT_OF_RESOURCES   Failed to allocate resource to create the service.
 | 
						|
  @retval EFI_SUCCESS            The service is created for the driver.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
TlsCreateService (
 | 
						|
  IN  EFI_HANDLE            Image,
 | 
						|
  OUT TLS_SERVICE           **Service
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Unloads an image.
 | 
						|
 | 
						|
  @param[in]  ImageHandle       Handle that identifies the image to be unloaded.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The image has been unloaded.
 | 
						|
  @retval EFI_INVALID_PARAMETER ImageHandle is not a valid image handle.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
TlsUnload (
 | 
						|
  IN EFI_HANDLE  ImageHandle
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This is the declaration of an EFI image entry point. This entry point is
 | 
						|
  the same for UEFI Applications, UEFI OS Loaders, and UEFI Drivers including
 | 
						|
  both device drivers and bus drivers.
 | 
						|
 | 
						|
  @param  ImageHandle           The firmware allocated handle for the UEFI image.
 | 
						|
  @param  SystemTable           A pointer to the EFI System Table.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The operation completed successfully.
 | 
						|
  @retval Others                An unexpected error occurred.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
TlsDriverEntryPoint (
 | 
						|
  IN EFI_HANDLE        ImageHandle,
 | 
						|
  IN EFI_SYSTEM_TABLE  *SystemTable
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Creates a child handle and installs a protocol.
 | 
						|
 | 
						|
  The CreateChild() function installs a protocol on ChildHandle.
 | 
						|
  If ChildHandle is a pointer to NULL, then a new handle is created and returned in ChildHandle.
 | 
						|
  If ChildHandle is not a pointer to NULL, then the protocol installs on the existing ChildHandle.
 | 
						|
 | 
						|
  @param[in] This        Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
 | 
						|
  @param[in] ChildHandle Pointer to the handle of the child to create. If it is NULL,
 | 
						|
                         then a new handle is created. If it is a pointer to an existing UEFI handle,
 | 
						|
                         then the protocol is added to the existing UEFI handle.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The protocol was added to ChildHandle.
 | 
						|
  @retval EFI_INVALID_PARAMETER ChildHandle is NULL.
 | 
						|
  @retval EFI_OUT_OF_RESOURCES  There are not enough resources available to create
 | 
						|
                                the child.
 | 
						|
  @retval other                 The child handle was not created.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
TlsServiceBindingCreateChild (
 | 
						|
  IN EFI_SERVICE_BINDING_PROTOCOL  *This,
 | 
						|
  IN EFI_HANDLE                    *ChildHandle
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Destroys a child handle with a protocol installed on it.
 | 
						|
 | 
						|
  The DestroyChild() function does the opposite of CreateChild(). It removes a protocol
 | 
						|
  that was installed by CreateChild() from ChildHandle. If the removed protocol is the
 | 
						|
  last protocol on ChildHandle, then ChildHandle is destroyed.
 | 
						|
 | 
						|
  @param  This        Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
 | 
						|
  @param  ChildHandle Handle of the child to destroy.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The protocol was removed from ChildHandle.
 | 
						|
  @retval EFI_UNSUPPORTED       ChildHandle does not support the protocol that is being removed.
 | 
						|
  @retval EFI_INVALID_PARAMETER Child handle is NULL.
 | 
						|
  @retval EFI_ACCESS_DENIED     The protocol could not be removed from the ChildHandle
 | 
						|
                                because its services are being used.
 | 
						|
  @retval other                 The child handle was not destroyed.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
TlsServiceBindingDestroyChild (
 | 
						|
  IN EFI_SERVICE_BINDING_PROTOCOL  *This,
 | 
						|
  IN EFI_HANDLE                    ChildHandle
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 | 
						|
 |