BTM services: Difference between revisions

No edit summary
Line 12: Line 12:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || GetState
| 0 || [[#GetState]]
|-
|-
| 1 || GetHostDeviceProperty
| 1 || [[#GetHostDeviceProperty]]
|-
|-
| 2 || AcquireDeviceConditionEvent
| 2 || [[#AcquireDeviceConditionEvent]]
|-
|-
| 3 || GetDeviceCondition
| 3 || [[#GetDeviceCondition]]
|-
|-
| 4 || SetBurstMode
| 4 || [[#SetBurstMode]]
|-
|-
| 5 || SetSlotMode
| 5 || [[#SetSlotMode]]
|-
|-
| 6 || [1.0.0-8.1.0] SetBluetoothMode
| 6 || [1.0.0-8.1.0] [[#SetBluetoothMode]]
|-
|-
| 7 || SetWlanMode
| 7 || [[#SetWlanMode]]
|-
|-
| 8 || AcquireDeviceInfoEvent
| 8 || [[#AcquireDeviceInfoEvent]]
|-
|-
| 9 || GetDeviceInfo
| 9 || [[#GetDeviceInfo]]
|-
|-
| 10 || AddDeviceInfo
| 10 || [[#AddDeviceInfo]]
|-
|-
| 11 || RemoveDeviceInfo
| 11 || [[#RemoveDeviceInfo]]
|-
|-
| 12 || IncreaseDeviceInfoOrder
| 12 || [[#IncreaseDeviceInfoOrder]]
|-
|-
| 13 || [[#LlrNotify]]
| 13 || [[#LlrNotify]]
|-
|-
| 14 || EnableRadio
| 14 || [[#EnableRadio]]
|-
|-
| 15 || DisableRadio
| 15 || [[#DisableRadio]]
|-
|-
| 16 || HidDisconnect
| 16 || [[#HidDisconnect]]
|-
|-
| 17 || HidSetRetransmissionMode
| 17 || [[#HidSetRetransmissionMode]]
|-
|-
| 18 || [2.0.0+] AcquireAwakeReqEvent
| 18 || [2.0.0+] [[#AcquireAwakeReqEvent]]
|-
|-
| 19 || [4.0.0+] AcquireLlrStateEvent
| 19 || [4.0.0+] AcquireLlrStateEvent
Line 143: Line 143:
|}
|}


[3.0.0+] RegisterSystemEventForConnectedDeviceCondition, RegisterSystemEventForRegisteredDeviceInfo, and cmd18 now returns an output u8.
With [5.1.0+] cmds 24-42 were moved/replaced/etc (input/output changed).
 
== GetState ==
No input, returns an output [[#BtmState]].
 
== GetHostDeviceProperty ==
No input, returns an output [[#HostDeviceProperty]].
 
== AcquireDeviceConditionEvent ==
No input, returns an output Event handle with EventClearMode=1.
 
[3.0.0+] Now returns an additional output u8.
 
== GetDeviceCondition ==
Takes a type-0x1A output buffer containing a 0x368-byte struct.
 
== SetBurstMode ==
Takes an input [[Bluetooth_Driver_services#Address|Address]] and a bool, no output.
 
== SetSlotMode ==
Takes a type-0x19 input buffer containing a [[#DeviceSlotModeList]], no output.
 
== SetBluetoothMode ==
Takes an input [[#BluetoothMode]], no output.
 
== SetWlanMode ==
Takes an input [[#WlanMode]], no output.


With [5.1.0+] cmds 24-42 were moved/replaced/etc (input/output changed).
== AcquireDeviceInfoEvent ==
No input, returns an output Event handle with EventClearMode=1.
 
[3.0.0+] Now returns an additional output u8.
 
== GetDeviceInfo ==
Takes a type-0x1A output buffer containing a [[#DeviceInfoList]].
 
== AddDeviceInfo ==
Takes an input [[#DeviceInfo]], no output.
 
== RemoveDeviceInfo ==
Takes an input [[Bluetooth_Driver_services#Address|Address]], no output.
 
== IncreaseDeviceInfoOrder ==
Takes an input [[Bluetooth_Driver_services#Address|Address]], no output.


== LlrNotify ==
== LlrNotify ==
Line 151: Line 192:


[9.0.0+] Takes an input [[Bluetooth_Driver_services#Address|Address]] and a s32, no output.
[9.0.0+] Takes an input [[Bluetooth_Driver_services#Address|Address]] and a s32, no output.
== EnableRadio ==
No input/output.
== DisableRadio ==
No input/output.
== HidDisconnect ==
Takes an input [[Bluetooth_Driver_services#Address|Address]], no output.
== HidSetRetransmissionMode ==
Takes an input [[Bluetooth_Driver_services#Address|Address]] and a type-0x19 input buffer containing a [[#ZeroRetransmissionList]], no output.
== AcquireAwakeReqEvent ==
No input, returns an output Event handle with EventClearMode=1.
[3.0.0+] Now returns an additional output u8.


= btm:dbg =
= btm:dbg =
Line 507: Line 565:
=== UnregisterBleGattDataPath ===
=== UnregisterBleGattDataPath ===
Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
= BtmState =
This is "nn::btm::BtmState". This is an u32 enum.
= BluetoothMode =
This is "nn::btm::BluetoothMode". This is an u32 enum.
= WlanMode =
This is "nn::btm::WlanMode". This is an u32 enum.
= HostDeviceProperty =
This is "nn::btm::HostDeviceProperty". This is a 0x2A-byte struct.
= DeviceSlotModeList =
This is "nn::btm::DeviceSlotModeList". This is a 0x64-byte struct.
= DeviceInfoList =
This is "nn::btm::DeviceInfoList". This is a 0x3C4-byte struct.
= DeviceInfo =
This is "nn::btm::DeviceInfo". This is a 0x60-byte struct.
= ZeroRetransmissionList =
This is "nn::btm::ZeroRetransmissionList". This is a 0x11-byte struct.


= GattService =
= GattService =