summaryrefslogtreecommitdiff
path: root/include/search.h
diff options
context:
space:
mode:
authorJoe Hershberger <joe.hershberger@ni.com>2012-12-11 22:16:24 -0600
committerTom Rini <trini@ti.com>2012-12-13 11:46:55 -0700
commit170ab11075d3be56e89d6444abf1148329130f4b (patch)
treed3088ad532f4f4a0082f625ce50cfd120d6a6a1d /include/search.h
parentbe11235ab802844e12d84921a38fd8ae4ddda080 (diff)
downloadu-boot-170ab11075d3be56e89d6444abf1148329130f4b.tar.gz
env: Add support for callbacks to environment vars
Add support for per-variable callbacks to the "hashtable" functions. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> !!!fix comment in callback
Diffstat (limited to 'include/search.h')
-rw-r--r--include/search.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/search.h b/include/search.h
index 1e48deb1cf..d68e24a030 100644
--- a/include/search.h
+++ b/include/search.h
@@ -47,6 +47,8 @@ typedef enum {
typedef struct entry {
const char *key;
char *data;
+ int (*callback)(const char *name, const char *value, enum env_op op,
+ int flags);
} ENTRY;
/* Opaque type for internal use. */
@@ -120,6 +122,9 @@ extern int himport_r(struct hsearch_data *__htab,
const char *__env, size_t __size, const char __sep,
int __flag, int nvars, char * const vars[]);
+/* Walk the whole table calling the callback on each element */
+extern int hwalk_r(struct hsearch_data *__htab, int (*callback)(ENTRY *));
+
/* Flags for himport_r(), hexport_r(), hdelete_r(), and hsearch_r() */
#define H_NOCLEAR (1 << 0) /* do not clear hash table before importing */
#define H_FORCE (1 << 1) /* overwrite read-only/write-once variables */