Bluetooth Driver services

From Nintendo Switch Brew
Jump to: navigation, search

btdrv

This is "nn::bluetooth::IBluetoothDriver".

The bluetooth driver implements the bluetooth protocol over h4/uart.

It interfaces with the uart service to actually talk with the bluetooth hardware.

The code seems to be derived from a broadcom stack. A good starting point for similar source code can be found in the MICO project: https://github.com/yinhongxing/mico/tree/ea67ff3659f12d730d4dc3b8d547b093bd2ee2ee/MICO/bluetooth_bte Note that the library files contain many (symbolized) functions which match btdrv.

Cmd Name
0
1 Init
2 Enable
3 Disable
4 CleanupAndShutdown
5 GetAdapterProperties
6 GetAdapterProperty
7 SetAdapterProperty
8 StartDiscovery
9 CancelDiscovery
10 CreateBond
11 RemoveBond
12 CancelBond
13 PinReply
14 SspReply
15
16 InitInterfaces
17 HidHostInterface_Connect
18 HidHostInterface_Disconnect
19 HidHostInterface_SendData
20 HidHostInterface_SendData2
21 HidHostInterface_SetReport
22 HidHostInterface_GetReport
23 HidHostInterface_WakeController
24 HidHostInterface_AddPairedDevice
25 HidHostInterface_GetPairedDevice
26 HidHostInterface_CleanupAndShutdown
27
28 ExtInterface_SetTSI
29 ExtInterface_SetBurstMode
30 ExtInterface_SetZeroRetran
31 ExtInterface_SetMcMode
32 ExtInterface_StartLlrMode
33 ExtInterface_ExitLlrMode
34 ExtInterface_SetRadio
35 ExtInterface_SetVisibility
36
37
38 HidHostInterface_GetLatestPlr
39 ExtInterface_GetPendingConnections
40 HidHostInterface_GetChannelMap
41 SetIsBluetoothBoostEnabled
42 GetIsBluetoothBoostEnabled
43 SetIsBluetoothAfhEnabled
44 GetIsBluetoothAfhEnabled

bt

This is "nn::bluetooth::IBluetoothUser".


Cmd Name
0 LeClientReadCharacteristic
1 LeClientReadDescriptor
2 LeClientWriteCharacteristic
3 LeClientWriteDescriptor
4 LeClientRegisterNotification
5 LeClientDeregisterNotification
6 SetLeResponse
7 LeSendIndication
8 GetLeEventInfo
9 RegisterBleEvent