Blame view
include/env_callback.h
1.84 KB
170ab1107
|
1 2 3 4 |
/* * (C) Copyright 2012 * Joe Hershberger, National Instruments, joe.hershberger@ni.com * |
1a4596601
|
5 |
* SPDX-License-Identifier: GPL-2.0+ |
170ab1107
|
6 7 8 9 |
*/ #ifndef __ENV_CALLBACK_H__ #define __ENV_CALLBACK_H__ |
2598090b7
|
10 |
#include <env_flags.h> |
170ab1107
|
11 12 13 14 15 16 17 18 19 |
#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 |
e080d545f
|
20 21 22 23 24 |
#ifdef CONFIG_SILENT_CONSOLE #define SILENT_CALLBACK "silent:silent," #else #define SILENT_CALLBACK #endif |
c08804853
|
25 26 27 28 29 |
#ifdef CONFIG_SPLASHIMAGE_GUARD #define SPLASHIMAGE_CALLBACK "splashimage:splashimage," #else #define SPLASHIMAGE_CALLBACK #endif |
170ab1107
|
30 31 32 33 34 |
/* * 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," \ |
2598090b7
|
35 |
ENV_FLAGS_VAR ":flags," \ |
32057717e
|
36 |
"baudrate:baudrate," \ |
a9f51c9b4
|
37 |
"bootfile:bootfile," \ |
1cf0a8b2f
|
38 |
"loadaddr:loadaddr," \ |
e080d545f
|
39 |
SILENT_CALLBACK \ |
c08804853
|
40 |
SPLASHIMAGE_CALLBACK \ |
849d5d9cd
|
41 |
"stdin:console,stdout:console,stderr:console," \ |
170ab1107
|
42 43 44 45 46 47 48 |
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); }; |
170ab1107
|
49 50 51 52 53 54 55 |
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. */ |
f8cfcf1b1
|
56 57 |
#ifdef CONFIG_SPL_BUILD #define U_BOOT_ENV_CALLBACK(name, callback) \ |
3ea664c7c
|
58 |
static inline __maybe_unused void _u_boot_env_noop_##name(void) \ |
f8cfcf1b1
|
59 60 61 62 |
{ \ (void)callback; \ } #else |
170ab1107
|
63 |
#define U_BOOT_ENV_CALLBACK(name, callback) \ |
ef123c525
|
64 |
ll_entry_declare(struct env_clbk_tbl, name, env_clbk) = \ |
170ab1107
|
65 |
{#name, callback} |
f8cfcf1b1
|
66 |
#endif |
170ab1107
|
67 68 |
#endif /* __ENV_CALLBACK_H__ */ |