* This value increments every time the environment changes, so can be used an
* an indication of this
*
- * @return environment ID
+ * Return: environment ID
*/
int env_get_id(void);
* This locates the environment or uses the default if nothing is available.
* This must be called before env_get() will work.
*
- * @return 0 if OK, -ENODEV if no environment drivers are enabled
+ * Return: 0 if OK, -ENODEV if no environment drivers are enabled
*/
int env_init(void);
void env_relocate(void);
/**
- * env_match() - Match a name / name=value pair
- *
- * This is used prior to relocation for finding envrionment variables
- *
- * @name: A simple 'name', or a 'name=value' pair.
- * @index: The environment index for a 'name2=value2' pair.
- * @return index for the value if the names match, else -1.
- */
-int env_match(unsigned char *name, int index);
-
-/**
* env_get() - Look up the value of an environment variable
*
* In U-Boot proper this can be called before relocation (which is when the
* case this function calls env_get_f().
*
* @varname: Variable to look up
- * @return value of variable, or NULL if not found
+ * Return: value of variable, or NULL if not found
*/
char *env_get(const char *varname);
* place of env_get without changing error handling otherwise.
*
* @varname: Variable to look up
- * @return value of variable, or NULL if not found
+ * Return: value of variable, or NULL if not found
*/
char *from_env(const char *envvar);
* support reading the value (slowly) and some will not.
*
* @varname: Variable to look up
- * @return value of variable, or NULL if not found
+ * Return: actual length of the variable value excluding the terminating
+ * NULL-byte, or -1 if the variable is not found
*/
int env_get_f(const char *name, char *buf, unsigned int len);
/**
* env_get_yesno() - Read an environment variable as a boolean
*
- * @return 1 if yes/true (Y/y/T/t), -1 if variable does not exist (i.e. default
+ * Return: 1 if yes/true (Y/y/T/t), -1 if variable does not exist (i.e. default
* to true), 0 if otherwise
*/
int env_get_yesno(const char *var);
/**
+ * env_get_autostart() - Check if autostart is enabled
+ *
+ * Return: true if the "autostart" env var exists and is set to "yes"
+ */
+bool env_get_autostart(void);
+
+/**
* env_set() - set an environment variable
*
* This sets or deletes the value of an environment variable. For setting the
*
* @varname: Variable to adjust
* @value: Value to set for the variable, or NULL or "" to delete the variable
- * @return 0 if OK, 1 on error
+ * Return: 0 if OK, 1 on error
*/
int env_set(const char *varname, const char *value);
* @name: Variable to look up
* @base: Base to use (e.g. 10 for base 10, 2 for binary)
* @default_val: Default value to return if no value is found
- * @return the value found, or @default_val if none
+ * Return: the value found, or @default_val if none
*/
ulong env_get_ulong(const char *name, int base, ulong default_val);
*
* @varname: Variable to adjust
* @value: Value to set for the variable (will be converted to a string)
- * @return 0 if OK, 1 on error
+ * Return: 0 if OK, 1 on error
*/
int env_set_ulong(const char *varname, ulong value);
*
* @varname: Variable to adjust
* @value: Value to set for the variable (will be converted to a hex string)
- * @return 0 if OK, 1 on error
+ * Return: 0 if OK, 1 on error
*/
int env_set_hex(const char *varname, ulong value);
*
* @varname: Environment variable to set
* @addr: Value to set it to
- * @return 0 if ok, 1 on error
+ * Return: 0 if ok, 1 on error
*/
static inline int env_set_addr(const char *varname, const void *addr)
{
* @maxsz: Size of buffer to use for matches
* @buf: Buffer to use for matches
* @dollar_comp: non-zero to wrap each match in ${...}
- * @return number of matches found (in @cmdv)
+ * Return: number of matches found (in @cmdv)
*/
int env_complete(char *var, int maxv, char *cmdv[], int maxsz, char *buf,
bool dollar_comp);
*
* @name: Environment variable to get (e.g. "ethaddr")
* @enetaddr: Place to put MAC address (6 bytes)
- * @return 0 if OK, 1 on error
+ * Return: 0 if OK, 1 on error
*/
int eth_env_get_enetaddr(const char *name, uint8_t *enetaddr);
*
* @name: Environment variable to set (e.g. "ethaddr")
* @enetaddr: Pointer to MAC address to put into the variable (6 bytes)
- * @return 0 if OK, 1 on error
+ * Return: 0 if OK, 1 on error
*/
int eth_env_set_enetaddr(const char *name, const uint8_t *enetaddr);
/**
* env_load() - Load the environment from storage
*
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int env_load(void);
/**
* env_reload() - Re-Load the environment from current storage
*
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int env_reload(void);
/**
* env_save() - Save the environment to storage
*
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int env_save(void);
/**
* env_erase() - Erase the environment on storage
*
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int env_erase(void);
/**
* env_select() - Select the environment storage
*
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
*/
int env_select(const char *name);
* @check: non-zero to check the CRC at the start of the environment, 0 to
* ignore it
* @flags: Flags controlling matching (H_... - see search.h)
- * @return 0 if imported successfully, -ENOMSG if the CRC was bad, -EIO if
+ * Return: 0 if imported successfully, -ENOMSG if the CRC was bad, -EIO if
* something else went wrong
*/
int env_import(const char *buf, int check, int flags);
* Export from hash table into binary representation
*
* @env_out: Buffer to contain the environment (must be large enough!)
- * @return 0 if OK, 1 on error
+ * Return: 0 if OK, 1 on error
*/
int env_export(struct environment_s *env_out);
/**
+ * env_check_redund() - check the two redundant environments
+ * and find out, which is the valid one.
+ *
+ * @buf1: First environment (struct environemnt_s *)
+ * @buf1_read_fail: 0 if buf1 is valid, non-zero if invalid
+ * @buf2: Second environment (struct environemnt_s *)
+ * @buf2_read_fail: 0 if buf2 is valid, non-zero if invalid
+ * Return: 0 if OK,
+ * -EIO if no environment is valid,
+ * -ENOMSG if the CRC was bad
+ */
+
+int env_check_redund(const char *buf1, int buf1_read_fail,
+ const char *buf2, int buf2_read_fail);
+
+/**
* env_import_redund() - Select and import one of two redundant environments
*
* @buf1: First environment (struct environemnt_s *)
* @buf2: Second environment (struct environemnt_s *)
* @buf2_read_fail: 0 if buf2 is valid, non-zero if invalid
* @flags: Flags controlling matching (H_... - see search.h)
- * @return 0 if OK, -EIO if no environment is valid, -ENOMSG if the CRC was bad
+ * Return: 0 if OK, -EIO if no environment is valid, -ENOMSG if the CRC was bad
*/
int env_import_redund(const char *buf1, int buf1_read_fail,
const char *buf2, int buf2_read_fail,
* env_get_default() - Look up a variable from the default environment
*
* @name: Variable to look up
- * @return value if found, NULL if not found in default environment
+ * Return: value if found, NULL if not found in default environment
*/
char *env_get_default(const char *name);
void env_set_default(const char *s, int flags);
/**
- * env_get_char() - Get a character from the early environment
- *
- * This reads from the pre-relocation environment
+ * env_reloc() - Relocate the 'env' sub-commands
*
- * @index: Index of character to read (0 = first)
- * @return character read, or -ve on error
+ * This is used for those unfortunate archs with crappy toolchains
*/
-int env_get_char(int index);
+void env_reloc(void);
+
/**
- * env_reloc() - Relocate the 'env' sub-commands
+ * env_import_fdt() - Import environment values from device tree blob
*
- * This is used for those unfortunate archs with crappy toolchains
+ * This uses the value of the environment variable "env_fdt_path" as a
+ * path to an fdt node, whose property/value pairs are added to the
+ * environment.
*/
-void env_reloc(void);
+#ifdef CONFIG_ENV_IMPORT_FDT
+void env_import_fdt(void);
+#else
+static inline void env_import_fdt(void) {}
+#endif
+
#endif