mirror of https://github.com/acidanthera/audk.git
MdePkg: Add BluetoothAttribute.h and BluetoothLeConfig.h
UEFI Spec 2.7 introduces BluetoothAttribute and BluetoothLeConfig protocols. The patch adds the definitions for them. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
parent
1e4547668e
commit
9c94cc2ca2
|
@ -0,0 +1,283 @@
|
|||
/** @file
|
||||
EFI Bluetooth Attribute Protocol as defined in UEFI 2.7.
|
||||
This protocol provides service for Bluetooth ATT (Attribute Protocol) and GATT (Generic
|
||||
Attribute Profile) based protocol interfaces.
|
||||
|
||||
Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php.
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
@par Revision Reference:
|
||||
This Protocol is introduced in UEFI Specification 2.7
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __EFI_BLUETOOTH_ATTRIBUTE_H__
|
||||
#define __EFI_BLUETOOTH_ATTRIBUTE_H__
|
||||
|
||||
#define EFI_BLUETOOTH_ATTRIBUTE_SERVICE_BINDING_PROTOCOL_GUID \
|
||||
{ \
|
||||
0x5639867a, 0x8c8e, 0x408d, { 0xac, 0x2f, 0x4b, 0x61, 0xbd, 0xc0, 0xbb, 0xbb } \
|
||||
}
|
||||
|
||||
#define EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL_GUID \
|
||||
{ \
|
||||
0x898890e9, 0x84b2, 0x4f3a, { 0x8c, 0x58, 0xd8, 0x57, 0x78, 0x13, 0xe0, 0xac } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL;
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
//
|
||||
// Bluetooth UUID
|
||||
//
|
||||
typedef struct {
|
||||
UINT8 Length;
|
||||
union {
|
||||
UINT16 Uuid16;
|
||||
UINT32 Uuid32;
|
||||
UINT8 Uuid128[16];
|
||||
} Data;
|
||||
} EFI_BLUETOOTH_UUID;
|
||||
|
||||
|
||||
#define UUID_16BIT_TYPE_LEN 2
|
||||
#define UUID_32BIT_TYPE_LEN 4
|
||||
#define UUID_128BIT_TYPE_LEN 16
|
||||
|
||||
#define BLUETOOTH_IS_ATTRIBUTE_OF_TYPE(a,t) ((a)->Type.Length == UUID_16BIT_TYPE_LEN && (a)->Type.Data.Uuid16 == (t))
|
||||
|
||||
//
|
||||
// Bluetooth Attribute Permission
|
||||
//
|
||||
typedef union {
|
||||
struct {
|
||||
UINT16 Readable : 1;
|
||||
UINT16 ReadEncryption : 1;
|
||||
UINT16 ReadAuthentication : 1;
|
||||
UINT16 ReadAuthorization : 1;
|
||||
UINT16 ReadKeySize : 5;
|
||||
UINT16 Reserved1 : 7;
|
||||
UINT16 Writeable : 1;
|
||||
UINT16 WriteEncryption : 1;
|
||||
UINT16 WriteAuthentication : 1;
|
||||
UINT16 WriteAuthorization : 1;
|
||||
UINT16 WriteKeySize : 5;
|
||||
UINT16 Reserved2 : 7;
|
||||
} Permission;
|
||||
UINT32 Data32;
|
||||
} EFI_BLUETOOTH_ATTRIBUTE_PERMISSION;
|
||||
|
||||
typedef struct {
|
||||
EFI_BLUETOOTH_UUID Type;
|
||||
UINT16 Length;
|
||||
UINT16 AttributeHandle;
|
||||
EFI_BLUETOOTH_ATTRIBUTE_PERMISSION AttributePermission;
|
||||
} EFI_BLUETOOTH_ATTRIBUTE_HEADER;
|
||||
|
||||
typedef struct {
|
||||
EFI_BLUETOOTH_ATTRIBUTE_HEADER Header;
|
||||
UINT16 EndGroupHandle;
|
||||
EFI_BLUETOOTH_UUID ServiceUuid;
|
||||
} EFI_BLUETOOTH_GATT_PRIMARY_SERVICE_INFO;
|
||||
|
||||
typedef struct {
|
||||
EFI_BLUETOOTH_ATTRIBUTE_HEADER Header;
|
||||
UINT16 StartGroupHandle;
|
||||
UINT16 EndGroupHandle;
|
||||
EFI_BLUETOOTH_UUID ServiceUuid;
|
||||
} EFI_BLUETOOTH_GATT_INCLUDE_SERVICE_INFO;
|
||||
|
||||
typedef struct {
|
||||
EFI_BLUETOOTH_ATTRIBUTE_HEADER Header;
|
||||
UINT8 CharacteristicProperties;
|
||||
UINT16 CharacteristicValueHandle;
|
||||
EFI_BLUETOOTH_UUID CharacteristicUuid;
|
||||
} EFI_BLUETOOTH_GATT_CHARACTERISTIC_INFO;
|
||||
|
||||
typedef struct {
|
||||
EFI_BLUETOOTH_ATTRIBUTE_HEADER Header;
|
||||
EFI_BLUETOOTH_UUID CharacteristicDescriptorUuid;
|
||||
} EFI_BLUETOOTH_GATT_CHARACTERISTIC_DESCRIPTOR_INFO;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
typedef struct {
|
||||
UINT16 AttributeHandle;
|
||||
} EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER_NOTIFICATION;
|
||||
|
||||
typedef struct {
|
||||
UINT16 AttributeHandle;
|
||||
} EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER_INDICATION;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Version;
|
||||
UINT8 AttributeOpCode;
|
||||
union {
|
||||
EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER_NOTIFICATION Notification;
|
||||
EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER_INDICATION Indication;
|
||||
} Parameter;
|
||||
} EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Version;
|
||||
BLUETOOTH_LE_ADDRESS BD_ADDR;
|
||||
BLUETOOTH_LE_ADDRESS DirectAddress;
|
||||
UINT8 RSSI;
|
||||
UINTN AdvertisementDataSize;
|
||||
VOID *AdvertisementData;
|
||||
} EFI_BLUETOOTH_LE_DEVICE_INFO;
|
||||
|
||||
/**
|
||||
The callback function to send request.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
|
||||
@param[in] Data Data received. The first byte is the attribute opcode, followed by opcode specific
|
||||
fields. See Bluetooth specification, Vol 3, Part F, Attribute Protocol. It might be a
|
||||
normal RESPONSE message, or ERROR RESPONSE messag
|
||||
@param[in] DataLength The length of Data in bytes.
|
||||
@param[in] Context The context passed from the callback registration request.
|
||||
|
||||
@retval EFI_SUCCESS The callback function complete successfully.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_FUNCTION) (
|
||||
IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
|
||||
IN VOID *Data,
|
||||
IN UINTN DataLength,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Send a "REQUEST" or "COMMAND" message to remote server and receive a "RESPONSE" message
|
||||
for "REQUEST" from remote server according to Bluetooth attribute protocol data unit(PDU).
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
|
||||
@param[in] Data Data of a REQUEST or COMMAND message. The first byte is the attribute PDU
|
||||
related opcode, followed by opcode specific fields. See Bluetooth specification,
|
||||
Vol 3, Part F, Attribute Protocol.
|
||||
@param[in] DataLength The length of Data in bytes.
|
||||
@param[in] Callback Callback function to notify the RESPONSE is received to the caller, with the
|
||||
response buffer. Caller must check the response buffer content to know if the
|
||||
request action is success or fail. It may be NULL if the data is a COMMAND.
|
||||
@param[in] Context Data passed into Callback function. It is optional parameter and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The request is sent successfully.
|
||||
@retval EFI_INVALID_PARAMETER One or more parameters are invalid due to following conditions:
|
||||
- The Buffer is NULL.
|
||||
- The BufferLength is 0.
|
||||
- The opcode in Buffer is not a valid OPCODE according to Bluetooth specification.
|
||||
- The Callback is NULL.
|
||||
@retval EFI_DEVICE_ERROR Sending the request failed due to the host controller or the device error.
|
||||
@retval EFI_NOT_READY A GATT operation is already underway for this device.
|
||||
@retval EFI_UNSUPPORTED The attribute does not support the corresponding operation.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_SEND_REQUEST) (
|
||||
IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
|
||||
IN VOID *Data,
|
||||
IN UINTN DataLength,
|
||||
IN EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_FUNCTION Callback,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Register or unregister a server initiated message, such as NOTIFICATION or INDICATION, on a
|
||||
characteristic value on remote server.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
|
||||
@param[in] CallbackParameter The parameter of the callback.
|
||||
@param[in] Callback Callback function for server initiated attribute protocol. NULL callback
|
||||
function means unregister the server initiated callback.
|
||||
@param[in] Context Data passed into Callback function. It is optional parameter and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The callback function is registered or unregistered successfully
|
||||
@retval EFI_INVALID_PARAMETER The attribute opcode is not server initiated message opcode. See
|
||||
Bluetooth specification, Vol 3, Part F, Attribute Protocol.
|
||||
@retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
|
||||
opcode and attribute handle, when the Callback is not NULL.
|
||||
@retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
|
||||
and attribute handle, when the Callback is NULL.
|
||||
@retval EFI_NOT_READY A GATT operation is already underway for this device.
|
||||
@retval EFI_UNSUPPORTED The attribute does not support notification.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_REGISTER_FOR_SERVER_NOTIFICATION)(
|
||||
IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
|
||||
IN EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_PARAMETER *CallbackParameter,
|
||||
IN EFI_BLUETOOTH_ATTRIBUTE_CALLBACK_FUNCTION Callback,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Get Bluetooth discovered service information.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL instance.
|
||||
@param[out] ServiceInfoSize A pointer to the size, in bytes, of the ServiceInfo buffer.
|
||||
@param[out] ServiceInfo A pointer to a callee allocated buffer that returns Bluetooth
|
||||
discovered service information. Callee allocates this buffer by
|
||||
using EFI Boot Service AllocatePool().
|
||||
|
||||
@retval EFI_SUCCESS The Bluetooth discovered service information is returned successfully.
|
||||
@retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the Bluetooth discovered
|
||||
service information.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_ATTRIBUTE_GET_SERVICE_INFO)(
|
||||
IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
|
||||
OUT UINTN *ServiceInfoSize,
|
||||
OUT VOID **ServiceInfo
|
||||
);
|
||||
|
||||
/**
|
||||
Get Bluetooth device information.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_ATTRIBUTE_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. Callee allocates this buffer by using EFI Boot
|
||||
Service AllocatePool(). If this device is Bluetooth classic
|
||||
device, EFI_BLUETOOTH_DEVICE_INFO should be used. If
|
||||
this device is Bluetooth LE device, EFI_BLUETOOTH_LE_DEVICE_INFO
|
||||
should be used.
|
||||
|
||||
@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_ATTRIBUTE_GET_DEVICE_INFO)(
|
||||
IN EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL *This,
|
||||
OUT UINTN *DeviceInfoSize,
|
||||
OUT VOID **DeviceInfo
|
||||
);
|
||||
|
||||
struct _EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL {
|
||||
EFI_BLUETOOTH_ATTRIBUTE_SEND_REQUEST SendRequest;
|
||||
EFI_BLUETOOTH_ATTRIBUTE_REGISTER_FOR_SERVER_NOTIFICATION RegisterForServerNotification;
|
||||
EFI_BLUETOOTH_ATTRIBUTE_GET_SERVICE_INFO GetServiceInfo;
|
||||
EFI_BLUETOOTH_ATTRIBUTE_GET_DEVICE_INFO GetDeviceInfo;
|
||||
};
|
||||
|
||||
|
||||
extern EFI_GUID gEfiBluetoothAttributeProtocolGuid;
|
||||
extern EFI_GUID gEfiBluetoothAttributeServiceBindingProtocolGuid;
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,634 @@
|
|||
/** @file
|
||||
EFI Bluetooth LE Config Protocol as defined in UEFI 2.7.
|
||||
This protocol abstracts user interface configuration for BluetoothLe device.
|
||||
|
||||
Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php.
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
@par Revision Reference:
|
||||
This Protocol is introduced in UEFI Specification 2.7
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __EFI_BLUETOOTH_LE_CONFIG_H__
|
||||
#define __EFI_BLUETOOTH_LE_CONFIG_H__
|
||||
|
||||
#include <Protocol/BluetoothConfig.h>
|
||||
#include <Protocol/BluetoothAttribute.h>
|
||||
|
||||
#define EFI_BLUETOOTH_LE_CONFIG_PROTOCOL_GUID \
|
||||
{ \
|
||||
0x8f76da58, 0x1f99, 0x4275, { 0xa4, 0xec, 0x47, 0x56, 0x51, 0x5b, 0x1c, 0xe8 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_BLUETOOTH_LE_CONFIG_PROTOCOL EFI_BLUETOOTH_LE_CONFIG_PROTOCOL;
|
||||
|
||||
/**
|
||||
Initialize BluetoothLE host controller and local device.
|
||||
|
||||
The Init() function initializes BluetoothLE host controller and local device.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
|
||||
@retval EFI_SUCCESS The BluetoothLE host controller and local device is initialized successfully.
|
||||
@retval EFI_DEVICE_ERROR A hardware error occurred trying to initialize the BluetoothLE host controller
|
||||
and local device.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_INIT)(
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
///
|
||||
/// The version of the structure. A value of zero represents the EFI_BLUETOOTH_LE_CONFIG_SCAN_PARAMETER
|
||||
/// structure as defined here. Future version of this specification may extend this data structure in a
|
||||
/// backward compatible way and increase the value of Version.
|
||||
///
|
||||
UINT32 Version;
|
||||
///
|
||||
/// Passive scanning or active scanning. See Bluetooth specification.
|
||||
///
|
||||
UINT8 ScanType;
|
||||
///
|
||||
/// Recommended scan interval to be used while performing scan.
|
||||
///
|
||||
UINT16 ScanInterval;
|
||||
///
|
||||
/// Recommended scan window to be used while performing a scan.
|
||||
///
|
||||
UINT16 ScanWindow;
|
||||
///
|
||||
/// Recommended scanning filter policy to be used while performing a scan.
|
||||
///
|
||||
UINT8 ScanningFilterPolicy;
|
||||
///
|
||||
/// This is one byte flag to serve as a filter to remove unneeded scan
|
||||
/// result. For example, set BIT0 means scan in LE Limited Discoverable
|
||||
/// Mode. Set BIT1 means scan in LE General Discoverable Mode.
|
||||
///
|
||||
UINT8 AdvertisementFlagFilter;
|
||||
} EFI_BLUETOOTH_LE_CONFIG_SCAN_PARAMETER;
|
||||
|
||||
typedef struct{
|
||||
BLUETOOTH_LE_ADDRESS BDAddr;
|
||||
BLUETOOTH_LE_ADDRESS DirectAddress;
|
||||
UINT8 RemoteDeviceState;
|
||||
INT8 RSSI;
|
||||
UINTN AdvertisementDataSize;
|
||||
VOID *AdvertisementData;
|
||||
} EFI_BLUETOOTH_LE_SCAN_CALLBACK_INFORMATION;
|
||||
|
||||
/**
|
||||
Callback function, it is called if a BluetoothLE device is found during scan process.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Context Context passed from scan request.
|
||||
@param[in] CallbackInfo Data related to scan result. NULL CallbackInfo means scan complete.
|
||||
|
||||
@retval EFI_SUCCESS The callback function complete successfully.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_SCAN_CALLBACK_FUNCTION) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN VOID *Context,
|
||||
IN EFI_BLUETOOTH_LE_SCAN_CALLBACK_INFORMATION *CallbackInfo
|
||||
);
|
||||
|
||||
/**
|
||||
Scan BluetoothLE device.
|
||||
|
||||
The Scan() function scans BluetoothLE device. When this function is returned, it just means scan
|
||||
request is submitted. It does not mean scan process is started or finished. Whenever there is a
|
||||
BluetoothLE device is found, the Callback function will be called. Callback function might be
|
||||
called before this function returns or after this function returns
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] ReScan If 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.
|
||||
@param[in] Timeout Duration in milliseconds for which to scan.
|
||||
@param[in] ScanParameter If it is not NULL, the ScanParameter is used to perform a scan by the BluetoothLE bus driver.
|
||||
If it is NULL, the default parameter is used.
|
||||
@param[in] Callback The callback function. This function is called if a BluetoothLE device is found during
|
||||
scan process.
|
||||
@param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The Bluetooth scan request is submitted.
|
||||
@retval EFI_DEVICE_ERROR A hardware error occurred trying to scan the BluetoothLE device.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_SCAN)(
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN BOOLEAN ReScan,
|
||||
IN UINT32 Timeout,
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_SCAN_PARAMETER *ScanParameter, OPTIONAL
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_SCAN_CALLBACK_FUNCTION Callback,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
///
|
||||
/// The version of the structure. A value of zero represents the
|
||||
/// EFI_BLUETOOTH_LE_CONFIG_CONNECT_PARAMETER
|
||||
/// structure as defined here. Future version of this specification may
|
||||
/// extend this data structure in a backward compatible way and
|
||||
/// increase the value of Version.
|
||||
///
|
||||
UINT32 Version;
|
||||
///
|
||||
/// Recommended scan interval to be used while performing scan before connect.
|
||||
///
|
||||
UINT16 ScanInterval;
|
||||
///
|
||||
/// Recommended scan window to be used while performing a connection
|
||||
///
|
||||
UINT16 ScanWindow;
|
||||
///
|
||||
/// Minimum allowed connection interval. Shall be less than or equal to ConnIntervalMax.
|
||||
///
|
||||
UINT16 ConnIntervalMin;
|
||||
///
|
||||
/// Maximum allowed connection interval. Shall be greater than or equal to ConnIntervalMin.
|
||||
///
|
||||
UINT16 ConnIntervalMax;
|
||||
///
|
||||
/// Slave latency for the connection in number of connection events.
|
||||
///
|
||||
UINT16 ConnLatency;
|
||||
///
|
||||
/// Link supervision timeout for the connection.
|
||||
///
|
||||
UINT16 SupervisionTimeout;
|
||||
} EFI_BLUETOOTH_LE_CONFIG_CONNECT_PARAMETER;
|
||||
|
||||
/**
|
||||
Connect a BluetoothLE device.
|
||||
|
||||
The Connect() function connects a Bluetooth device. When this function is returned successfully,
|
||||
a new EFI_BLUETOOTH_IO_PROTOCOL is created.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] AutoReconnect If TRUE, the BluetoothLE host controller needs to do an auto
|
||||
reconnect. If FALSE, the BluetoothLE host controller does not do
|
||||
an auto reconnect.
|
||||
@param[in] DoBonding If TRUE, the BluetoothLE host controller needs to do a bonding.
|
||||
If FALSE, the BluetoothLE host controller does not do a bonding.
|
||||
@param[in] ConnectParameter If it is not NULL, the ConnectParameter is used to perform a
|
||||
scan by the BluetoothLE bus driver. If it is NULL, the default
|
||||
parameter is used.
|
||||
@param[in] BD_ADDR The address of the BluetoothLE device to be connected.
|
||||
|
||||
@retval EFI_SUCCESS The BluetoothLE device is connected successfully.
|
||||
@retval EFI_ALREADY_STARTED The BluetoothLE device is already connected.
|
||||
@retval EFI_NOT_FOUND The BluetoothLE device is not found.
|
||||
@retval EFI_DEVICE_ERROR A hardware error occurred trying to connect the BluetoothLE device.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_CONNECT)(
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN BOOLEAN AutoReconnect,
|
||||
IN BOOLEAN DoBonding,
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_CONNECT_PARAMETER *ConnectParameter, OPTIONAL
|
||||
IN BLUETOOTH_LE_ADDRESS *BD_ADDR
|
||||
);
|
||||
|
||||
/**
|
||||
Disconnect a BluetoothLE device.
|
||||
|
||||
The Disconnect() function disconnects a BluetoothLE device. When this function is returned
|
||||
successfully, the EFI_BLUETOOTH_ATTRIBUTE_PROTOCOL associated with this device is
|
||||
destroyed and all services associated are stopped.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] BD_ADDR The address of BluetoothLE device to be connected.
|
||||
@param[in] Reason Bluetooth disconnect reason. See Bluetooth specification for detail.
|
||||
|
||||
@retval EFI_SUCCESS The BluetoothLE device is disconnected successfully.
|
||||
@retval EFI_NOT_STARTED The BluetoothLE device is not connected.
|
||||
@retval EFI_NOT_FOUND The BluetoothLE device is not found.
|
||||
@retval EFI_DEVICE_ERROR A hardware error occurred trying to disconnect the BluetoothLE device.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_DISCONNECT)(
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN BLUETOOTH_LE_ADDRESS *BD_ADDR,
|
||||
IN UINT8 Reason
|
||||
);
|
||||
|
||||
/**
|
||||
Get BluetoothLE configuration data.
|
||||
|
||||
The GetData() function returns BluetoothLE configuration data. For remote BluetoothLE device
|
||||
configuration data, please use GetRemoteData() function with valid BD_ADDR.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] DataType Configuration data type.
|
||||
@param[in, out] DataSize On input, indicates the size, in bytes, of the data buffer specified by Data.
|
||||
On output, indicates the amount of data actually returned.
|
||||
@param[in, out] Data A pointer to the buffer of data that will be returned.
|
||||
|
||||
@retval EFI_SUCCESS The BluetoothLE configuration data is returned successfully.
|
||||
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
|
||||
- DataSize is NULL.
|
||||
- *DataSize is 0.
|
||||
- Data is NULL.
|
||||
@retval EFI_UNSUPPORTED The DataType is unsupported.
|
||||
@retval EFI_NOT_FOUND The DataType is not found.
|
||||
@retval EFI_BUFFER_TOO_SMALL The buffer is too small to hold the buffer.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_GET_DATA) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType,
|
||||
IN OUT UINTN *DataSize,
|
||||
IN OUT VOID *Data OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
Set BluetoothLE configuration data.
|
||||
|
||||
The SetData() function sets local BluetoothLE device configuration data. Not all DataType can be
|
||||
set.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] DataType Configuration data type.
|
||||
@param[in] DataSize Indicates the size, in bytes, of the data buffer specified by Data.
|
||||
@param[in] Data A pointer to the buffer of data that will be set.
|
||||
|
||||
@retval EFI_SUCCESS The BluetoothLE configuration data is set successfully.
|
||||
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
|
||||
- DataSize is 0.
|
||||
- Data is NULL.
|
||||
@retval EFI_UNSUPPORTED The DataType is unsupported.
|
||||
@retval EFI_WRITE_PROTECTED Cannot set configuration data.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_SET_DATA) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType,
|
||||
IN UINTN DataSize,
|
||||
IN VOID *Data
|
||||
);
|
||||
|
||||
/**
|
||||
Get remove BluetoothLE device configuration data.
|
||||
|
||||
The GetRemoteData() function returns remote BluetoothLE device configuration data.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] DataType Configuration data type.
|
||||
@param[in] BDAddr Remote BluetoothLE device address.
|
||||
@param[in, out] DataSize On input, indicates the size, in bytes, of the data buffer specified by Data.
|
||||
On output, indicates the amount of data actually returned.
|
||||
@param[in, out] Data A pointer to the buffer of data that will be returned.
|
||||
|
||||
@retval EFI_SUCCESS The remote BluetoothLE device configuration data is returned successfully.
|
||||
@retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
|
||||
- DataSize is NULL.
|
||||
- *DataSize is 0.
|
||||
- Data is NULL.
|
||||
@retval EFI_UNSUPPORTED The DataType is unsupported.
|
||||
@retval EFI_NOT_FOUND The DataType is not found.
|
||||
@retval EFI_BUFFER_TOO_SMALL The buffer is too small to hold the buffer.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_GET_REMOTE_DATA) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN EFI_BLUETOOTH_CONFIG_DATA_TYPE DataType,
|
||||
IN BLUETOOTH_LE_ADDRESS *BDAddr,
|
||||
IN OUT UINTN *DataSize,
|
||||
IN OUT VOID *Data
|
||||
);
|
||||
|
||||
typedef enum {
|
||||
///
|
||||
/// It indicates an authorization request. No data is associated with the callback
|
||||
/// input. In the output data, the application should return the authorization value.
|
||||
/// The data structure is BOOLEAN. TRUE means YES. FALSE means NO.
|
||||
///
|
||||
EfiBluetoothSmpAuthorizationRequestEvent,
|
||||
///
|
||||
/// It indicates that a passkey has been generated locally by the driver, and the same
|
||||
/// passkey should be entered at the remote device. The callback input data is the
|
||||
/// passkey of type UINT32, to be displayed by the application. No output data
|
||||
/// should be returned.
|
||||
///
|
||||
EfiBluetoothSmpPasskeyReadyEvent,
|
||||
///
|
||||
/// It indicates that the driver is requesting for the passkey has been generated at
|
||||
/// the remote device. No data is associated with the callback input. The output data
|
||||
/// is the passkey of type UINT32, to be entered by the user.
|
||||
///
|
||||
EfiBluetoothSmpPasskeyRequestEvent,
|
||||
///
|
||||
/// It indicates that the driver is requesting for the passkey that has been pre-shared
|
||||
/// out-of-band with the remote device. No data is associated with the callback
|
||||
/// input. The output data is the stored OOB data of type UINT8[16].
|
||||
///
|
||||
EfiBluetoothSmpOOBDataRequestEvent,
|
||||
///
|
||||
/// In indicates that a number have been generated locally by the bus driver, and
|
||||
/// also at the remote device, and the bus driver wants to know if the two numbers
|
||||
/// match. The callback input data is the number of type UINT32. The output data
|
||||
/// is confirmation value of type BOOLEAN. TRUE means comparison pass. FALSE
|
||||
/// means comparison fail.
|
||||
///
|
||||
EfiBluetoothSmpNumericComparisonEvent,
|
||||
} EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE;
|
||||
|
||||
/**
|
||||
The callback function for SMP.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Context Data passed into callback function. This is optional parameter
|
||||
and may be NULL.
|
||||
@param[in] BDAddr Remote BluetoothLE device address.
|
||||
@param[in] EventDataType Event data type in EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE.
|
||||
@param[in] DataSize Indicates the size, in bytes, of the data buffer specified by Data.
|
||||
@param[in] Data A pointer to the buffer of data.
|
||||
|
||||
@retval EFI_SUCCESS The callback function complete successfully.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_SMP_CALLBACK) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN VOID *Context,
|
||||
IN BLUETOOTH_LE_ADDRESS *BDAddr,
|
||||
IN EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE EventDataType,
|
||||
IN UINTN DataSize,
|
||||
IN VOID *Data
|
||||
);
|
||||
|
||||
/**
|
||||
Register Security Manager Protocol callback function for user authentication/authorization.
|
||||
|
||||
The RegisterSmpAuthCallback() function register Security Manager Protocol callback
|
||||
function for user authentication/authorization.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Callback Callback function for user authentication/authorization.
|
||||
@param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The SMP callback function is registered successfully.
|
||||
@retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
|
||||
opcode and attribute handle, when the Callback is not NULL.
|
||||
@retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
|
||||
and attribute handle, when the Callback is NULL.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_REGISTER_SMP_AUTH_CALLBACK) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN EFI_BLUETOOTH_LE_SMP_CALLBACK Callback,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Send user authentication/authorization to remote device.
|
||||
|
||||
The SendSmpAuthData() function sends user authentication/authorization to remote device. It
|
||||
should be used to send these information after the caller gets the request data from the callback
|
||||
function by RegisterSmpAuthCallback().
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] BDAddr Remote BluetoothLE device address.
|
||||
@param[in] EventDataType Event data type in EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE.
|
||||
@param[in] DataSize The size of Data in bytes, of the data buffer specified by Data.
|
||||
@param[in] Data A pointer to the buffer of data that will be sent. The data format
|
||||
depends on the type of SMP event data being responded to.
|
||||
|
||||
@retval EFI_SUCCESS The SMP authorization data is sent successfully.
|
||||
@retval EFI_NOT_READY SMP is not in the correct state to receive the auth data.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_SEND_SMP_AUTH_DATA) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN BLUETOOTH_LE_ADDRESS *BDAddr,
|
||||
IN EFI_BLUETOOTH_LE_SMP_EVENT_DATA_TYPE EventDataType,
|
||||
IN UINTN DataSize,
|
||||
IN VOID *Data
|
||||
);
|
||||
|
||||
typedef enum {
|
||||
// For local device only
|
||||
EfiBluetoothSmpLocalIR, /* If Key hierarchy is supported */
|
||||
EfiBluetoothSmpLocalER, /* If Key hierarchy is supported */
|
||||
EfiBluetoothSmpLocalDHK, /* If Key hierarchy is supported. OPTIONAL */
|
||||
// For peer specific
|
||||
EfiBluetoothSmpKeysDistributed = 0x1000,
|
||||
EfiBluetoothSmpKeySize,
|
||||
EfiBluetoothSmpKeyType,
|
||||
EfiBluetoothSmpPeerLTK,
|
||||
EfiBluetoothSmpPeerIRK,
|
||||
EfiBluetoothSmpPeerCSRK,
|
||||
EfiBluetoothSmpPeerRand,
|
||||
EfiBluetoothSmpPeerEDIV,
|
||||
EfiBluetoothSmpPeerSignCounter,
|
||||
EfiBluetoothSmpLocalLTK, /* If Key hierarchy not supported */
|
||||
EfiBluetoothSmpLocalIRK, /* If Key hierarchy not supported */
|
||||
EfiBluetoothSmpLocalCSRK, /* If Key hierarchy not supported */
|
||||
EfiBluetoothSmpLocalSignCounter,
|
||||
EfiBluetoothSmpLocalDIV,
|
||||
} EFI_BLUETOOTH_LE_SMP_DATA_TYPE;
|
||||
|
||||
/**
|
||||
The callback function to get SMP data.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Context Data passed into callback function. This is optional parameter
|
||||
and may be NULL.
|
||||
@param[in] BDAddr Remote BluetoothLE device address. For Local device setting, it
|
||||
should be NULL.
|
||||
@param[in] DataType Data type in EFI_BLUETOOTH_LE_SMP_DATA_TYPE.
|
||||
@param[in, out] DataSize On input, indicates the size, in bytes, of the data buffer specified
|
||||
by Data. On output, indicates the amount of data actually returned.
|
||||
@param[out] Data A pointer to the buffer of data that will be returned.
|
||||
|
||||
@retval EFI_SUCCESS The callback function complete successfully.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * EFI_BLUETOOTH_LE_CONFIG_SMP_GET_DATA_CALLBACK) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN VOID *Context,
|
||||
IN BLUETOOTH_LE_ADDRESS *BDAddr,
|
||||
IN EFI_BLUETOOTH_LE_SMP_DATA_TYPE DataType,
|
||||
IN OUT UINTN *DataSize,
|
||||
OUT VOID *Data
|
||||
);
|
||||
|
||||
/**
|
||||
Register a callback function to get SMP related data.
|
||||
|
||||
The RegisterSmpGetDataCallback() function registers a callback function to get SMP related data.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Callback Callback function for SMP get data.
|
||||
@param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The SMP get data callback function is registered successfully.
|
||||
@retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
|
||||
opcode and attribute handle, when the Callback is not NULL.
|
||||
@retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
|
||||
and attribute handle, when the Callback is NULL
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * EFI_BLUETOOTH_LE_CONFIG_REGISTER_SMP_GET_DATA_CALLBACK) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_SMP_GET_DATA_CALLBACK Callback,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
The callback function to set SMP data.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Context Data passed into callback function. This is optional parameter
|
||||
and may be NULL.
|
||||
@param[in] BDAddr Remote BluetoothLE device address.
|
||||
@param[in] DataType Data type in EFI_BLUETOOTH_LE_SMP_DATA_TYPE.
|
||||
@param[in] DataSize Indicates the size, in bytes, of the data buffer specified by Data.
|
||||
@param[in] Data A pointer to the buffer of data.
|
||||
|
||||
@retval EFI_SUCCESS The callback function complete successfully.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * EFI_BLUETOOTH_LE_CONFIG_SMP_SET_DATA_CALLBACK) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN VOID *Context,
|
||||
IN BLUETOOTH_LE_ADDRESS *BDAddr,
|
||||
IN EFI_BLUETOOTH_LE_SMP_DATA_TYPE Type,
|
||||
IN UINTN DataSize,
|
||||
IN VOID *Data
|
||||
);
|
||||
|
||||
/**
|
||||
Register a callback function to set SMP related data.
|
||||
|
||||
The RegisterSmpSetDataCallback() function registers a callback function to set SMP related data.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Callback Callback function for SMP set data.
|
||||
@param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The SMP set data callback function is registered successfully.
|
||||
@retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
|
||||
opcode and attribute handle, when the Callback is not NULL.
|
||||
@retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
|
||||
and attribute handle, when the Callback is NULL
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI * EFI_BLUETOOTH_LE_CONFIG_REGISTER_SMP_SET_DATA_CALLBACK) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_SMP_SET_DATA_CALLBACK Callback,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
The callback function to hook connect complete event.
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Context Data passed into callback function. This is optional parameter
|
||||
and may be NULL.
|
||||
@param[in] CallbackType The value defined in EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE.
|
||||
@param[in] BDAddr Remote BluetoothLE device address.
|
||||
@param[in] InputBuffer A pointer to the buffer of data that is input from callback caller.
|
||||
@param[in] InputBufferSize Indicates the size, in bytes, of the data buffer specified by InputBuffer.
|
||||
|
||||
@retval EFI_SUCCESS The callback function complete successfully.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_CONNECT_COMPLETE_CALLBACK) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN VOID *Context,
|
||||
IN EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE CallbackType,
|
||||
IN BLUETOOTH_LE_ADDRESS *BDAddr,
|
||||
IN VOID *InputBuffer,
|
||||
IN UINTN InputBufferSize
|
||||
);
|
||||
|
||||
/**
|
||||
Register link connect complete callback function.
|
||||
|
||||
The RegisterLinkConnectCompleteCallback() function registers Bluetooth link connect
|
||||
complete callback function. The Bluetooth Configuration driver may call
|
||||
RegisterLinkConnectCompleteCallback() to register a callback function. During pairing,
|
||||
Bluetooth bus driver must trigger this callback function to report device state, if it is registered.
|
||||
Then Bluetooth Configuration driver will get information on device connection, according to
|
||||
CallbackType defined by EFI_BLUETOOTH_CONNECT_COMPLETE_CALLBACK_TYPE
|
||||
|
||||
@param[in] This Pointer to the EFI_BLUETOOTH_LE_CONFIG_PROTOCOL instance.
|
||||
@param[in] Callback The callback function. NULL means unregister.
|
||||
@param[in] Context Data passed into Callback function. This is optional parameter and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The link connect complete callback function is registered successfully.
|
||||
@retval EFI_ALREADY_STARTED A callback function is already registered on the same attribute
|
||||
opcode and attribute handle, when the Callback is not NULL.
|
||||
@retval EFI_NOT_STARTED A callback function is not registered on the same attribute opcode
|
||||
and attribute handle, when the Callback is NULL
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_BLUETOOTH_LE_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK) (
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_PROTOCOL *This,
|
||||
IN EFI_BLUETOOTH_LE_CONFIG_CONNECT_COMPLETE_CALLBACK Callback,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
///
|
||||
/// This protocol abstracts user interface configuration for BluetoothLe device.
|
||||
///
|
||||
struct _EFI_BLUETOOTH_LE_CONFIG_PROTOCOL {
|
||||
EFI_BLUETOOTH_LE_CONFIG_INIT Init;
|
||||
EFI_BLUETOOTH_LE_CONFIG_SCAN Scan;
|
||||
EFI_BLUETOOTH_LE_CONFIG_CONNECT Connect;
|
||||
EFI_BLUETOOTH_LE_CONFIG_DISCONNECT Disconnect;
|
||||
EFI_BLUETOOTH_LE_CONFIG_GET_DATA GetData;
|
||||
EFI_BLUETOOTH_LE_CONFIG_SET_DATA SetData;
|
||||
EFI_BLUETOOTH_LE_CONFIG_GET_REMOTE_DATA GetRemoteData;
|
||||
EFI_BLUETOOTH_LE_REGISTER_SMP_AUTH_CALLBACK RegisterSmpAuthCallback;
|
||||
EFI_BLUETOOTH_LE_SEND_SMP_AUTH_DATA SendSmpAuthData;
|
||||
EFI_BLUETOOTH_LE_CONFIG_REGISTER_SMP_GET_DATA_CALLBACK RegisterSmpGetDataCallback;
|
||||
EFI_BLUETOOTH_LE_CONFIG_REGISTER_SMP_SET_DATA_CALLBACK RegisterSmpSetDataCallback;
|
||||
EFI_BLUETOOTH_LE_CONFIG_REGISTER_CONNECT_COMPLETE_CALLBACK RegisterLinkConnectCompleteCallback;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiBluetoothLeConfigProtocolGuid;
|
||||
|
||||
#endif
|
||||
|
|
@ -1661,6 +1661,16 @@
|
|||
## Include/Protocol/EraseBlock.h
|
||||
gEfiEraseBlockProtocolGuid = { 0x95a9a93e, 0xa86e, 0x4926, {0xaa, 0xef, 0x99, 0x18, 0xe7, 0x72, 0xd9, 0x87 }}
|
||||
|
||||
#
|
||||
# Protocols defined in UEFI2.7
|
||||
#
|
||||
## Include/Protocol/BluetoothAttribute.h
|
||||
gEfiBluetoothAttributeProtocolGuid = { 0x898890e9, 0x84b2, 0x4f3a, { 0x8c, 0x58, 0xd8, 0x57, 0x78, 0x13, 0xe0, 0xac } }
|
||||
gEfiBluetoothAttributeServiceBindingProtocolGuid = { 0x5639867a, 0x8c8e, 0x408d, {0xac, 0x2f, 0x4b, 0x61, 0xbd, 0xc0, 0xbb, 0xbb }}
|
||||
|
||||
## Include/Protocol/BluetoothLeConfig.h
|
||||
gEfiBluetoothLeConfigProtocolGuid = { 0x8f76da58, 0x1f99, 0x4275, { 0xa4, 0xec, 0x47, 0x56, 0x51, 0x5b, 0x1c, 0xe8 } }
|
||||
|
||||
#
|
||||
# Protocols defined in Shell2.0
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue