OSDN Git Service

Add gd acl init flag
authorChris Manton <cmanton@google.com>
Wed, 19 Aug 2020 20:36:54 +0000 (13:36 -0700)
committerChris Manton <cmanton@google.com>
Mon, 31 Aug 2020 06:02:18 +0000 (06:02 +0000)
Tag: #gd-refactor
Bug: 159815595
Test: cert/run --host
Change-Id: If8344697c48a4a68eeb7606905c1d3b14e3da43a

gd/common/init_flags.cc
gd/common/init_flags.fbs
gd/common/init_flags.h
gd/dumpsys/init_flags.cc
main/shim/shim.cc
main/shim/shim.h
main/shim/stack.cc

index 7383891..ef356ec 100644 (file)
@@ -25,6 +25,9 @@
 namespace bluetooth {
 namespace common {
 
+const std::string kGdAclFlag = "INIT_gd_acl";
+bool InitFlags::gd_acl_enabled = false;
+
 const std::string kGdHciFlag = "INIT_gd_hci";
 bool InitFlags::gd_hci_enabled = false;
 
@@ -42,6 +45,8 @@ void InitFlags::Load(const char** flags) {
   while (flags != nullptr && *flags != nullptr) {
     if (kGdCoreFlag == *flags) {
       gd_core_enabled = true;
+    } else if (kGdAclFlag == *flags) {
+      gd_acl_enabled = true;
     } else if (kGdHciFlag == *flags) {
       gd_hci_enabled = true;
     } else if (kGdControllerFlag == *flags) {
@@ -52,7 +57,10 @@ void InitFlags::Load(const char** flags) {
     flags++;
   }
 
-  if (gd_core_enabled && !gd_controller_enabled) {
+  if (gd_core_enabled && !gd_acl_enabled) {
+    gd_acl_enabled = true;
+  }
+  if (gd_acl_enabled && !gd_controller_enabled) {
     gd_controller_enabled = true;
   }
   if (gd_controller_enabled && !gd_hci_enabled) {
@@ -60,7 +68,8 @@ void InitFlags::Load(const char** flags) {
   }
 
   LOG_INFO(
-      "Flags loaded: gd_hci_enabled: %s, gd_controller_enabled: %s, gd_core_enabled: %s",
+      "Flags loaded: gd_acl_enabled: %s, gd_hci_enabled: %s, gd_controller_enabled: %s, gd_core_enabled: %s",
+      gd_acl_enabled ? "true" : "false",
       gd_hci_enabled ? "true" : "false",
       gd_controller_enabled ? "true" : "false",
       gd_core_enabled ? "true" : "false");
@@ -68,6 +77,7 @@ void InitFlags::Load(const char** flags) {
 
 void InitFlags::SetAll(bool value) {
   gd_core_enabled = value;
+  gd_acl_enabled = value;
   gd_controller_enabled = value;
   gd_hci_enabled = value;
   gatt_robust_caching_enabled = value;
index 48ec646..8e9ac50 100644 (file)
@@ -4,6 +4,7 @@ attribute "privacy";
 
 table InitFlagsData {
     title:string;
+    gd_acl_enabled:bool;
     gd_hci_enabled:bool;
     gd_controller_enabled:bool;
     gd_core_enabled:bool;
index ef2ef47..15fb9e2 100644 (file)
@@ -23,6 +23,10 @@ class InitFlags final {
  public:
   static void Load(const char** flags);
 
+  static bool GdAclEnabled() {
+    return gd_acl_enabled;
+  }
+
   static bool GdHciEnabled() {
     return gd_hci_enabled;
   }
@@ -43,6 +47,7 @@ class InitFlags final {
 
  private:
   static void SetAll(bool value);
+  static bool gd_acl_enabled;
   static bool gd_hci_enabled;
   static bool gd_controller_enabled;
   static bool gd_core_enabled;
index 4ec9b3a..14d95af 100644 (file)
@@ -23,6 +23,7 @@ flatbuffers::Offset<bluetooth::common::InitFlagsData> bluetooth::dumpsys::InitFl
   auto title = fb_builder->CreateString("----- Init Flags -----");
   common::InitFlagsDataBuilder builder(*fb_builder);
   builder.add_title(title);
+  builder.add_gd_acl_enabled(bluetooth::common::InitFlags::GdAclEnabled());
   builder.add_gd_hci_enabled(bluetooth::common::InitFlags::GdHciEnabled());
   builder.add_gd_controller_enabled(bluetooth::common::InitFlags::GdControllerEnabled());
   builder.add_gd_core_enabled(bluetooth::common::InitFlags::GdCoreEnabled());
index 2e01c00..54cae1f 100644 (file)
@@ -54,6 +54,10 @@ EXPORT_SYMBOL extern const module_t gd_shim_module = {
     .clean_up = kUnusedModuleApi,
     .dependencies = {kUnusedModuleDependencies}};
 
+bool bluetooth::shim::is_gd_acl_enabled() {
+  return bluetooth::common::InitFlags::GdAclEnabled();
+}
+
 bool bluetooth::shim::is_gd_hci_enabled() {
   return bluetooth::common::InitFlags::GdHciEnabled();
 }
index a5a30d8..3218baf 100644 (file)
@@ -45,6 +45,7 @@ namespace shim {
  *
  * @return true if using gd shim core, false if using legacy.
  */
+bool is_gd_acl_enabled();
 bool is_gd_hci_enabled();
 bool is_gd_controller_enabled();
 bool is_gd_shim_enabled();
index ad9fe60..9d5e362 100644 (file)
@@ -76,9 +76,11 @@ void Stack::StartEverything() {
   if (common::InitFlags::GdControllerEnabled()) {
     modules.add<hci::Controller>();
   }
+  if (common::InitFlags::GdAclEnabled()) {
+    modules.add<hci::AclManager>();
+  }
   if (common::InitFlags::GdCoreEnabled()) {
     modules.add<att::AttModule>();
-    modules.add<hci::AclManager>();
     modules.add<hci::LeAdvertisingManager>();
     modules.add<hci::LeScanningManager>();
     modules.add<l2cap::classic::L2capClassicModule>();