diff options
Diffstat (limited to 'cmds/servicemanager/bctest.c')
-rw-r--r-- | cmds/servicemanager/bctest.c | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/cmds/servicemanager/bctest.c b/cmds/servicemanager/bctest.c deleted file mode 100644 index 6dee816..0000000 --- a/cmds/servicemanager/bctest.c +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright 2008 The Android Open Source Project - */ - -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> - -#include "binder.h" - -void *svcmgr_lookup(struct binder_state *bs, void *target, const char *name) -{ - void *ptr; - unsigned iodata[512/4]; - struct binder_io msg, reply; - - bio_init(&msg, iodata, sizeof(iodata), 4); - bio_put_string16_x(&msg, SVC_MGR_NAME); - bio_put_string16_x(&msg, name); - - if (binder_call(bs, &msg, &reply, target, SVC_MGR_CHECK_SERVICE)) - return 0; - - ptr = bio_get_ref(&reply); - - if (ptr) - binder_acquire(bs, ptr); - - binder_done(bs, &msg, &reply); - - return ptr; -} - -int svcmgr_publish(struct binder_state *bs, void *target, const char *name, void *ptr) -{ - unsigned status; - unsigned iodata[512/4]; - struct binder_io msg, reply; - - bio_init(&msg, iodata, sizeof(iodata), 4); - - bio_put_string16_x(&msg, SVC_MGR_NAME); - bio_put_string16_x(&msg, name); - bio_put_obj(&msg, ptr); - - if (binder_call(bs, &msg, &reply, target, SVC_MGR_ADD_SERVICE)) - return -1; - - status = bio_get_uint32(&reply); - - binder_done(bs, &msg, &reply); - - return status; -} - -unsigned token; - -int main(int argc, char **argv) -{ - int fd; - struct binder_state *bs; - void *svcmgr = BINDER_SERVICE_MANAGER; - - bs = binder_open(128*1024); - - argc--; - argv++; - while (argc > 0) { - if (!strcmp(argv[0],"alt")) { - void *ptr = svcmgr_lookup(bs, svcmgr, "alt_svc_mgr"); - if (!ptr) { - fprintf(stderr,"cannot find alt_svc_mgr\n"); - return -1; - } - svcmgr = ptr; - fprintf(stderr,"svcmgr is via %p\n", ptr); - } else if (!strcmp(argv[0],"lookup")) { - void *ptr; - if (argc < 2) { - fprintf(stderr,"argument required\n"); - return -1; - } - ptr = svcmgr_lookup(bs, svcmgr, argv[1]); - fprintf(stderr,"lookup(%s) = %p\n", argv[1], ptr); - argc--; - argv++; - } else if (!strcmp(argv[0],"publish")) { - if (argc < 2) { - fprintf(stderr,"argument required\n"); - return -1; - } - svcmgr_publish(bs, svcmgr, argv[1], &token); - argc--; - argv++; - } else { - fprintf(stderr,"unknown command %s\n", argv[0]); - return -1; - } - argc--; - argv++; - } - return 0; -} |