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

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

gd: Add acl manager dumpsys data

Toward loggable code

Bug: 163134718
Tag: #refactor
Test: CtsVerifier

Change-Id: I4f47237754a9d16d1653f24a9d223b2a42f97543
parent 6ba7c206
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -480,6 +480,7 @@ genrule {
    srcs: [
        "common/init_flags.fbs",
        "dumpsys_data.fbs",
        "hci/hci_acl_manager.fbs",
        "l2cap/classic/l2cap_classic_module.fbs",
        "shim/dumpsys.fbs",
    ],
@@ -487,6 +488,7 @@ genrule {
        "init_flags.bfbs",
        "dumpsys.bfbs",
        "dumpsys_data.bfbs",
        "hci_acl_manager.bfbs",
        "l2cap_classic_module.bfbs",
    ],
}
@@ -500,12 +502,14 @@ genrule {
    srcs: [
        "common/init_flags.fbs",
        "dumpsys_data.fbs",
        "hci/hci_acl_manager.fbs",
        "l2cap/classic/l2cap_classic_module.fbs",
        "shim/dumpsys.fbs",
    ],
    out: [
        "dumpsys_data_generated.h",
        "dumpsys_generated.h",
        "hci_acl_manager_generated.h",
        "init_flags_generated.h",
        "l2cap_classic_module_generated.h",
    ],
+2 −0
Original line number Diff line number Diff line
// Top level module dumpsys data schema
include "common/init_flags.fbs";
include "l2cap/classic/l2cap_classic_module.fbs";
include "hci/hci_acl_manager.fbs";
include "module_unittest.fbs";
include "shim/dumpsys.fbs";

@@ -13,6 +14,7 @@ table DumpsysData {
    init_flags:common.InitFlagsData (privacy:"Any");
    shim_dumpsys_data:bluetooth.shim.DumpsysModuleData (privacy:"Any");
    l2cap_classic_dumpsys_data:bluetooth.l2cap.classic.L2capClassicModuleData (privacy:"Any");
    hci_acl_manager_dumpsys_data:bluetooth.hci.AclManagerData (privacy:"Any");
    module_unittest_data:bluetooth.ModuleUnitTestData; // private
}

+27 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include "hci/acl_manager/round_robin_scheduler.h"
#include "hci/controller.h"
#include "hci/hci_layer.h"
#include "hci_acl_manager_generated.h"
#include "security/security_module.h"

namespace bluetooth {
@@ -102,6 +103,9 @@ struct AclManager::impl {
    }
  }

  void Dump(
      std::promise<flatbuffers::Offset<AclManagerData>> promise, flatbuffers::FlatBufferBuilder* fb_builder) const;

  const AclManager& acl_manager_;

  classic_impl* classic_impl_ = nullptr;
@@ -260,5 +264,28 @@ const ModuleFactory AclManager::Factory = ModuleFactory([]() { return new AclMan

AclManager::~AclManager() = default;

void AclManager::impl::Dump(
    std::promise<flatbuffers::Offset<AclManagerData>> promise, flatbuffers::FlatBufferBuilder* fb_builder) const {
  auto title = fb_builder->CreateString("----- Acl Manager Dumpsys -----");
  AclManagerDataBuilder builder(*fb_builder);
  builder.add_title(title);
  flatbuffers::Offset<AclManagerData> dumpsys_data = builder.Finish();
  promise.set_value(dumpsys_data);
}

DumpsysDataFinisher AclManager::GetDumpsysData(flatbuffers::FlatBufferBuilder* fb_builder) const {
  ASSERT(fb_builder != nullptr);

  std::promise<flatbuffers::Offset<AclManagerData>> promise;
  auto future = promise.get_future();
  pimpl_->Dump(std::move(promise), fb_builder);

  auto dumpsys_data = future.get();

  return [dumpsys_data](DumpsysDataBuilder* dumpsys_builder) {
    dumpsys_builder->add_hci_acl_manager_dumpsys_data(dumpsys_data);
  };
}

}  // namespace hci
}  // namespace bluetooth
+2 −0
Original line number Diff line number Diff line
@@ -116,6 +116,8 @@ class AclManager : public Module {

  std::string ToString() const override;

  DumpsysDataFinisher GetDumpsysData(flatbuffers::FlatBufferBuilder* builder) const override;  // Module

 private:
  virtual uint16_t HACK_GetHandle(const Address address);
  virtual uint16_t HACK_GetLeHandle(const Address address);
+9 −0
Original line number Diff line number Diff line
namespace bluetooth.hci;

attribute "privacy";

table AclManagerData {
    title:string (privacy:"Any");
}

root_type AclManagerData;