From e8606c85c5c4068d445c283f1d48955c9aa81470 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Mon, 10 Aug 2015 19:27:18 -0700 Subject: [PATCH] Remove watchprops. Since watchprops would have to be rewritten anyway in the upcoming properties rewrite, there seems little point in rewriting it for toybox first. Let's see how many people actually use watchprops and decide whether it's worth the effort... Change-Id: I996e7209bc81633ee66602f09f130226336d9987 --- toolbox/Android.mk | 1 - toolbox/watchprops.c | 92 -------------------------------------------- 2 files changed, 93 deletions(-) delete mode 100644 toolbox/watchprops.c diff --git a/toolbox/Android.mk b/toolbox/Android.mk index aa92af7e7..ae880c394 100644 --- a/toolbox/Android.mk +++ b/toolbox/Android.mk @@ -56,7 +56,6 @@ OUR_TOOLS := \ stop \ top \ uptime \ - watchprops \ ALL_TOOLS = $(BSD_TOOLS) $(OUR_TOOLS) diff --git a/toolbox/watchprops.c b/toolbox/watchprops.c deleted file mode 100644 index cd62922cf..000000000 --- a/toolbox/watchprops.c +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include -#include -#include -#include - -#include -#include - -#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ -#include - -static int str_hash(void *key) -{ - return hashmapHash(key, strlen(key)); -} - -static bool str_equals(void *keyA, void *keyB) -{ - return strcmp(keyA, keyB) == 0; -} - -static void announce(char *name, char *value) -{ - unsigned char *x; - - for(x = (unsigned char *)value; *x; x++) { - if((*x < 32) || (*x > 127)) *x = '.'; - } - - fprintf(stderr,"%10d %s = '%s'\n", (int) time(0), name, value); -} - -static void add_to_watchlist(Hashmap *watchlist, const char *name, - const prop_info *pi) -{ - char *key = strdup(name); - unsigned *value = malloc(sizeof(unsigned)); - if (!key || !value) - exit(1); - - *value = __system_property_serial(pi); - hashmapPut(watchlist, key, value); -} - -static void populate_watchlist(const prop_info *pi, void *cookie) -{ - Hashmap *watchlist = cookie; - char name[PROP_NAME_MAX]; - char value_unused[PROP_VALUE_MAX]; - - __system_property_read(pi, name, value_unused); - add_to_watchlist(watchlist, name, pi); -} - -static void update_watchlist(const prop_info *pi, void *cookie) -{ - Hashmap *watchlist = cookie; - char name[PROP_NAME_MAX]; - char value[PROP_VALUE_MAX]; - unsigned *serial; - - __system_property_read(pi, name, value); - serial = hashmapGet(watchlist, name); - if (!serial) { - add_to_watchlist(watchlist, name, pi); - announce(name, value); - } else { - unsigned tmp = __system_property_serial(pi); - if (*serial != tmp) { - *serial = tmp; - announce(name, value); - } - } -} - -int watchprops_main(int argc, char *argv[]) -{ - unsigned serial; - - Hashmap *watchlist = hashmapCreate(1024, str_hash, str_equals); - if (!watchlist) - exit(1); - - __system_property_foreach(populate_watchlist, watchlist); - - for(serial = 0;;) { - serial = __system_property_wait_any(serial); - __system_property_foreach(update_watchlist, watchlist); - } - return 0; -}