summaryrefslogtreecommitdiff
path: root/include/env_callback.h
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2019-10-30 14:21:52 +0800
committerIru Cai <mytbk920423@gmail.com>2019-10-30 14:48:38 +0800
commitae51f41d14f548d494ac41e0d21137c5a4c3f59c (patch)
tree6ddb9d1aaa7bd5bad5bbf8497edc2e08ff208d79 /include/env_callback.h
downloaduext4-ae51f41d14f548d494ac41e0d21137c5a4c3f59c.tar.xz
import the U-Boot code and make it compile
Diffstat (limited to 'include/env_callback.h')
-rw-r--r--include/env_callback.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/include/env_callback.h b/include/env_callback.h
new file mode 100644
index 0000000..74da20e
--- /dev/null
+++ b/include/env_callback.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2012
+ * Joe Hershberger, National Instruments, joe.hershberger@ni.com
+ */
+
+#ifndef __ENV_CALLBACK_H__
+#define __ENV_CALLBACK_H__
+
+#include <env_flags.h>
+#include <linker_lists.h>
+#include <search.h>
+
+#define ENV_CALLBACK_VAR ".callbacks"
+
+/* Board configs can define additional static callback bindings */
+#ifndef CONFIG_ENV_CALLBACK_LIST_STATIC
+#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 "\\"
+#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_DOT_ESCAPE ENV_CALLBACK_VAR ":callbacks," \
+ ENV_DOT_ESCAPE ENV_FLAGS_VAR ":flags," \
+ "baudrate:baudrate," \
+ NET_CALLBACKS \
+ "loadaddr:loadaddr," \
+ SILENT_CALLBACK \
+ SPLASHIMAGE_CALLBACK \
+ "stdin:console,stdout:console,stderr:console," \
+ "serial#:serialno," \
+ CONFIG_ENV_CALLBACK_LIST_STATIC
+
+void env_callback_init(struct env_entry *var_entry);
+
+#endif /* __ENV_CALLBACK_H__ */