Add vndservicemanager.

vndservicemanager is the context manager for
binder services that are exclusively used from
the vendor binder domain, "/dev/vndbinder";
these services can only be registered and accessed
by vendor processes.

To facilitate code re-use, vndservicemanager
is just framework servicemanager accessing the
vendor binder devnode.

Bug: 36052864
Test: modified binder_test to use /dev/vndbinder

Change-Id: Iac19a1180321a5be78d7be5ceb4ba211c593dc47
diff --git a/cmds/servicemanager/binder.c b/cmds/servicemanager/binder.c
index 753aeb5..93a18fc 100644
--- a/cmds/servicemanager/binder.c
+++ b/cmds/servicemanager/binder.c
@@ -94,7 +94,7 @@
     size_t mapsize;
 };
 
-struct binder_state *binder_open(size_t mapsize)
+struct binder_state *binder_open(const char* driver, size_t mapsize)
 {
     struct binder_state *bs;
     struct binder_version vers;
@@ -105,10 +105,10 @@
         return NULL;
     }
 
-    bs->fd = open("/dev/binder", O_RDWR | O_CLOEXEC);
+    bs->fd = open(driver, O_RDWR | O_CLOEXEC);
     if (bs->fd < 0) {
-        fprintf(stderr,"binder: cannot open device (%s)\n",
-                strerror(errno));
+        fprintf(stderr,"binder: cannot open %s (%s)\n",
+                driver, strerror(errno));
         goto fail_open;
     }