MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BluetoothConfig.h File Reference

Data Structures

struct  EFI_BLUETOOTH_SCAN_CALLBACK_INFORMATION
 
struct  _EFI_BLUETOOTH_CONFIG_PROTOCOL
 

Macros

#define EFI_BLUETOOTH_CONFIG_PROTOCOL_GUID
 
#define EFI_BLUETOOTH_CONFIG_REMOTE_DEVICE_STATE_CONNECTED   0x1
 
#define EFI_BLUETOOTH_CONFIG_REMOTE_DEVICE_STATE_PAIRED   0x2
 

Typedefs

typedef struct
_EFI_BLUETOOTH_CONFIG_PROTOCOL 
EFI_BLUETOOTH_CONFIG_PROTOCOL
 
typedef UINT32 EFI_BLUETOOTH_CONFIG_REMOTE_DEVICE_STATE_TYPE
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_INIT )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This)
 
typedef IN VOIDContext
 
typedef IN VOID IN
EFI_BLUETOOTH_SCAN_CALLBACK_INFORMATION
CallbackInfo
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_SCAN )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN BOOLEAN ReScan, IN UINT8 ScanType, IN EFI_BLUETOOTH_CONFIG_SCAN_CALLBACK_FUNCTION Callback, IN VOID *Context)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_CONNECT )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN BLUETOOTH_ADDRESS *BD_ADDR)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_DISCONNECT )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN BLUETOOTH_ADDRESS *BD_ADDR, IN UINT8 Reason)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_GET_DATA )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType, IN OUT UINTN *DataSize, IN OUT VOID *Data)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_SET_DATA )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType, IN UINTN DataSize, IN VOID *Data)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_GET_REMOTE_DATA )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType, IN BLUETOOTH_ADDRESS *BDAddr, IN OUT UINTN *DataSize, IN OUT VOID *Data)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_REGISTER_PIN_CALLBACK_FUNCTION )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN VOID *Context, IN EFI_BLUETOOTH_PIN_CALLBACK_TYPE CallbackType, IN VOID *InputBuffer, IN UINTN InputBufferSize, OUT VOID **OutputBuffer, OUT UINTN *OutputBufferSize)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_REGISTER_PIN_CALLBACK )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN EFI_BLUETOOTH_CONFIG_REGISTER_PIN_CALLBACK_FUNCTION Callback, IN VOID *Context)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_REGISTER_GET_LINK_KEY_CALLBACK_FUNCTION )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN VOID *Context, IN BLUETOOTH_ADDRESS *BDAddr, OUT UINT8 LinkKey[BLUETOOTH_HCI_LINK_KEY_SIZE])
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_REGISTER_GET_LINK_KEY_CALLBACK )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN EFI_BLUETOOTH_CONFIG_REGISTER_GET_LINK_KEY_CALLBACK_FUNCTION Callback, IN VOID *Context)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_REGISTER_SET_LINK_KEY_CALLBACK_FUNCTION )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN VOID *Context, IN BLUETOOTH_ADDRESS *BDAddr, IN UINT8 LinkKey[BLUETOOTH_HCI_LINK_KEY_SIZE])
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_REGISTER_SET_LINK_KEY_CALLBACK )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN EFI_BLUETOOTH_CONFIG_REGISTER_SET_LINK_KEY_CALLBACK_FUNCTION Callback, IN VOID *Context)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK_FUNCTION )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN VOID *Context, IN EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE CallbackType, IN BLUETOOTH_ADDRESS *BDAddr, IN VOID *InputBuffer, IN UINTN InputBufferSize)
 
typedef EFI_STATUS(EFIAPIEFI_BLUETOOTH_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK )(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN EFI_BLUETOOTH_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK_FUNCTION Callback, IN VOID *Context)
 

Enumerations

enum  EFI_BLUETOOTH_CONFIG_DATA_TYPE {
  EfiBluetoothConfigDataTypeDeviceName, EfiBluetoothConfigDataTypeClassOfDevice, EfiBluetoothConfigDataTypeRemoteDeviceState, EfiBluetoothConfigDataTypeSdpInfo,
  EfiBluetoothConfigDataTypeBDADDR, EfiBluetoothConfigDataTypeDiscoverable, EfiBluetoothConfigDataTypeControllerStoredPairedDeviceList, EfiBluetoothConfigDataTypeAvailableDeviceList,
  EfiBluetoothConfigDataTypeRandomAddress, EfiBluetoothConfigDataTypeRSSI, EfiBluetoothConfigDataTypeAdvertisementData, EfiBluetoothConfigDataTypeIoCapability,
  EfiBluetoothConfigDataTypeOOBDataFlag, EfiBluetoothConfigDataTypeKeyType, EfiBluetoothConfigDataTypeEncKeySize, EfiBluetoothConfigDataTypeMax
}
 
enum  EFI_BLUETOOTH_PIN_CALLBACK_TYPE {
  EfiBluetoothCallbackTypeUserPasskeyNotification, EfiBluetoothCallbackTypeUserConfirmationRequest, EfiBluetoothCallbackTypeOOBDataRequest, EfiBluetoothCallbackTypePinCodeRequest,
  EfiBluetoothCallbackTypeMax
}
 
enum  EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE { EfiBluetoothConnCallbackTypeDisconnected, EfiBluetoothConnCallbackTypeConnected, EfiBluetoothConnCallbackTypeAuthenticated, EfiBluetoothConnCallbackTypeEncrypted }
 

Functions

typedef EFI_STATUS (EFIAPI *EFI_BLUETOOTH_CONFIG_SCAN_CALLBACK_FUNCTION)(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This
 

Variables

EFI_GUID gEfiBluetoothConfigProtocolGuid
 

Detailed Description

EFI Bluetooth Configuration Protocol as defined in UEFI 2.7. This protocol abstracts user interface configuration for Bluetooth device.

Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Revision Reference:
This Protocol is introduced in UEFI Specification 2.7

Macro Definition Documentation

#define EFI_BLUETOOTH_CONFIG_PROTOCOL_GUID
Value:
{ \
0x62960cf3, 0x40ff, 0x4263, { 0xa7, 0x7c, 0xdf, 0xde, 0xbd, 0x19, 0x1b, 0x4b } \
}
#define EFI_BLUETOOTH_CONFIG_REMOTE_DEVICE_STATE_CONNECTED   0x1
#define EFI_BLUETOOTH_CONFIG_REMOTE_DEVICE_STATE_PAIRED   0x2

Typedef Documentation

typedef IN VOID* Context
typedef EFI_STATUS(EFIAPI * EFI_BLUETOOTH_CONFIG_CONNECT)(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN BLUETOOTH_ADDRESS *BD_ADDR)

Connect a Bluetooth device.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
BD_ADDRThe address of Bluetooth device to be connected.
Return values
EFI_SUCCESSThe Bluetooth device is connected successfully.
EFI_ALREADY_STARTEDThe Bluetooth device is already connected.
EFI_NOT_FOUNDThe Bluetooth device is not found.
EFI_DEVICE_ERRORA hardware error occurred trying to connect the Bluetooth device.
typedef EFI_STATUS(EFIAPI * EFI_BLUETOOTH_CONFIG_DISCONNECT)(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN BLUETOOTH_ADDRESS *BD_ADDR, IN UINT8 Reason)

Disconnect a Bluetooth device.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
BD_ADDRThe address of Bluetooth device to be connected.
ReasonBluetooth disconnect reason. See Bluetooth specification for detail.
Return values
EFI_SUCCESSThe Bluetooth device is disconnected successfully.
EFI_NOT_STARTEDThe Bluetooth device is not connected.
EFI_NOT_FOUNDThe Bluetooth device is not found.
EFI_DEVICE_ERRORA hardware error occurred trying to disconnect the Bluetooth device.

Get Bluetooth configuration data.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
DataTypeConfiguration data type.
DataSizeOn input, indicates the size, in bytes, of the data buffer specified by Data. On output, indicates the amount of data actually returned.
DataA pointer to the buffer of data that will be returned.
Return values
EFI_SUCCESSThe Bluetooth configuration data is returned successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE:
  • DataSize is NULL.
  • *DataSize is not 0 and Data is NULL.
EFI_UNSUPPORTEDThe DataType is unsupported.
EFI_NOT_FOUNDThe DataType is not found.
EFI_BUFFER_TOO_SMALLThe buffer is too small to hold the buffer. DataSize has been updated with the size needed to complete the request.

Get remove Bluetooth device configuration data.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
DataTypeConfiguration data type.
BDAddrRemote Bluetooth device address.
DataSizeOn input, indicates the size, in bytes, of the data buffer specified by Data. On output, indicates the amount of data actually returned.
DataA pointer to the buffer of data that will be returned.
Return values
EFI_SUCCESSThe remote Bluetooth device configuration data is returned successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE:
  • DataSize is NULL.
  • *DataSize is not 0 and Data is NULL.
EFI_UNSUPPORTEDThe DataType is unsupported.
EFI_NOT_FOUNDThe DataType is not found.
EFI_BUFFER_TOO_SMALLThe buffer is too small to hold the buffer. DataSize has been updated with the size needed to complete the request.
typedef EFI_STATUS(EFIAPI * EFI_BLUETOOTH_CONFIG_INIT)(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This)

Initialize Bluetooth host controller and local device.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
Return values
EFI_SUCCESSThe Bluetooth host controller and local device is initialized successfully.
EFI_DEVICE_ERRORA hardware error occurred trying to initialize the Bluetooth host controller and local device.

Register link connect complete callback function.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
CallbackThe callback function. NULL means unregister.
ContextData passed into Callback function. This is optional parameter and may be NULL.
Return values
EFI_SUCCESSThe link connect complete callback function is registered successfully.

The callback function. It is called after connect completed.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
ContextContext passed from registration.
CallbackTypeCallback type in EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE.
BDAddrA pointer to Bluetooth device address.
InputBufferA pointer to the buffer of data that is input from callback caller.
InputBufferSizeIndicates the size, in bytes, of the data buffer specified by InputBuffer.
Return values
EFI_SUCCESSThe callback function complete successfully.

Register get link key callback function.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
CallbackThe callback function. NULL means unregister.
ContextData passed into Callback function. This is optional parameter and may be NULL.
Return values
EFI_SUCCESSThe link key callback function is registered successfully.
typedef EFI_STATUS(EFIAPI * EFI_BLUETOOTH_CONFIG_REGISTER_GET_LINK_KEY_CALLBACK_FUNCTION)(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN VOID *Context, IN BLUETOOTH_ADDRESS *BDAddr, OUT UINT8 LinkKey[BLUETOOTH_HCI_LINK_KEY_SIZE])

The callback function to get link key.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
ContextContext passed from registration.
BDAddrA pointer to Bluetooth device address.
LinkKeyA pointer to the buffer of link key.
Return values
EFI_SUCCESSThe callback function complete successfully.

Register PIN callback function.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
CallbackThe callback function. NULL means unregister.
ContextData passed into Callback function. This is optional parameter and may be NULL.
Return values
EFI_SUCCESSThe PIN callback function is registered successfully.
typedef EFI_STATUS(EFIAPI * EFI_BLUETOOTH_CONFIG_REGISTER_PIN_CALLBACK_FUNCTION)(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN VOID *Context, IN EFI_BLUETOOTH_PIN_CALLBACK_TYPE CallbackType, IN VOID *InputBuffer, IN UINTN InputBufferSize, OUT VOID **OutputBuffer, OUT UINTN *OutputBufferSize)

The callback function for PIN code.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
ContextContext passed from registration.
CallbackTypeCallback type in EFI_BLUETOOTH_PIN_CALLBACK_TYPE.
InputBufferA pointer to the buffer of data that is input from callback caller.
InputBufferSizeIndicates the size, in bytes, of the data buffer specified by InputBuffer.
OutputBufferA pointer to the buffer of data that will be output from callback callee. Callee allocates this buffer by using EFI Boot Service AllocatePool().
OutputBufferSizeIndicates the size, in bytes, of the data buffer specified by OutputBuffer.
Return values
EFI_SUCCESSThe callback function complete successfully.

Register set link key callback function.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
CallbackThe callback function. NULL means unregister.
ContextData passed into Callback function. This is optional parameter and may be NULL.
Return values
EFI_SUCCESSThe link key callback function is registered successfully.
typedef EFI_STATUS(EFIAPI * EFI_BLUETOOTH_CONFIG_REGISTER_SET_LINK_KEY_CALLBACK_FUNCTION)(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN VOID *Context, IN BLUETOOTH_ADDRESS *BDAddr, IN UINT8 LinkKey[BLUETOOTH_HCI_LINK_KEY_SIZE])

The callback function to set link key.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
ContextContext passed from registration.
BDAddrA pointer to Bluetooth device address.
LinkKeyA pointer to the buffer of link key.
Return values
EFI_SUCCESSThe callback function complete successfully.
typedef EFI_STATUS(EFIAPI * EFI_BLUETOOTH_CONFIG_SCAN)(IN EFI_BLUETOOTH_CONFIG_PROTOCOL *This, IN BOOLEAN ReScan, IN UINT8 ScanType, IN EFI_BLUETOOTH_CONFIG_SCAN_CALLBACK_FUNCTION Callback, IN VOID *Context)

Scan Bluetooth device.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
ReScanIf TRUE, a new scan request is submitted no matter there is scan result before. If FALSE and there is scan result, the previous scan result is returned and no scan request is submitted.
ScanTypeBluetooth scan type, Inquiry and/or Page. See Bluetooth specification for detail.
CallbackThe callback function. This function is called if a Bluetooth device is found during scan process.
ContextData passed into Callback function. This is optional parameter and may be NULL.
Return values
EFI_SUCCESSThe Bluetooth scan request is submitted.
EFI_DEVICE_ERRORA hardware error occurred trying to scan the Bluetooth device.

Set Bluetooth configuration data.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
DataTypeConfiguration data type.
DataSizeIndicates the size, in bytes, of the data buffer specified by Data.
DataA pointer to the buffer of data that will be set.
Return values
EFI_SUCCESSThe Bluetooth configuration data is set successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE:
  • DataSize is 0.
  • Data is NULL.
EFI_UNSUPPORTEDThe DataType is unsupported.
EFI_BUFFER_TOO_SMALLCannot set configuration data.

Enumeration Type Documentation

EFI_BLUETOOTH_CONFIG_DATA_TYPE

Enumerator
EfiBluetoothConfigDataTypeDeviceName 

Local/Remote Bluetooth device name. Data structure is zero terminated CHAR8[].

EfiBluetoothConfigDataTypeClassOfDevice 

Local/Remote Bluetooth device ClassOfDevice. Data structure is BLUETOOTH_CLASS_OF_DEVICE.

EfiBluetoothConfigDataTypeRemoteDeviceState 

Remote Bluetooth device state. Data structure is EFI_BLUETOOTH_CONFIG_REMOTE_DEVICE_STATE_TYPE.

EfiBluetoothConfigDataTypeSdpInfo 

Local/Remote Bluetooth device SDP information. Data structure is UINT8[].

EfiBluetoothConfigDataTypeBDADDR 

Local Bluetooth device address. Data structure is BLUETOOTH_ADDRESS.

EfiBluetoothConfigDataTypeDiscoverable 

Local Bluetooth discoverable state. Data structure is UINT8. (Page scan and/or Inquiry scan)

EfiBluetoothConfigDataTypeControllerStoredPairedDeviceList 

Local Bluetooth controller stored paired device list. Data structure is BLUETOOTH_ADDRESS[].

EfiBluetoothConfigDataTypeAvailableDeviceList 

Local available device list. Data structure is BLUETOOTH_ADDRESS[].

EfiBluetoothConfigDataTypeRandomAddress 
EfiBluetoothConfigDataTypeRSSI 
EfiBluetoothConfigDataTypeAdvertisementData 

Advertisement report. Data structure is UNIT8[].

EfiBluetoothConfigDataTypeIoCapability 
EfiBluetoothConfigDataTypeOOBDataFlag 
EfiBluetoothConfigDataTypeKeyType 

KeyType of Authentication Requirements flag of local device as UINT8, indicating requested security properties. See Bluetooth specification 3.H.3.5.1. BIT0: MITM, BIT1:SC.

EfiBluetoothConfigDataTypeEncKeySize 
EfiBluetoothConfigDataTypeMax 

EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE.

Enumerator
EfiBluetoothConnCallbackTypeDisconnected 

This callback is called when Bluetooth receive Disconnection_Complete event. Input buffer is Event Parameters of Disconnection_Complete Event defined in Bluetooth specification.

EfiBluetoothConnCallbackTypeConnected 

This callback is called when Bluetooth receive Connection_Complete event. Input buffer is Event Parameters of Connection_Complete Event defined in Bluetooth specification.

EfiBluetoothConnCallbackTypeAuthenticated 

This callback is called when Bluetooth receive Authentication_Complete event. Input buffer is Event Parameters of Authentication_Complete Event defined in Bluetooth specification.

EfiBluetoothConnCallbackTypeEncrypted 

This callback is called when Bluetooth receive Encryption_Change event. Input buffer is Event Parameters of Encryption_Change Event defined in Bluetooth specification.

EFI_BLUETOOTH_PIN_CALLBACK_TYPE.

Enumerator
EfiBluetoothCallbackTypeUserPasskeyNotification 

For SSP - passkey entry. Input buffer is Passkey (4 bytes). No output buffer. See Bluetooth HCI command for detail.

EfiBluetoothCallbackTypeUserConfirmationRequest 

For SSP - just work and numeric comparison. Input buffer is numeric value (4 bytes). Output buffer is BOOLEAN (1 byte). See Bluetooth HCI command for detail.

EfiBluetoothCallbackTypeOOBDataRequest 

For SSP - OOB. See Bluetooth HCI command for detail.

EfiBluetoothCallbackTypePinCodeRequest 

For legacy paring. No input buffer. Output buffer is PIN code( <= 16 bytes). See Bluetooth HCI command for detail.

EfiBluetoothCallbackTypeMax 

Function Documentation

typedef EFI_STATUS ( EFIAPI EFI_BLUETOOTH_CONFIG_SCAN_CALLBACK_FUNCTION)

Callback function, it is called if a Bluetooth device is found during scan process.

Parameters
ThisPointer to the EFI_BLUETOOTH_CONFIG_PROTOCOL instance.
ContextContext passed from scan request.
CallbackInfoData related to scan result. NULL CallbackInfo means scan complete.
Return values
EFI_SUCCESSThe callback function complete successfully.

Variable Documentation

EFI_GUID gEfiBluetoothConfigProtocolGuid