Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c0189e3 authored by Chris Manton's avatar Chris Manton
Browse files

Add API stacl/acl/acl to set default packet type bitmask

Bug: 182370398
Test: gd/cert/run
Tag: #refactor
BYPASS_LONG_LINES_REASON: Bluetooth likes 120 lines

Change-Id: Idc91e1dba6784d4989adcf10c4f94b468bd535c6
parent 98e242ff
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -375,6 +375,10 @@ struct controller_t;
/****************************************************
/****************************************************
 **      ACL Management API
 **      ACL Management API
 ****************************************************/
 ****************************************************/
constexpr uint16_t kDefaultPacketTypeMask =
    HCI_PKT_TYPES_MASK_DH1 | HCI_PKT_TYPES_MASK_DM1 | HCI_PKT_TYPES_MASK_DH3 |
    HCI_PKT_TYPES_MASK_DM3 | HCI_PKT_TYPES_MASK_DH5 | HCI_PKT_TYPES_MASK_DM5;

struct tACL_CB {
struct tACL_CB {
 private:
 private:
  friend uint8_t btm_handle_to_acl_index(uint16_t hci_handle);
  friend uint8_t btm_handle_to_acl_index(uint16_t hci_handle);
@@ -388,13 +392,15 @@ struct tACL_CB {


  tACL_CONN acl_db[MAX_L2CAP_LINKS];
  tACL_CONN acl_db[MAX_L2CAP_LINKS];
  tBTM_ROLE_SWITCH_CMPL switch_role_ref_data;
  tBTM_ROLE_SWITCH_CMPL switch_role_ref_data;
  uint16_t btm_acl_pkt_types_supported =
  uint16_t btm_acl_pkt_types_supported = kDefaultPacketTypeMask;
      HCI_PKT_TYPES_MASK_DH1 + HCI_PKT_TYPES_MASK_DM1 + HCI_PKT_TYPES_MASK_DH3 +
      HCI_PKT_TYPES_MASK_DM3 + HCI_PKT_TYPES_MASK_DH5 + HCI_PKT_TYPES_MASK_DM5;
  uint16_t btm_def_link_policy;
  uint16_t btm_def_link_policy;
  tHCI_STATUS acl_disc_reason = HCI_ERR_UNDEFINED;
  tHCI_STATUS acl_disc_reason = HCI_ERR_UNDEFINED;


 public:
 public:
  void SetDefaultPacketTypeMask(uint16_t packet_type_mask) {
    btm_acl_pkt_types_supported = packet_type_mask;
  }

  tHCI_STATUS get_disconnect_reason() const { return acl_disc_reason; }
  tHCI_STATUS get_disconnect_reason() const { return acl_disc_reason; }
  void set_disconnect_reason(tHCI_STATUS reason) { acl_disc_reason = reason; }
  void set_disconnect_reason(tHCI_STATUS reason) { acl_disc_reason = reason; }
  uint16_t DefaultPacketTypes() const { return btm_acl_pkt_types_supported; }
  uint16_t DefaultPacketTypes() const { return btm_acl_pkt_types_supported; }
+11 −0
Original line number Original line Diff line number Diff line
@@ -29,6 +29,8 @@
#include "stack/include/btm_client_interface.h"
#include "stack/include/btm_client_interface.h"
#include "types/raw_address.h"
#include "types/raw_address.h"


extern tBTM_CB btm_cb;

bluetooth::common::MessageLoopThread* get_main_thread() { return nullptr; }
bluetooth::common::MessageLoopThread* get_main_thread() { return nullptr; }


const hci_packet_factory_t* hci_packet_factory_get_interface() {
const hci_packet_factory_t* hci_packet_factory_get_interface() {
@@ -129,4 +131,13 @@ TEST_F(StackBtmTest, NoInformClientOnConnectionFail) {
  get_btm_client_interface().lifecycle.btm_free();
  get_btm_client_interface().lifecycle.btm_free();
}
}


TEST_F(StackBtmTest, default_packet_type) {
  get_btm_client_interface().lifecycle.btm_init();

  btm_cb.acl_cb_.SetDefaultPacketTypeMask(0x4321);
  ASSERT_EQ(0x4321, btm_cb.acl_cb_.DefaultPacketTypes());

  get_btm_client_interface().lifecycle.btm_free();
}

}  // namespace
}  // namespace