Changes

Line 10: Line 10:  
Support for "nn::bluetooth::*" was added to sdknso with 6.x.
 
Support for "nn::bluetooth::*" was added to sdknso with 6.x.
   −
btdrv appears to be designed to only be used by the two sysmodules which use it, hid and btm. This service uses global state, nothing service-session-specific.
+
btdrv appears to be designed to only be used by the two sysmodules which use it, [[HID_services|hid]] and [[BTM_services|btm]]. This service uses global state, nothing service-session-specific.
    
This has max_sessions 30. IPC handling is done by the main-thread.
 
This has max_sessions 30. IPC handling is done by the main-thread.
Line 237: Line 237:  
No input, returns an output Event handle with EventClearMode=1.
 
No input, returns an output Event handle with EventClearMode=1.
   −
This is used by btm, this should not be used by other processes.
+
This is used by [[BTM_services|btm]], this should not be used by other processes.
    
== EnableBluetooth ==
 
== EnableBluetooth ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== DisableBluetooth ==
 
== DisableBluetooth ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== FinalizeBluetooth ==
 
== FinalizeBluetooth ==
 
No input/output.
 
No input/output.
   −
Not used by btm, other processes should not use this.
+
Not used by [[BTM_services|btm]], other processes should not use this.
    
== GetAdapterProperties ==
 
== GetAdapterProperties ==
 
Takes a type-0x1A output buffer containing an [[#AdapterProperty]].
 
Takes a type-0x1A output buffer containing an [[#AdapterProperty]].
 +
 +
This is used by [[BTM_services|btm]].
    
== GetAdapterProperty ==
 
== GetAdapterProperty ==
Line 261: Line 267:  
== StartInquiry ==
 
== StartInquiry ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== StopInquiry ==
 
== StopInquiry ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== CreateBond ==
 
== CreateBond ==
Line 269: Line 279:     
[9.0.0+] Now only takes an [[#Address]] and a [[#TransportType]] without a buffer, no output.
 
[9.0.0+] Now only takes an [[#Address]] and a [[#TransportType]] without a buffer, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== RemoveBond ==
 
== RemoveBond ==
 
Takes an input [[#Address]], no output.
 
Takes an input [[#Address]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== CancelBond ==
 
== CancelBond ==
 
Takes an input [[#Address]], no output.
 
Takes an input [[#Address]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== RespondToPinRequest ==
 
== RespondToPinRequest ==
Line 283: Line 299:  
== RespondToSspRequest ==
 
== RespondToSspRequest ==
 
Takes an input [[#Address]], a [[#BluetoothSspVariant]], a bool, an u32, no output.
 
Takes an input [[#Address]], a [[#BluetoothSspVariant]], a bool, an u32, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== GetEventInfo ==
 
== GetEventInfo ==
Line 289: Line 307:  
This copies 0x400-bytes from state to the output buffer, copies the [[#EventType]] from state to output, and signals an event.
 
This copies 0x400-bytes from state to the output buffer, copies the [[#EventType]] from state to output, and signals an event.
   −
This is used by btm.
+
This is used by [[BTM_services|btm]].
    
== InitializeHid ==
 
== InitializeHid ==
Line 296: Line 314:  
Originally sdknso used an user-specified value for the u16, however with [9.0.0+] it uses hard-coded value 0x1 instead.
 
Originally sdknso used an user-specified value for the u16, however with [9.0.0+] it uses hard-coded value 0x1 instead.
   −
This is used by btm, this should not be used by other processes.
+
This is used by [[BTM_services|btm]], this should not be used by other processes.
    
== OpenHidConnection ==
 
== OpenHidConnection ==
Line 302: Line 320:     
This just returns 0.
 
This just returns 0.
 +
 +
This is used by [[BTM_services|btm]].
    
== CloseHidConnection ==
 
== CloseHidConnection ==
 
Takes an input [[#Address]], no output.
 
Takes an input [[#Address]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== HidSendData ==
 
== HidSendData ==
Line 311: Line 333:  
== WriteHidData ==
 
== WriteHidData ==
 
Takes an input [[#Address]] and a type-0x19 input buffer containing a [[#HidReport]], no output.
 
Takes an input [[#Address]] and a type-0x19 input buffer containing a [[#HidReport]], no output.
 +
 +
This is used by [[HID_services|hid]].
    
== WriteHidData2 ==
 
== WriteHidData2 ==
Line 322: Line 346:  
== SetHidReport ==
 
== SetHidReport ==
 
Takes an input [[#Address]], a [[#BluetoothHhReportType]], a type-0x19 input buffer containing a [[#HidReport]], no output.
 
Takes an input [[#Address]], a [[#BluetoothHhReportType]], a type-0x19 input buffer containing a [[#HidReport]], no output.
 +
 +
This is used by [[HID_services|hid]].
    
== GetHidReport ==
 
== GetHidReport ==
 
Takes an input [[#Address]], an u8, a [[#BluetoothHhReportType]], no output.
 
Takes an input [[#Address]], an u8, a [[#BluetoothHhReportType]], no output.
 +
 +
This is used by [[HID_services|hid]].
    
== HidWakeController ==
 
== HidWakeController ==
Line 331: Line 359:  
== TriggerConnection ==
 
== TriggerConnection ==
 
Takes an input [[#Address]] and an u16, no output.
 
Takes an input [[#Address]] and an u16, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== AddPairedDeviceInfo ==
 
== AddPairedDeviceInfo ==
 
Takes a type-0x19 input buffer containing [[Settings_services#BluetoothDevicesSettings|BluetoothDevicesSettings]], no output.
 
Takes a type-0x19 input buffer containing [[Settings_services#BluetoothDevicesSettings|BluetoothDevicesSettings]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== GetPairedDeviceInfo ==
 
== GetPairedDeviceInfo ==
 
Takes an input [[#Address]] and a type-0x1A output buffer containing [[Settings_services#BluetoothDevicesSettings|BluetoothDevicesSettings]].
 
Takes an input [[#Address]] and a type-0x1A output buffer containing [[Settings_services#BluetoothDevicesSettings|BluetoothDevicesSettings]].
 +
 +
This is used by [[BTM_services|btm]].
    
== FinalizeHid ==
 
== FinalizeHid ==
 
No input/output.
 
No input/output.
   −
Not used by btm, other processes should not use this.
+
Not used by [[BTM_services|btm]], other processes should not use this.
    
== GetHidEventInfo ==
 
== GetHidEventInfo ==
Line 347: Line 381:     
This copies 0x480-bytes from state to the output buffer. [[#HidEventType]] is set to: stateval!=0 ? 7 : 0. Once finished, this signals an event.
 
This copies 0x480-bytes from state to the output buffer. [[#HidEventType]] is set to: stateval!=0 ? 7 : 0. Once finished, this signals an event.
 +
 +
This is used by [[BTM_services|btm]].
    
== SetTsi ==
 
== SetTsi ==
 
Takes an input [[#Address]] and an u8, no output.
 
Takes an input [[#Address]] and an u8, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== EnableBurstMode ==
 
== EnableBurstMode ==
 
Takes an input [[#Address]] and a bool, no output.
 
Takes an input [[#Address]] and a bool, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== SetZeroRetransmission ==
 
== SetZeroRetransmission ==
Line 359: Line 399:  
The entry-count is clamped to a maximum of 5, the count can be 0.
 
The entry-count is clamped to a maximum of 5, the count can be 0.
   −
This is used by btm.
+
This is used by [[BTM_services|btm]].
    
== EnableMcMode ==
 
== EnableMcMode ==
 
Takes an input bool, no output.
 
Takes an input bool, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== EnableLlrScan ==
 
== EnableLlrScan ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== DisableLlrScan ==
 
== DisableLlrScan ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== EnableRadio ==
 
== EnableRadio ==
 
Takes an input bool, no output.
 
Takes an input bool, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== SetVisibility ==
 
== SetVisibility ==
 
Takes two input bools, no output.
 
Takes two input bools, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== EnableTbfcScan ==
 
== EnableTbfcScan ==
 
Takes an input bool, no output.
 
Takes an input bool, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== RegisterHidReportEvent ==
 
== RegisterHidReportEvent ==
Line 383: Line 435:     
This gets the Event handle for a previously created Event.
 
This gets the Event handle for a previously created Event.
 +
 +
This is used by [[HID_services|hid]].
    
== GetHidReportEventInfo ==
 
== GetHidReportEventInfo ==
Line 392: Line 446:     
The [7.0.0+] GetHidReportEventInfo sdknso func loads data using the above sharedmem.
 
The [7.0.0+] GetHidReportEventInfo sdknso func loads data using the above sharedmem.
 +
 +
This is used by [[HID_services|hid]].
    
== GetLatestPlr ==
 
== GetLatestPlr ==
Line 398: Line 454:  
== GetPendingConnections ==
 
== GetPendingConnections ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== GetChannelMap ==
 
== GetChannelMap ==
Line 418: Line 476:  
== InitializeBle ==
 
== InitializeBle ==
 
No input, returns an output Event handle with EventClearMode=1.
 
No input, returns an output Event handle with EventClearMode=1.
 +
 +
This is used by [[BTM_services|btm]].
    
== EnableBle ==
 
== EnableBle ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== DisableBle ==
 
== DisableBle ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== FinalizeBle ==
 
== FinalizeBle ==
Line 436: Line 500:  
== SetBleConnectionParameter ==
 
== SetBleConnectionParameter ==
 
Takes an input [[#Address]], a bool, a [[#BleConnectionParameter]], no output.
 
Takes an input [[#Address]], a bool, a [[#BleConnectionParameter]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== SetLeDefaultConnectionParameter ==
 
== SetLeDefaultConnectionParameter ==
Line 442: Line 508:  
== SetBleDefaultConnectionParameter ==
 
== SetBleDefaultConnectionParameter ==
 
Takes a [[#BleConnectionParameter]], no output.
 
Takes a [[#BleConnectionParameter]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== SetBleAdvertiseData ==
 
== SetBleAdvertiseData ==
Line 451: Line 519:  
== StartBleScan ==
 
== StartBleScan ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== StopBleScan ==
 
== StopBleScan ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== AddBleScanFilterCondition ==
 
== AddBleScanFilterCondition ==
 
Takes a type-0x19 input buffer containing a [[#BleAdvertiseFilter]], no output.
 
Takes a type-0x19 input buffer containing a [[#BleAdvertiseFilter]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== DeleteBleScanFilterCondition ==
 
== DeleteBleScanFilterCondition ==
 
Takes a type-0x19 input buffer containing a [[#BleAdvertiseFilter]], no output.
 
Takes a type-0x19 input buffer containing a [[#BleAdvertiseFilter]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== DeleteBleScanFilter ==
 
== DeleteBleScanFilter ==
Line 468: Line 544:  
== ClearBleScanFilters ==
 
== ClearBleScanFilters ==
 
No input/output.
 
No input/output.
 +
 +
This is used by [[BTM_services|btm]].
    
== EnableBleScanFilter ==
 
== EnableBleScanFilter ==
 
Takes an input bool, no output.
 
Takes an input bool, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== RegisterGattClient ==
 
== RegisterGattClient ==
 
Takes an input [[#GattAttributeUuid]], no output.
 
Takes an input [[#GattAttributeUuid]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== UnregisterGattClient ==
 
== UnregisterGattClient ==
Line 483: Line 565:  
== ConnectGattServer ==
 
== ConnectGattServer ==
 
Takes an input u8, an [[#Address]], a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 
Takes an input u8, an [[#Address]], a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== CancelConnectGattServer ==
 
== CancelConnectGattServer ==
 
Takes an input u8, an [[#Address]], a bool, no output.
 
Takes an input u8, an [[#Address]], a bool, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== DisconnectGattServer ==
 
== DisconnectGattServer ==
 
Takes an input u32, no output.
 
Takes an input u32, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== GetGattAttribute ==
 
== GetGattAttribute ==
Line 500: Line 588:  
== ConfigureAttMtu ==
 
== ConfigureAttMtu ==
 
Takes an input u16 and u32, no output.
 
Takes an input u16 and u32, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== RegisterGattServer ==
 
== RegisterGattServer ==
Line 534: Line 624:     
This copies 0x400-bytes from state to the output buffer, and copies the [[#BleEventType]] from state to output.
 
This copies 0x400-bytes from state to the output buffer, and copies the [[#BleEventType]] from state to output.
 +
 +
This is used by [[BTM_services|btm]].
    
== GetGattFirstCharacteristic ==
 
== GetGattFirstCharacteristic ==
Line 549: Line 641:  
== RegisterGattManagedDataPath ==
 
== RegisterGattManagedDataPath ==
 
Takes an input [[#GattAttributeUuid]], no output.
 
Takes an input [[#GattAttributeUuid]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== UnregisterGattManagedDataPath ==
 
== UnregisterGattManagedDataPath ==
Line 555: Line 649:  
== RegisterGattHidDataPath ==
 
== RegisterGattHidDataPath ==
 
Takes an input [[#GattAttributeUuid]], no output.
 
Takes an input [[#GattAttributeUuid]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== UnregisterGattHidDataPath ==
 
== UnregisterGattHidDataPath ==
 
Takes an input [[#GattAttributeUuid]], no output.
 
Takes an input [[#GattAttributeUuid]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== RegisterGattDataPath ==
 
== RegisterGattDataPath ==
 
Takes an input [[#GattAttributeUuid]], no output.
 
Takes an input [[#GattAttributeUuid]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== UnregisterGattDataPath ==
 
== UnregisterGattDataPath ==
 
Takes an input [[#GattAttributeUuid]], no output.
 
Takes an input [[#GattAttributeUuid]], no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== ReadGattCharacteristic ==
 
== ReadGattCharacteristic ==
 
Takes an input bool, an u8, an u32, a [[#GattId]], a [[#GattId]], no output.
 
Takes an input bool, an u8, an u32, a [[#GattId]], a [[#GattId]], no output.
 +
 +
This is used by [[HID_services|hid]] and [[BTM_services|btm]].
    
== ReadGattDescriptor ==
 
== ReadGattDescriptor ==
 
Takes an input bool, an u8, an u32, a [[#GattId]], a [[#GattId]], a [[#GattId]], no output.
 
Takes an input bool, an u8, an u32, a [[#GattId]], a [[#GattId]], a [[#GattId]], no output.
 +
 +
This is used by [[HID_services|hid]].
    
== WriteGattCharacteristic ==
 
== WriteGattCharacteristic ==
Line 575: Line 681:     
The buffer size must be <=0x258.
 
The buffer size must be <=0x258.
 +
 +
This is used by [[HID_services|hid]] and [[BTM_services|btm]].
    
== WriteGattDescriptor ==
 
== WriteGattDescriptor ==
Line 580: Line 688:     
The buffer size must be <=0x258.
 
The buffer size must be <=0x258.
 +
 +
This is used by [[HID_services|hid]] and [[BTM_services|btm]].
    
== RegisterGattNotification ==
 
== RegisterGattNotification ==
 
Takes an input bool, an u32, a [[#GattId]], a [[#GattId]], no output.
 
Takes an input bool, an u32, a [[#GattId]], a [[#GattId]], no output.
 +
 +
This is used by [[HID_services|hid]] and [[BTM_services|btm]].
    
== UnregisterGattNotification ==
 
== UnregisterGattNotification ==
 
Takes an input bool, an u32, a [[#GattId]], a [[#GattId]], no output.
 
Takes an input bool, an u32, a [[#GattId]], a [[#GattId]], no output.
 +
 +
This is used by [[HID_services|hid]].
    
== GetLeHidEventInfo ==
 
== GetLeHidEventInfo ==
Line 591: Line 705:     
This copies 0x400-bytes from state to the output buffer, and copies the [[#BleEventType]] from state to output. This also resets the state which was used for the outbuf-copy. Once finished, this signals an event.
 
This copies 0x400-bytes from state to the output buffer, and copies the [[#BleEventType]] from state to output. This also resets the state which was used for the outbuf-copy. Once finished, this signals an event.
 +
 +
This is used by [[HID_services|hid]].
    
== RegisterBleHidEvent ==
 
== RegisterBleHidEvent ==
 
No input, returns an output Event handle with EventClearMode=1.
 
No input, returns an output Event handle with EventClearMode=1.
 +
 +
This is used by [[HID_services|hid]].
    
== SetBleScanParameter ==
 
== SetBleScanParameter ==
 
Takes two input u16s, no output.
 
Takes two input u16s, no output.
 +
 +
This is used by [[BTM_services|btm]].
    
== MoveToSecondaryPiconet ==
 
== MoveToSecondaryPiconet ==
Line 603: Line 723:  
== IsManufacturingMode ==
 
== IsManufacturingMode ==
 
No input, returns an output bool.
 
No input, returns an output bool.
 +
 +
This is used by [[BTM_services|btm]].
    
== EmulateBluetoothCrash ==
 
== EmulateBluetoothCrash ==