Blame view
include/env_flags.h
4.54 KB
2598090b7 env: Add environm... |
1 2 3 4 |
/* * (C) Copyright 2012 * Joe Hershberger, National Instruments, joe.hershberger@ni.com * |
1a4596601 Add GPL-2.0+ SPDX... |
5 |
* SPDX-License-Identifier: GPL-2.0+ |
2598090b7 env: Add environm... |
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
*/ #ifndef __ENV_FLAGS_H__ #define __ENV_FLAGS_H__ enum env_flags_vartype { env_flags_vartype_string, env_flags_vartype_decimal, env_flags_vartype_hex, env_flags_vartype_bool, #ifdef CONFIG_CMD_NET env_flags_vartype_ipaddr, env_flags_vartype_macaddr, #endif env_flags_vartype_end }; |
267541f77 env: Add support ... |
22 23 24 25 26 27 28 |
enum env_flags_varaccess { env_flags_varaccess_any, env_flags_varaccess_readonly, env_flags_varaccess_writeonce, env_flags_varaccess_changedefault, env_flags_varaccess_end }; |
2598090b7 env: Add environm... |
29 30 31 |
#define ENV_FLAGS_VAR ".flags" #define ENV_FLAGS_ATTR_MAX_LEN 2 #define ENV_FLAGS_VARTYPE_LOC 0 |
267541f77 env: Add support ... |
32 |
#define ENV_FLAGS_VARACCESS_LOC 1 |
2598090b7 env: Add environm... |
33 34 35 36 |
#ifndef CONFIG_ENV_FLAGS_LIST_STATIC #define CONFIG_ENV_FLAGS_LIST_STATIC "" #endif |
1d6cd0a3f env: Handle write... |
37 |
#ifdef CONFIG_CMD_NET |
73c2bbeea net: Apply defaul... |
38 39 40 41 42 |
#ifdef CONFIG_REGEX #define ETHADDR_WILDCARD "\\d?" #else #define ETHADDR_WILDCARD #endif |
1d6cd0a3f env: Handle write... |
43 |
#ifdef CONFIG_ENV_OVERWRITE |
73c2bbeea net: Apply defaul... |
44 |
#define ETHADDR_FLAGS "eth" ETHADDR_WILDCARD "addr:ma," |
1d6cd0a3f env: Handle write... |
45 46 |
#else #ifdef CONFIG_OVERWRITE_ETHADDR_ONCE |
73c2bbeea net: Apply defaul... |
47 |
#define ETHADDR_FLAGS "eth" ETHADDR_WILDCARD "addr:mc," |
1d6cd0a3f env: Handle write... |
48 |
#else |
73c2bbeea net: Apply defaul... |
49 |
#define ETHADDR_FLAGS "eth" ETHADDR_WILDCARD "addr:mo," |
1d6cd0a3f env: Handle write... |
50 51 |
#endif #endif |
c0a93440a net: Add default ... |
52 53 54 55 56 |
#define NET_FLAGS \ "ipaddr:i," \ "gatewayip:i," \ "netmask:i," \ "serverip:i," \ |
0299cee53 net: fix vlan val... |
57 58 |
"nvlan:d," \ "vlan:d," \ |
c0a93440a net: Add default ... |
59 |
"dnsip:i," |
1d6cd0a3f env: Handle write... |
60 |
#else |
c0a93440a net: Add default ... |
61 62 |
#define ETHADDR_FLAGS #define NET_FLAGS |
1d6cd0a3f env: Handle write... |
63 64 65 66 67 68 69 |
#endif #ifndef CONFIG_ENV_OVERWRITE #define SERIAL_FLAGS "serial#:so," #else #define SERIAL_FLAGS "" #endif |
2598090b7 env: Add environm... |
70 |
#define ENV_FLAGS_LIST_STATIC \ |
1d6cd0a3f env: Handle write... |
71 |
ETHADDR_FLAGS \ |
c0a93440a net: Add default ... |
72 |
NET_FLAGS \ |
1d6cd0a3f env: Handle write... |
73 |
SERIAL_FLAGS \ |
2598090b7 env: Add environm... |
74 |
CONFIG_ENV_FLAGS_LIST_STATIC |
fffad71bc env: Add a comman... |
75 76 77 78 79 80 |
#ifdef CONFIG_CMD_ENV_FLAGS /* * Print the whole list of available type flags. */ void env_flags_print_vartypes(void); /* |
267541f77 env: Add support ... |
81 82 83 84 |
* Print the whole list of available access flags. */ void env_flags_print_varaccess(void); /* |
fffad71bc env: Add a comman... |
85 86 87 |
* Return the name of the type. */ const char *env_flags_get_vartype_name(enum env_flags_vartype type); |
267541f77 env: Add support ... |
88 89 90 91 |
/* * Return the name of the access. */ const char *env_flags_get_varaccess_name(enum env_flags_varaccess access); |
fffad71bc env: Add a comman... |
92 |
#endif |
2598090b7 env: Add environm... |
93 94 95 96 |
/* * Parse the flags string from a .flags attribute list into the vartype enum. */ enum env_flags_vartype env_flags_parse_vartype(const char *flags); |
267541f77 env: Add support ... |
97 98 99 100 101 102 103 104 |
/* * Parse the flags string from a .flags attribute list into the varaccess enum. */ enum env_flags_varaccess env_flags_parse_varaccess(const char *flags); /* * Parse the binary flags from a hash table entry into the varaccess enum. */ enum env_flags_varaccess env_flags_parse_varaccess_from_binflags(int binflags); |
2598090b7 env: Add environm... |
105 |
|
0118e83ba common/env_flags.... |
106 107 108 109 110 111 |
#ifdef CONFIG_CMD_NET /* * Check if a string has the format of an Ethernet MAC address */ int eth_validate_ethaddr_str(const char *addr); #endif |
30fd4fadb tools/env: Add en... |
112 113 114 115 116 117 |
#ifdef USE_HOSTCC /* * Look up the type of a variable directly from the .flags var. */ enum env_flags_vartype env_flags_get_type(const char *name); /* |
267541f77 env: Add support ... |
118 119 120 121 |
* Look up the access of a variable directly from the .flags var. */ enum env_flags_varaccess env_flags_get_access(const char *name); /* |
30fd4fadb tools/env: Add en... |
122 123 124 125 126 |
* Validate the newval for its type to conform with the requirements defined by * its flags (directly looked at the .flags var). */ int env_flags_validate_type(const char *name, const char *newval); /* |
267541f77 env: Add support ... |
127 128 129 130 131 132 133 134 135 136 |
* Validate the newval for its access to conform with the requirements defined * by its flags (directly looked at the .flags var). */ int env_flags_validate_access(const char *name, int check_mask); /* * Validate that the proposed access to variable "name" is valid according to * the defined flags for that variable, if any. */ int env_flags_validate_varaccess(const char *name, int check_mask); /* |
30fd4fadb tools/env: Add en... |
137 138 |
* Validate the parameters passed to "env set" for type compliance */ |
167f52587 tools: env valida... |
139 |
int env_flags_validate_env_set_params(char *name, char *const val[], int count); |
30fd4fadb tools/env: Add en... |
140 141 |
#else /* !USE_HOSTCC */ |
2598090b7 env: Add environm... |
142 143 144 145 146 147 148 149 150 151 152 153 154 |
#include <search.h> /* * When adding a variable to the environment, initialize the flags for that * variable. */ void env_flags_init(ENTRY *var_entry); /* * Validate the newval for to conform with the requirements defined by its flags */ int env_flags_validate(const ENTRY *item, const char *newval, enum env_op op, int flag); |
267541f77 env: Add support ... |
155 |
#endif /* USE_HOSTCC */ |
2598090b7 env: Add environm... |
156 157 158 159 |
/* * These are the binary flags used in the environment entry->flags variable to * decribe properties of veriables in the table */ |
267541f77 env: Add support ... |
160 |
#define ENV_FLAGS_VARTYPE_BIN_MASK 0x00000007 |
2598090b7 env: Add environm... |
161 |
/* The actual variable type values use the enum value (within the mask) */ |
267541f77 env: Add support ... |
162 163 164 165 166 |
#define ENV_FLAGS_VARACCESS_PREVENT_DELETE 0x00000008 #define ENV_FLAGS_VARACCESS_PREVENT_CREATE 0x00000010 #define ENV_FLAGS_VARACCESS_PREVENT_OVERWR 0x00000020 #define ENV_FLAGS_VARACCESS_PREVENT_NONDEF_OVERWR 0x00000040 #define ENV_FLAGS_VARACCESS_BIN_MASK 0x00000078 |
30fd4fadb tools/env: Add en... |
167 |
|
2598090b7 env: Add environm... |
168 |
#endif /* __ENV_FLAGS_H__ */ |