use crate::cmd;
use crate::param::{
BdAddr, ConnHandle, ConnHandleCompletedPackets, ControllerToHostFlowControl, Duration, EventMask, EventMaskPage2,
PowerLevelKind, Status,
};
cmd! {
SetEventMask(CONTROL_BASEBAND, 0x0001) {
Params = EventMask;
Return = ();
}
}
cmd! {
Reset(CONTROL_BASEBAND, 0x0003) {
Params = ();
Return = ();
}
}
cmd! {
ReadTransmitPowerLevel(CONTROL_BASEBAND, 0x002d) {
ReadTransmitPowerLevelParams {
kind: PowerLevelKind,
}
ReadTransmitPowerLevelReturn {
tx_power_level: i8,
}
Handle = handle: ConnHandle;
}
}
cmd! {
SetControllerToHostFlowControl(CONTROL_BASEBAND, 0x0031) {
Params = ControllerToHostFlowControl;
Return = ();
}
}
cmd! {
HostBufferSize(CONTROL_BASEBAND, 0x0033) {
HostBufferSizeParams {
host_acl_data_packet_len: u16,
host_sync_data_packet_len: u8,
host_total_acl_data_packets: u16,
host_total_sync_data_packets: u16,
}
Return = ();
}
}
cmd! {
HostNumberOfCompletedPackets(CONTROL_BASEBAND, 0x0035) {
Params<'a> = &'a [ConnHandleCompletedPackets];
Return = ();
}
}
cmd! {
SetEventMaskPage2(CONTROL_BASEBAND, 0x0063) {
Params = EventMaskPage2;
Return = ();
}
}
cmd! {
ReadAuthenticatedPayloadTimeout(CONTROL_BASEBAND, 0x007b) {
Params = ConnHandle;
ReadAuthenticatedPayloadTimeoutReturn {
timeout: Duration<10_000>,
}
Handle = handle: ConnHandle;
}
}
cmd! {
WriteAuthenticatedPayloadTimeout(CONTROL_BASEBAND, 0x007c) {
WriteAuthenticatedPayloadTimeoutParams {
timeout: Duration<10_000>,
}
Return = ConnHandle;
Handle = handle: ConnHandle;
}
}
cmd! {
ReadStoredLinkKey(CONTROL_BASEBAND, 0x000d) {
ReadStoredLinkKeyParams {
bd_addr: BdAddr,
read_all: bool,
}
ReadStoredLinkKeyReturn {
status: Status,
max_num_keys: u8,
num_keys_read: u8,
}
}
}