]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/search.h
usb: Clean up newly allocated device nodes in case of configuration failure
[karo-tx-uboot.git] / include / search.h
index fa00ea1b359313563c0bf98966f92044870c068f..13d3be6291701a3170dbd3a15e873b6cc7378c82 100644 (file)
@@ -47,6 +47,9 @@ typedef enum {
 typedef struct entry {
        const char *key;
        char *data;
+       int (*callback)(const char *name, const char *value, enum env_op op,
+               int flags);
+       int flags;
 } ENTRY;
 
 /* Opaque type for internal use.  */
@@ -107,7 +110,7 @@ extern int hdelete_r(const char *__key, struct hsearch_data *__htab,
                     int __flag);
 
 extern ssize_t hexport_r(struct hsearch_data *__htab,
-                    const char __sep, char **__resp, size_t __size,
+                    const char __sep, int __flag, char **__resp, size_t __size,
                     int argc, char * const argv[]);
 
 /*
@@ -120,9 +123,13 @@ extern int himport_r(struct hsearch_data *__htab,
                     const char *__env, size_t __size, const char __sep,
                     int __flag, int nvars, char * const vars[]);
 
-/* Flags for himport_r(), hdelete_r(), and hsearch_r() */
+/* 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 */
 #define H_INTERACTIVE  (1 << 2) /* indicate that an import is user directed */
+#define H_HIDE_DOT     (1 << 3) /* don't print env vars that begin with '.' */
 
 #endif /* search.h */