Blame view
include/env_flags.h
4.09 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#ifdef CONFIG_CMD_NET #ifdef CONFIG_ENV_OVERWRITE #define ETHADDR_FLAGS "ethaddr:ma," #else #ifdef CONFIG_OVERWRITE_ETHADDR_ONCE #define ETHADDR_FLAGS "ethaddr:mc," #else #define ETHADDR_FLAGS "ethaddr:mo," #endif #endif #else #define ETHADDR_FLAGS "" #endif #ifndef CONFIG_ENV_OVERWRITE #define SERIAL_FLAGS "serial#:so," #else #define SERIAL_FLAGS "" #endif |
2598090b7 env: Add environm... |
56 |
#define ENV_FLAGS_LIST_STATIC \ |
1d6cd0a3f env: Handle write... |
57 58 |
ETHADDR_FLAGS \ SERIAL_FLAGS \ |
2598090b7 env: Add environm... |
59 |
CONFIG_ENV_FLAGS_LIST_STATIC |
fffad71bc env: Add a comman... |
60 61 62 63 64 65 |
#ifdef CONFIG_CMD_ENV_FLAGS /* * Print the whole list of available type flags. */ void env_flags_print_vartypes(void); /* |
267541f77 env: Add support ... |
66 67 68 69 |
* Print the whole list of available access flags. */ void env_flags_print_varaccess(void); /* |
fffad71bc env: Add a comman... |
70 71 72 |
* Return the name of the type. */ const char *env_flags_get_vartype_name(enum env_flags_vartype type); |
267541f77 env: Add support ... |
73 74 75 76 |
/* * Return the name of the access. */ const char *env_flags_get_varaccess_name(enum env_flags_varaccess access); |
fffad71bc env: Add a comman... |
77 |
#endif |
2598090b7 env: Add environm... |
78 79 80 81 |
/* * 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 ... |
82 83 84 85 86 87 88 89 |
/* * 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... |
90 |
|
30fd4fadb tools/env: Add en... |
91 92 93 94 95 96 |
#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 ... |
97 98 99 100 |
* 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... |
101 102 103 104 105 |
* 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 ... |
106 107 108 109 110 111 112 113 114 115 |
* 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... |
116 117 118 119 120 |
* Validate the parameters passed to "env set" for type compliance */ int env_flags_validate_env_set_params(int argc, char * const argv[]); #else /* !USE_HOSTCC */ |
2598090b7 env: Add environm... |
121 122 123 124 125 126 127 128 129 130 131 132 133 |
#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 ... |
134 |
#endif /* USE_HOSTCC */ |
2598090b7 env: Add environm... |
135 136 137 138 |
/* * These are the binary flags used in the environment entry->flags variable to * decribe properties of veriables in the table */ |
267541f77 env: Add support ... |
139 |
#define ENV_FLAGS_VARTYPE_BIN_MASK 0x00000007 |
2598090b7 env: Add environm... |
140 |
/* The actual variable type values use the enum value (within the mask) */ |
267541f77 env: Add support ... |
141 142 143 144 145 |
#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... |
146 |
|
2598090b7 env: Add environm... |
147 |
#endif /* __ENV_FLAGS_H__ */ |