Remove interfaceChain from IServiceManager::add()

Bug: 32742469
Test: hidl_test, binderized marlin boots
Change-Id: I966d314652789fa67f4d33a0ebc21871ae83fff8
diff --git a/transport/ServiceManagement.cpp b/transport/ServiceManagement.cpp
index a1e570f..15abb92 100644
--- a/transport/ServiceManagement.cpp
+++ b/transport/ServiceManagement.cpp
@@ -186,8 +186,7 @@
         return nullptr;
     }
 
-    Return<bool> add(const hidl_vec<hidl_string>& /* interfaceChain */,
-                     const hidl_string& /* name */,
+    Return<bool> add(const hidl_string& /* name */,
                      const sp<IBase>& /* service */) override {
         LOG(FATAL) << "Cannot register services with passthrough service manager.";
         return false;
diff --git a/transport/manager/1.0/IServiceManager.hal b/transport/manager/1.0/IServiceManager.hal
index 2bbbe22..77cf253 100644
--- a/transport/manager/1.0/IServiceManager.hal
+++ b/transport/manager/1.0/IServiceManager.hal
@@ -52,23 +52,26 @@
     get(string fqName, string name) generates (interface service);
 
     /**
-     * Register a service. The service manager must be registered as all of the
-     * services that it inherits from.
+     * Register a service. The service manager must retrieve the (inherited)
+     * interfaces that this service implements, and register them along with
+     * the service.
+     *
+     * Each interface must have its own namespace for instance names. If you
+     * have two unrelated interfaces IFoo and IBar, it must be valid to call:
+     *
+     * add("my_instance", foo); // foo implements IFoo
+     * add("my_instance", bar); // bar implements IBar
      *
      * WARNING: This function is for libhidl/HwBinder use only. You are likely
      * looking for 'INTERFACE::registerAsService("name")' instead.
      *
-     * @param interfaceChain List of fully-qualified interface names. The first
-     *                       must be the actual interface name. Subsequent names must
-     *                       follow the inheritance hierarchy of the interface.
      * @param name           Instance name. Must also be used to retrieve service.
      * @param service        Handle to registering service.
      *
      * @return success       Whether or not the service was registered.
      *
      */
-    add(vec<string> interfaceChain, string name, interface service)
-        generates (bool success);
+    add(string name, interface service) generates (bool success);
 
     /**
      * List all registered services. Must be sorted.