Line 40: |
Line 40: |
| | 12 || [[#IncreaseDeviceInfoOrder]] | | | 12 || [[#IncreaseDeviceInfoOrder]] |
| |- | | |- |
− | | 13 || [[#LlrNotify]] | + | | 13 || [9.0.0+] TriggerConnection ([1.0.0-8.1.1] [[#LlrNotify]]) |
| |- | | |- |
| | 14 || [[#EnableRadio]] | | | 14 || [[#EnableRadio]] |
Line 52: |
Line 52: |
| | 18 || [2.0.0+] [[#AcquireAwakeReqEvent]] | | | 18 || [2.0.0+] [[#AcquireAwakeReqEvent]] |
| |- | | |- |
− | | 19 || [4.0.0+] [[#AcquireLlrStateEvent]] | + | | 19 || [9.0.0+] AcquireConnectionTriggerEvent ([4.0.0-8.1.1] [[#AcquireLlrStateEvent]]) |
| |- | | |- |
− | | 20 || [4.0.0+] [[#IsLlrStarted]] | + | | 20 || [9.0.0+] IsConnectionTriggered ([4.0.0-8.1.1] [[#IsLlrStarted]]) |
| |- | | |- |
| | 21 || [4.0.0+] [[#EnableSlotSaving]] | | | 21 || [4.0.0+] [[#EnableSlotSaving]] |
Line 134: |
Line 134: |
| | 59 ([5.0.0-5.0.2] 42) || [5.0.0+] [[#SetAppletResourceUserId]] | | | 59 ([5.0.0-5.0.2] 42) || [5.0.0+] [[#SetAppletResourceUserId]] |
| |- | | |- |
− | | 60 || [8.0.0+] | + | | 60 || [8.0.0+] [[#AcquireBleConnectionParameterUpdateEvent]] |
| |- | | |- |
− | | 61 || [8.0.0+] | + | | 61 || [8.0.0+] [[#SetCeLength]] |
| |- | | |- |
− | | 62 || [9.0.0+] | + | | 62 || [9.0.0+] [[#EnsureSlotExpansion]] |
| |- | | |- |
− | | 63 || [9.0.0+] | + | | 63 || [9.0.0+] [[#IsSlotExpansionEnsured]] |
| |- | | |- |
− | | 64 || [10.0.0+] | + | | 64 || [10.0.0+] [[#CancelConnectionTrigger]] |
| |- | | |- |
− | | 65 || [13.0.0+] | + | | 65 || [13.0.0+] GetConnectionCapacity |
| |- | | |- |
− | | 66 || [13.0.0+] | + | | 66 || [13.0.0+] GetWlanMode |
| |- | | |- |
− | | 67 || [13.0.0+] | + | | 67 || [13.0.0+] IsSlotSavingEnabled |
| |- | | |- |
− | | 68 || [13.0.0+] | + | | 68 || [13.0.0+] IsSlotSavingForPairingEnabled |
| |- | | |- |
| | 69 || [13.0.0+] AcquireAudioDeviceConnectionEvent | | | 69 || [13.0.0+] AcquireAudioDeviceConnectionEvent |
Line 156: |
Line 156: |
| | 70 || [13.0.0+] GetConnectedAudioDevices | | | 70 || [13.0.0+] GetConnectedAudioDevices |
| |- | | |- |
− | | 71 || [13.0.0+] | + | | 71 || [13.0.0+] SetAudioSourceVolume |
| |- | | |- |
− | | 72 || [13.0.0+] | + | | 72 || [13.0.0+] GetAudioSourceVolume |
| |- | | |- |
| | 73 || [13.0.0+] RequestAudioDeviceConnectionRejection | | | 73 || [13.0.0+] RequestAudioDeviceConnectionRejection |
Line 166: |
Line 166: |
| | 75 || [13.0.0+] GetPairedAudioDevices | | | 75 || [13.0.0+] GetPairedAudioDevices |
| |- | | |- |
− | | 76 || [13.1.0+] | + | | 76 || [13.1.0+] SetWlanModeWithOption |
| |- | | |- |
− | | 100 || [13.0.0+] | + | | 100 || [13.0.0+] AcquireConnectionDisallowedEvent |
| |- | | |- |
− | | 101 || [13.0.0+] | + | | 101 || [13.0.0+] GetUsecaseViolationFactor |
| |- | | |- |
| | 110 || [13.0.0+] GetShortenedDeviceInfo | | | 110 || [13.0.0+] GetShortenedDeviceInfo |
| |- | | |- |
− | | 111 || [13.0.0+] | + | | 111 || [13.0.0+] AcquirePairingCountUpdateEvent |
| |- | | |- |
| | 112 || [14.0.0-14.1.2] | | | 112 || [14.0.0-14.1.2] |
Line 180: |
Line 180: |
| | 113 || [14.0.0-14.1.2] | | | 113 || [14.0.0-14.1.2] |
| |- | | |- |
− | | 114 || [14.0.0+] | + | | 114 || [14.0.0+] IsFirstAudioControlConnection |
| |- | | |- |
| | 115 || [14.0.0+] GetShortenedDeviceCondition | | | 115 || [14.0.0+] GetShortenedDeviceCondition |
| |- | | |- |
− | | 116 || [15.0.0+] | + | | 116 || [15.0.0+] SetAudioSinkVolume |
| |- | | |- |
− | | 117 || [15.0.0+] | + | | 117 || [15.0.0+] GetAudioSinkVolume |
| |} | | |} |
| | | |
Line 479: |
Line 479: |
| Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | | Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. |
| | | |
− | == Cmd60 == | + | == AcquireBleConnectionParameterUpdateEvent == |
| No input. Returns an output Event handle with EventClearMode=1. | | No input. Returns an output Event handle with EventClearMode=1. |
| | | |
− | == Cmd61 == | + | == SetCeLength == |
− | Takes a 0x44-byte input struct. No output. | + | Takes an input [[#DeviceCeLengthList|DeviceCeLengthList]]. No output. |
| | | |
| Sends a request which is then handled as follows: | | Sends a request which is then handled as follows: |
| * Calls a func for getting the data from the input struct etc for passing to another func, that func is the same one called by [[#SetSlotMode]]. | | * Calls a func for getting the data from the input struct etc for passing to another func, that func is the same one called by [[#SetSlotMode]]. |
| | | |
− | The input struct has the following structure:
| + | == EnsureSlotExpansion == |
− | | |
− | {| class="wikitable" border="1"
| |
− | |-
| |
− | ! Offset
| |
− | ! Size
| |
− | ! Description
| |
− | |-
| |
− | | 0x0 || 0x10 * 4 || Array of the below struct.
| |
− | |-
| |
− | | 0x40 || 0x4 || s32 count, for the array at +0.
| |
− | |}
| |
− | | |
− | Struct for the above array:
| |
− | | |
− | {| class="wikitable" border="1"
| |
− | |-
| |
− | ! Offset
| |
− | ! Size
| |
− | ! Description
| |
− | |-
| |
− | | 0x0 || 0x6 || [[#BdAddress|BdAddress]]
| |
− | |-
| |
− | | 0x6 || 0x6 || Unused
| |
− | |-
| |
− | | 0xC || 0x1 || Used to determine data which is then used for [[Bluetooth_Driver_services#BleConnectionParameter|BleConnectionParameter]].
| |
− | |-
| |
− | | 0xD || 0x3 || Padding
| |
− | |}
| |
− | | |
− | == Cmd62 ==
| |
| Takes an input bool. No output. | | Takes an input bool. No output. |
| | | |
| Sends a request which is handled as follows: writes the flag into state if needed. | | Sends a request which is handled as follows: writes the flag into state if needed. |
| | | |
− | == Cmd63 == | + | == IsSlotExpansionEnsured == |
| No input. Returns an output bool. | | No input. Returns an output bool. |
| | | |
− | This gets the flag used by [[#Cmd62]]. | + | This gets the flag used by [[#EnsureSlotExpansion]]. |
| | | |
− | == Cmd64 == | + | == CancelConnectionTrigger == |
| No input/output. | | No input/output. |
| | | |
Line 537: |
Line 507: |
| | | |
| This has max_sessions 6. IPC is handled by 2 threads shared with all services. | | This has max_sessions 6. IPC is handled by 2 threads shared with all services. |
− |
| |
− | [12.0.0+] Cmds input/output were changed / cmdids were moved around.
| |
− |
| |
− | [13.0.0+] Cmd4 now takes a type-0xA output buffer, returns a total of 4-bytes of output.
| |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 552: |
Line 518: |
| | 2 || [[#CancelDiscovery]] | | | 2 || [[#CancelDiscovery]] |
| |- | | |- |
− | | 3 || [[#GetDeviceProperty]] | + | | 3 || [12.0.0+] IsDiscoveryEnabled ([1.0.0-11.0.1] [[#GetDeviceProperty]]) |
| |- | | |- |
| | 4 || [[#CreateBond]] | | | 4 || [[#CreateBond]] |
Line 572: |
Line 538: |
| | 12 || [5.1.0+] [[#GetBleConnectionParameterRequest]] | | | 12 || [5.1.0+] [[#GetBleConnectionParameterRequest]] |
| |- | | |- |
− | | 13 || [12.0.0+] | + | | 13 || [12.0.0+] GetDiscoveredDevice |
| |- | | |- |
− | | 14 || [15.0.0+] | + | | 14 || [15.0.0+] SleepAwakeLoopTest |
| |- | | |- |
− | | 15 || [15.0.0+] | + | | 15 || [15.0.0+] SleepTest |
| |- | | |- |
− | | 16 || [15.0.0+] | + | | 16 || [15.0.0+] MinimumAwakeTest |
| |- | | |- |
− | | 17 || [15.0.0+] | + | | 17 || [15.0.0+] ForceEnableBtm |
| |} | | |} |
| | | |
Line 599: |
Line 565: |
| == CreateBond == | | == CreateBond == |
| Takes an input [[#BdAddress|BdAddress]]. No output. | | Takes an input [[#BdAddress|BdAddress]]. No output. |
| + | |
| + | [13.0.0+] Now takes a type-0xA output buffer, returns a total of 4-bytes of output. |
| | | |
| == CancelBond == | | == CancelBond == |
Line 1,344: |
Line 1,312: |
| |- | | |- |
| | 0x1 || 0x29 * 15 || Array of [[#DeviceProperty|DeviceProperty]] | | | 0x1 || 0x29 * 15 || Array of [[#DeviceProperty|DeviceProperty]] |
| + | |} |
| + | |
| + | = DeviceCeLength = |
| + | This is "nn::btm::DeviceCeLength". This is a 0x10-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x6 || [[#BdAddress|BdAddress]] |
| + | |- |
| + | | 0x6 || 0x6 || Reserved |
| + | |- |
| + | | 0xC || 0x1 || CeLength (used for [[Bluetooth_Driver_services#BleConnectionParameter|BleConnectionParameter]]) |
| + | |- |
| + | | 0xD || 0x3 || Reserved |
| + | |} |
| + | |
| + | = DeviceCeLengthList = |
| + | This is "nn::btm::DeviceCeLengthList". This is a 0x44-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 || 0x10 * 4 || Array of [[#DeviceCeLength|DeviceCeLength]] |
| + | |- |
| + | | 0x40 || 0x4 || DeviceCount |
| |} | | |} |
| | | |