X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fenv_callback.h;h=74da20eec3087143c239134dbac9e9524d1288cd;hb=d40aa43f3f25e407cb12236b6171a186491d2f11;hp=f90a7fa3b6463a8cd0b5ffa2c6f8002197567af3;hpb=8b485ba12b0defa0c4ed3559789250238f8331a8;p=oweals%2Fu-boot.git diff --git a/include/env_callback.h b/include/env_callback.h index f90a7fa3b6..74da20eec3 100644 --- a/include/env_callback.h +++ b/include/env_callback.h @@ -1,8 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ /* * (C) Copyright 2012 * Joe Hershberger, National Instruments, joe.hershberger@ni.com - * - * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __ENV_CALLBACK_H__ @@ -31,43 +30,48 @@ #define SPLASHIMAGE_CALLBACK #endif +#ifdef CONFIG_REGEX +#define ENV_DOT_ESCAPE "\\" +#else +#define ENV_DOT_ESCAPE +#endif + +#ifdef CONFIG_CMD_DNS +#define DNS_CALLBACK "dnsip:dnsip," +#else +#define DNS_CALLBACK +#endif + +#ifdef CONFIG_NET +#define NET_CALLBACKS \ + "bootfile:bootfile," \ + "ipaddr:ipaddr," \ + "gatewayip:gatewayip," \ + "netmask:netmask," \ + "serverip:serverip," \ + "nvlan:nvlan," \ + "vlan:vlan," \ + DNS_CALLBACK \ + "eth" ETHADDR_WILDCARD "addr:ethaddr," +#else +#define NET_CALLBACKS +#endif + /* * This list of callback bindings is static, but may be overridden by defining * a new association in the ".callbacks" environment variable. */ -#define ENV_CALLBACK_LIST_STATIC ENV_CALLBACK_VAR ":callbacks," \ - ENV_FLAGS_VAR ":flags," \ +#define ENV_CALLBACK_LIST_STATIC ENV_DOT_ESCAPE ENV_CALLBACK_VAR ":callbacks," \ + ENV_DOT_ESCAPE ENV_FLAGS_VAR ":flags," \ "baudrate:baudrate," \ - "bootfile:bootfile," \ + NET_CALLBACKS \ "loadaddr:loadaddr," \ SILENT_CALLBACK \ SPLASHIMAGE_CALLBACK \ "stdin:console,stdout:console,stderr:console," \ + "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 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 +void env_callback_init(struct env_entry *var_entry); #endif /* __ENV_CALLBACK_H__ */