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

Commit ff915834 authored by Chris Manton's avatar Chris Manton
Browse files

Add stack/acl/btm_acl::link_policy_text

Toward loggable code

Bug: 163134718
Tag: #refactor
Test: gd/cert/run --host

Change-Id: I48e01da55fdaaef9c3d56d49bc1feb13de618bd2
parent 7b3d0599
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
#include "main/shim/dumpsys.h"
#include "main/shim/entry.h"
#include "main/shim/helpers.h"
#include "stack/acl/acl.h"
#include "stack/btm/btm_int_types.h"
#include "stack/include/acl_hci_link_interface.h"
#include "stack/include/ble_acl_interface.h"
@@ -477,7 +478,10 @@ void DumpsysAcl(int fd) {
                BtTransportText(acl_conn.transport).c_str());
    LOG_DUMPSYS(fd, "    flush_timeout:0x%04x",
                acl_conn.flush_timeout_in_ticks);
    LOG_DUMPSYS(fd, "    [classic] link_policy:0x%x", acl_conn.link_policy);
    LOG_DUMPSYS(
        fd, "    [classic] link_policy:%s",
        link_policy_text(static_cast<tLINK_POLICY>(acl_conn.link_policy))
            .c_str());
    LOG_DUMPSYS(fd, "    link_super_tout:0x%04x", acl_conn.link_super_tout);
    LOG_DUMPSYS(fd, "    pkt_types_mask:0x%04x", acl_conn.pkt_types_mask);
    LOG_DUMPSYS(fd, "    disconnect_reason:0x%02x", acl_conn.disconnect_reason);
+27 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#pragma once

#include <cstdint>
#include <string>

#include "stack/include/acl_api_types.h"
#include "stack/include/bt_types.h"
@@ -42,6 +43,32 @@ enum btm_acl_swkey_state_t {
  BTM_ACL_SWKEY_STATE_IN_PROGRESS = 5,
};

/* Policy settings status */
typedef enum : uint16_t {
  HCI_DISABLE_ALL_LM_MODES = 0,
  HCI_ENABLE_CENTRAL_PERIPHERAL_SWITCH = (1u << 0),
  HCI_ENABLE_HOLD_MODE = (1u << 1),
  HCI_ENABLE_SNIFF_MODE = (1u << 2),
  HCI_ENABLE_PARK_MODE = (1u << 3),
} tLINK_POLICY;

static const char* link_policy_string[] = {
    " role_switch ",
    " hold_mode ",
    " sniff_mode ",
    " park_mode ",
};

inline std::string link_policy_text(tLINK_POLICY policy) {
  std::ostringstream os;
  os << "0x" << loghex(static_cast<uint16_t>(policy)) << " :";
  std::string s = os.str();
  for (uint16_t i = 0; i < 4; i++) {
    if (policy & (0x1 << i)) s += link_policy_string[i];
  }
  return s;
}

/* Structure returned with Role Switch information (in tBTM_CMPL_CB callback
 * function) in response to BTM_SwitchRoleToCentral call.
 */
+0 −9
Original line number Diff line number Diff line
@@ -106,15 +106,6 @@ typedef struct {
       ? true                                                       \
       : false)

/* Policy settings status */
typedef enum : uint16_t {
  HCI_DISABLE_ALL_LM_MODES = 0,
  HCI_ENABLE_CENTRAL_PERIPHERAL_SWITCH = (1u << 0),
  HCI_ENABLE_HOLD_MODE = (1u << 1),
  HCI_ENABLE_SNIFF_MODE = (1u << 2),
  HCI_ENABLE_PARK_MODE = (1u << 3),
} tLINK_POLICY;

extern tBTM_CB btm_cb;

static void btm_acl_chk_peer_pkt_type_support(tACL_CONN* p,