]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
env: Move callback definitions to env.h
authorSimon Glass <sjg@chromium.org>
Thu, 1 Aug 2019 15:47:05 +0000 (09:47 -0600)
committerTom Rini <trini@konsulko.com>
Sun, 11 Aug 2019 20:43:41 +0000 (16:43 -0400)
These definitions are effectively part of the 'public' API of the
environment implementation since they do not require access to any
internal variables. Move them to the env.h header.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
include/env.h
include/env_callback.h
include/search.h

index b59c3c36f20238ccd61f38cb1a3772c45e925b24..271cb3e88838cdafcbbde03c2ec73d776f766014 100644 (file)
@@ -21,6 +21,40 @@ enum env_valid {
        ENV_REDUND,     /* Redundant environment is valid */
 };
 
+/** enum env_op - environment callback operation */
+enum env_op {
+       env_op_create,
+       env_op_delete,
+       env_op_overwrite,
+};
+
+/** struct env_clbk_tbl - declares a new callback */
+struct env_clbk_tbl {
+       const char *name;               /* Callback name */
+       int (*callback)(const char *name, const char *value, enum env_op op,
+                       int flags);
+};
+
+/*
+ * Define a callback that can be associated with variables.
+ * when associated through the ".callbacks" environment variable, the callback
+ * will be executed any time the variable is inserted, overwritten, or deleted.
+ *
+ * For SPL these are silently dropped to reduce code size, since environment
+ * callbacks are not supported with SPL.
+ */
+#ifdef CONFIG_SPL_BUILD
+#define U_BOOT_ENV_CALLBACK(name, callback) \
+       static inline __maybe_unused void _u_boot_env_noop_##name(void) \
+       { \
+               (void)callback; \
+       }
+#else
+#define U_BOOT_ENV_CALLBACK(name, callback) \
+       ll_entry_declare(struct env_clbk_tbl, name, env_clbk) = \
+       {#name, callback}
+#endif
+
 /**
  * env_get_id() - Gets a sequence number for the environment
  *
index 507a52e13c9fbcd0b7b9f2d8dad045edf0241333..3d30a33f5bad6bb678a0016924cf8335d4e3af6d 100644 (file)
        "serial#:serialno," \
        CONFIG_ENV_CALLBACK_LIST_STATIC
 
-struct env_clbk_tbl {
-       const char *name;               /* Callback name */
-       int (*callback)(const char *name, const char *value, enum env_op op,
-               int flags);
-};
-
 void env_callback_init(ENTRY *var_entry);
 
-/*
- * Define a callback that can be associated with variables.
- * when associated through the ".callbacks" environment variable, the callback
- * will be executed any time the variable is inserted, overwritten, or deleted.
- */
-#ifdef CONFIG_SPL_BUILD
-#define U_BOOT_ENV_CALLBACK(name, callback) \
-       static inline __maybe_unused void _u_boot_env_noop_##name(void) \
-       { \
-               (void)callback; \
-       }
-#else
-#define U_BOOT_ENV_CALLBACK(name, callback) \
-       ll_entry_declare(struct env_clbk_tbl, name, env_clbk) = \
-       {#name, callback}
-#endif
-
 #endif /* __ENV_CALLBACK_H__ */
index 9750336b5e5856a2c1354f08c7f14c1ca21081f3..f9fb29fdf9984d6d48d92f652f87a68c46fa58be 100644 (file)
 
 #define __set_errno(val) do { errno = val; } while (0)
 
-enum env_op {
-       env_op_create,
-       env_op_delete,
-       env_op_overwrite,
-};
-
 /* Action which shall be performed in the call to hsearch.  */
 typedef enum {
        FIND,