X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=include%2Fenv_callback.h;h=90b95b5e6676087f00d234721c98c7e475cf4268;hb=b255d0f66eccad23012f8c11171f7e143f0955d9;hp=bb398ec57458620e1cd006d30960d249241259cb;hpb=1cf0a8b2fbe38ed07b1babaaacfc22bd427f66f0;p=karo-tx-uboot.git diff --git a/include/env_callback.h b/include/env_callback.h index bb398ec574..90b95b5e66 100644 --- a/include/env_callback.h +++ b/include/env_callback.h @@ -2,28 +2,13 @@ * (C) Copyright 2012 * Joe Hershberger, National Instruments, joe.hershberger@ni.com * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __ENV_CALLBACK_H__ #define __ENV_CALLBACK_H__ +#include #include #include @@ -34,14 +19,59 @@ #define CONFIG_ENV_CALLBACK_LIST_STATIC #endif +#ifdef CONFIG_SILENT_CONSOLE +#define SILENT_CALLBACK "silent:silent," +#else +#define SILENT_CALLBACK +#endif + +#ifdef CONFIG_SPLASHIMAGE_GUARD +#define SPLASHIMAGE_CALLBACK "splashimage:splashimage," +#else +#define SPLASHIMAGE_CALLBACK +#endif + +#ifdef CONFIG_REGEX +#define ENV_DOT_ESCAPE "\\" +#define ETHADDR_WILDCARD "\\d?" +#else +#define ENV_DOT_ESCAPE +#define ETHADDR_WILDCARD +#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," \ +#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," \ CONFIG_ENV_CALLBACK_LIST_STATIC struct env_clbk_tbl { @@ -50,7 +80,6 @@ struct env_clbk_tbl { int flags); }; -struct env_clbk_tbl *find_env_callback(const char *); void env_callback_init(ENTRY *var_entry); /* @@ -58,8 +87,16 @@ void env_callback_init(ENTRY *var_entry); * 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) \ - ll_entry_declare(struct env_clbk_tbl, name, env_clbk, env_clbk) = \ + 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__ */