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>
		
			
				
	
	
		
			412 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			412 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   EFI Bluetooth IO Service Binding Protocol as defined in UEFI 2.5.
 | |
|   EFI Bluetooth IO Protocol as defined in UEFI 2.5.
 | |
|   The EFI Bluetooth IO Service Binding Protocol is used to locate EFI Bluetooth IO Protocol drivers to
 | |
|   create and destroy child of the driver to communicate with other Bluetooth device by using Bluetooth IO protocol.
 | |
| 
 | |
|   Copyright (c) 2015 - 2017, 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_BLUETOOTH_IO_PROTOCOL_H__
 | |
| #define __EFI_BLUETOOTH_IO_PROTOCOL_H__
 | |
| 
 | |
| #include <IndustryStandard/Bluetooth.h>
 | |
| 
 | |
| #define EFI_BLUETOOTH_IO_SERVICE_BINDING_PROTOCOL_GUID \
 | |
|   { \
 | |
|     0x388278d3, 0x7b85, 0x42f0, { 0xab, 0xa9, 0xfb, 0x4b, 0xfd, 0x69, 0xf5, 0xab } \
 | |
|   }
 | |
| 
 | |
| #define EFI_BLUETOOTH_IO_PROTOCOL_GUID \
 | |
|   { \
 | |
|     0x467313de, 0x4e30, 0x43f1, { 0x94, 0x3e, 0x32, 0x3f, 0x89, 0x84, 0x5d, 0xb5 } \
 | |
|   }
 | |
| 
 | |
| typedef struct _EFI_BLUETOOTH_IO_PROTOCOL EFI_BLUETOOTH_IO_PROTOCOL;
 | |
| 
 | |
| ///
 | |
| /// EFI_BLUETOOTH_DEVICE_INFO
 | |
| ///
 | |
| typedef struct {
 | |
|   ///
 | |
|   /// The version of the structure
 | |
|   ///
 | |
|   UINT32                       Version;
 | |
|   ///
 | |
|   /// 48bit Bluetooth device address.
 | |
|   ///
 | |
|   BLUETOOTH_ADDRESS            BD_ADDR;
 | |
|   ///
 | |
|   /// Bluetooth PageScanRepetitionMode. See Bluetooth specification for detail.
 | |
|   ///
 | |
|   UINT8                        PageScanRepetitionMode;
 | |
|   ///
 | |
|   /// Bluetooth ClassOfDevice. See Bluetooth specification for detail.
 | |
|   ///
 | |
|   BLUETOOTH_CLASS_OF_DEVICE    ClassOfDevice;
 | |
|   ///
 | |
|   /// Bluetooth CloseOffset. See Bluetooth specification for detail.
 | |
|   ///
 | |
|   UINT16                       ClockOffset;
 | |
|   ///
 | |
|   /// Bluetooth RSSI. See Bluetooth specification for detail.
 | |
|   ///
 | |
|   UINT8                        RSSI;
 | |
|   ///
 | |
|   /// Bluetooth ExtendedInquiryResponse. See Bluetooth specification for detail.
 | |
|   ///
 | |
|   UINT8                        ExtendedInquiryResponse[240];
 | |
| } EFI_BLUETOOTH_DEVICE_INFO;
 | |
| 
 | |
| /**
 | |
|   Get Bluetooth device information.
 | |
| 
 | |
|   @param[in]   This               Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[out]  DeviceInfoSize     A pointer to the size, in bytes, of the DeviceInfo buffer.
 | |
|   @param[out]  DeviceInfo         A pointer to a callee allocated buffer that returns Bluetooth device information.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The Bluetooth device information is returned successfully.
 | |
|   @retval EFI_DEVICE_ERROR        A hardware error occurred trying to retrieve the Bluetooth device information.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_GET_DEVICE_INFO)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL    *This,
 | |
|   OUT UINTN                       *DeviceInfoSize,
 | |
|   OUT VOID                        **DeviceInfo
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Get Bluetooth SDP information.
 | |
| 
 | |
|   @param[in]  This                Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[out] SdpInfoSize         A pointer to the size, in bytes, of the SdpInfo buffer.
 | |
|   @param[out] SdpInfo             A pointer to a callee allocated buffer that returns Bluetooth SDP information.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The Bluetooth device information is returned successfully.
 | |
|   @retval EFI_DEVICE_ERROR        A hardware error occurred trying to retrieve the Bluetooth SDP information.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_GET_SDP_INFO)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL    *This,
 | |
|   OUT UINTN                       *SdpInfoSize,
 | |
|   OUT VOID                        **SdpInfo
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Send L2CAP message (including L2CAP header).
 | |
| 
 | |
|   @param[in]      This            Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[in, out] BufferSize      On input, indicates the size, in bytes, of the data buffer specified by Buffer.
 | |
|                                   On output, indicates the amount of data actually transferred.
 | |
|   @param[in]      Buffer          A pointer to the buffer of data that will be transmitted to Bluetooth L2CAP layer.
 | |
|   @param[in]      Timeout         Indicating the transfer should be completed within this time frame. The units are in
 | |
|                                   milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
 | |
|                                   until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The L2CAP message is sent successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is TRUE:
 | |
|                                   - BufferSize is NULL.
 | |
|                                   - *BufferSize is 0.
 | |
|                                   - Buffer is NULL.
 | |
|   @retval EFI_TIMEOUT             Sending L2CAP message fail due to timeout.
 | |
|   @retval EFI_DEVICE_ERROR        Sending L2CAP message fail due to host controller or device error.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_RAW_SEND)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL      *This,
 | |
|   IN OUT UINTN                      *BufferSize,
 | |
|   IN VOID                           *Buffer,
 | |
|   IN UINTN                          Timeout
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Receive L2CAP message (including L2CAP header).
 | |
| 
 | |
|   @param[in]  This                Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[in]  BufferSize          On input, indicates the size, in bytes, of the data buffer specified by Buffer.
 | |
|                                   On output, indicates the amount of data actually transferred.
 | |
|   @param[out] Buffer              A pointer to the buffer of data that will be received from Bluetooth L2CAP layer.
 | |
|   @param[in]  Timeout             Indicating the transfer should be completed within this time frame. The units are in
 | |
|                                   milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
 | |
|                                   until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The L2CAP message is received successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is TRUE:
 | |
|                                   - BufferSize is NULL.
 | |
|                                   - *BufferSize is 0.
 | |
|                                   - Buffer is NULL.
 | |
|   @retval EFI_TIMEOUT             Receiving L2CAP message fail due to timeout.
 | |
|   @retval EFI_DEVICE_ERROR        Receiving L2CAP message fail due to host controller or device error.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_RAW_RECEIVE)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL  *This,
 | |
|   IN OUT UINTN                  *BufferSize,
 | |
|   OUT VOID                      *Buffer,
 | |
|   IN UINTN                      Timeout
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Callback function, it is called when asynchronous transfer is completed.
 | |
| 
 | |
|   @param[in]  ChannelID         Bluetooth L2CAP message channel ID.
 | |
|   @param[in]  Data              Data received via asynchronous transfer.
 | |
|   @param[in]  DataLength        The length of Data in bytes, received via asynchronous transfer.
 | |
|   @param[in]  Context           Context passed from asynchronous transfer request.
 | |
| 
 | |
|   @retval EFI_SUCCESS           The callback function complete successfully.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_ASYNC_FUNC_CALLBACK)(
 | |
|   IN UINT16                     ChannelID,
 | |
|   IN VOID                       *Data,
 | |
|   IN UINTN                      DataLength,
 | |
|   IN VOID                       *Context
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Receive L2CAP message (including L2CAP header) in non-blocking way.
 | |
| 
 | |
|   @param[in]  This                Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[in]  IsNewTransfer       If TRUE, a new transfer will be submitted. If FALSE, the request is deleted.
 | |
|   @param[in]  PollingInterval     Indicates the periodic rate, in milliseconds, that the transfer is to be executed.
 | |
|   @param[in]  DataLength          Specifies the length, in bytes, of the data to be received.
 | |
|   @param[in]  Callback            The callback function. This function is called if the asynchronous transfer is
 | |
|                                   completed.
 | |
|   @param[in]  Context             Data passed into Callback function. This is optional parameter and may be NULL.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The L2CAP asynchronous receive request is submitted successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is TRUE:
 | |
|                                   - DataLength is 0.
 | |
|                                   - If IsNewTransfer is TRUE, and an asynchronous receive request already exists.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_RAW_ASYNC_RECEIVE)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL              *This,
 | |
|   IN BOOLEAN                                IsNewTransfer,
 | |
|   IN UINTN                                  PollingInterval,
 | |
|   IN UINTN                                  DataLength,
 | |
|   IN EFI_BLUETOOTH_IO_ASYNC_FUNC_CALLBACK   Callback,
 | |
|   IN VOID                                   *Context
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Send L2CAP message (excluding L2CAP header) to a specific channel.
 | |
| 
 | |
|   @param[in]      This            Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[in]      Handle          A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel to send.
 | |
|   @param[in, out] BufferSize      On input, indicates the size, in bytes, of the data buffer specified by Buffer.
 | |
|                                   On output, indicates the amount of data actually transferred.
 | |
|   @param[in]      Buffer          A pointer to the buffer of data that will be transmitted to Bluetooth L2CAP layer.
 | |
|   @param[in]      Timeout         Indicating the transfer should be completed within this time frame. The units are in
 | |
|                                   milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
 | |
|                                   until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The L2CAP message is sent successfully.
 | |
|   @retval EFI_NOT_FOUND           Handle is invalid or not found.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is TRUE:
 | |
|                                   - BufferSize is NULL.
 | |
|                                   - *BufferSize is 0.
 | |
|                                   - Buffer is NULL.
 | |
|   @retval EFI_TIMEOUT             Sending L2CAP message fail due to timeout.
 | |
|   @retval EFI_DEVICE_ERROR        Sending L2CAP message fail due to host controller or device error.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_SEND)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL      *This,
 | |
|   IN EFI_HANDLE                     Handle,
 | |
|   IN OUT UINTN                      *BufferSize,
 | |
|   IN VOID                           *Buffer,
 | |
|   IN UINTN                          Timeout
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Receive L2CAP message (excluding L2CAP header) from a specific channel.
 | |
| 
 | |
|   @param[in]  This                Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[in]  Handle              A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel to receive.
 | |
|   @param[out] BufferSize          Indicates the size, in bytes, of the data buffer specified by Buffer.
 | |
|   @param[out] Buffer              A pointer to the buffer of data that will be received from Bluetooth L2CAP layer.
 | |
|   @param[in]  Timeout             Indicating the transfer should be completed within this time frame. The units are in
 | |
|                                   milliseconds. If Timeout is 0, then the caller must wait for the function to be completed
 | |
|                                   until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The L2CAP message is received successfully.
 | |
|   @retval EFI_NOT_FOUND           Handle is invalid or not found.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is TRUE:
 | |
|                                   - BufferSize is NULL.
 | |
|                                   - *BufferSize is 0.
 | |
|                                   - Buffer is NULL.
 | |
|   @retval EFI_TIMEOUT             Receiving L2CAP message fail due to timeout.
 | |
|   @retval EFI_DEVICE_ERROR        Receiving L2CAP message fail due to host controller or device error.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_RECEIVE)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL    *This,
 | |
|   IN EFI_HANDLE                   Handle,
 | |
|   OUT UINTN                       *BufferSize,
 | |
|   OUT VOID                        **Buffer,
 | |
|   IN UINTN                        Timeout
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Callback function, it is called when asynchronous transfer is completed.
 | |
| 
 | |
|   @param[in]  Data                Data received via asynchronous transfer.
 | |
|   @param[in]  DataLength          The length of Data in bytes, received via asynchronous transfer.
 | |
|   @param[in]  Context             Context passed from asynchronous transfer request.
 | |
| 
 | |
|   @retval EFI_SUCCESS       The callback function complete successfully.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK)(
 | |
|   IN VOID                         *Data,
 | |
|   IN UINTN                        DataLength,
 | |
|   IN VOID                         *Context
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Receive L2CAP message (excluding L2CAP header) in non-blocking way from a specific channel.
 | |
| 
 | |
|   @param[in]  This                Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[in]  Handel              A handle created by EFI_BLUETOOTH_IO_PROTOCOL.L2CapConnect indicates which channel
 | |
|                                   to receive.
 | |
|   @param[in]  Callback            The callback function. This function is called if the asynchronous transfer is
 | |
|                                   completed.
 | |
|   @param[in]  Context             Data passed into Callback function. This is optional parameter and may be NULL.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The L2CAP asynchronous receive request is submitted successfully.
 | |
|   @retval EFI_NOT_FOUND           Handle is invalid or not found.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is TRUE:
 | |
|                                   - DataLength is 0.
 | |
|                                   - If an asynchronous receive request already exists on same Handle.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_ASYNC_RECEIVE)(
 | |
|   IN  EFI_BLUETOOTH_IO_PROTOCOL                   *This,
 | |
|   IN  EFI_HANDLE                                  Handle,
 | |
|   IN  EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK   Callback,
 | |
|   IN  VOID *Context
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Do L2CAP connection.
 | |
| 
 | |
|   @param[in]  This                Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[out] Handel              A handle to indicate this L2CAP connection.
 | |
|   @param[in]  Psm                 Bluetooth PSM. See Bluetooth specification for detail.
 | |
|   @param[in]  Mtu                 Bluetooth MTU. See Bluetooth specification for detail.
 | |
|   @param[in]  Callback            The callback function. This function is called whenever there is message received
 | |
|                                   in this channel.
 | |
|   @param[in]  Context             Data passed into Callback function. This is optional parameter and may be NULL.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The Bluetooth L2CAP layer connection is created successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is TRUE:
 | |
|                                   - Handle is NULL.
 | |
|   @retval EFI_DEVICE_ERROR        A hardware error occurred trying to do Bluetooth L2CAP connection.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_CONNECT)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL                    *This,
 | |
|   OUT EFI_HANDLE                                  *Handle,
 | |
|   IN UINT16                                       Psm,
 | |
|   IN UINT16                                       Mtu,
 | |
|   IN EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK    Callback,
 | |
|   IN VOID                                         *Context
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Do L2CAP disconnection.
 | |
| 
 | |
|   @param[in]  This                Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[in]  Handel              A handle to indicate this L2CAP connection.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The Bluetooth L2CAP layer is disconnected successfully.
 | |
|   @retval EFI_NOT_FOUND           Handle is invalid or not found.
 | |
|   @retval EFI_DEVICE_ERROR        A hardware error occurred trying to do Bluetooth L2CAP disconnection.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_DISCONNECT)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL                    *This,
 | |
|   IN EFI_HANDLE                                   Handle
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Register L2CAP callback function for special channel.
 | |
| 
 | |
|   @param[in]  This                Pointer to the EFI_BLUETOOTH_IO_PROTOCOL instance.
 | |
|   @param[out] Handel              A handle to indicate this L2CAP connection.
 | |
|   @param[in]  Psm                 Bluetooth PSM. See Bluetooth specification for detail.
 | |
|   @param[in]  Mtu                 Bluetooth MTU. See Bluetooth specification for detail.
 | |
|   @param[in]  Callback            The callback function. This function is called whenever there is message received
 | |
|                                   in this channel. NULL means unregister.
 | |
|   @param[in]  Context             Data passed into Callback function. This is optional parameter and may be NULL.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The Bluetooth L2CAP callback function is registered successfully.
 | |
|   @retval EFI_ALREADY_STARTED     The callback function already exists when register.
 | |
|   @retval EFI_NOT_FOUND           The callback function does not exist when unregister.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_BLUETOOTH_IO_L2CAP_REGISTER_SERVICE)(
 | |
|   IN EFI_BLUETOOTH_IO_PROTOCOL                    *This,
 | |
|   OUT EFI_HANDLE                                  *Handle,
 | |
|   IN UINT16                                       Psm,
 | |
|   IN UINT16                                       Mtu,
 | |
|   IN EFI_BLUETOOTH_IO_CHANNEL_SERVICE_CALLBACK    Callback,
 | |
|   IN VOID                                         *Context
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// This protocol provides service for Bluetooth L2CAP (Logical Link Control and Adaptation Protocol)
 | |
| /// and SDP (Service Discovery Protocol).
 | |
| ///
 | |
| struct _EFI_BLUETOOTH_IO_PROTOCOL {
 | |
|   EFI_BLUETOOTH_IO_GET_DEVICE_INFO            GetDeviceInfo;
 | |
|   EFI_BLUETOOTH_IO_GET_SDP_INFO               GetSdpInfo;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_RAW_SEND             L2CapRawSend;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_RAW_RECEIVE          L2CapRawReceive;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_RAW_ASYNC_RECEIVE    L2CapRawAsyncReceive;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_SEND                 L2CapSend;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_RECEIVE              L2CapReceive;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_ASYNC_RECEIVE        L2CapAsyncReceive;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_CONNECT              L2CapConnect;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_DISCONNECT           L2CapDisconnect;
 | |
|   EFI_BLUETOOTH_IO_L2CAP_REGISTER_SERVICE     L2CapRegisterService;
 | |
| };
 | |
| 
 | |
| extern EFI_GUID  gEfiBluetoothIoServiceBindingProtocolGuid;
 | |
| extern EFI_GUID  gEfiBluetoothIoProtocolGuid;
 | |
| 
 | |
| #endif
 |