summaryrefslogtreecommitdiff
path: root/include/env.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-08-01 18:46:58 +0300
committerTom Rini <trini@konsulko.com>2019-08-11 23:43:41 +0300
commit4e9ce8a65fe4510664822a2de4b0d2cf61859b6c (patch)
treeaef66196ad3830d10e731f0cb757c54cea85bba8 /include/env.h
parent4be490ae337355c56da6122d263ef7747d48f983 (diff)
downloadu-boot-4e9ce8a65fe4510664822a2de4b0d2cf61859b6c.tar.xz
env: Move env import/export functions to env.h
Move these functions to the new header file. Acked-by: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/env.h')
-rw-r--r--include/env.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/env.h b/include/env.h
index 69ccfb706e..0b03f8aa42 100644
--- a/include/env.h
+++ b/include/env.h
@@ -12,6 +12,8 @@
#include <stdbool.h>
#include <linux/types.h>
+struct environment_s;
+
/**
* env_get_id() - Gets a sequence number for the environment
*
@@ -219,4 +221,40 @@ int env_save(void);
*/
int env_erase(void);
+/**
+ * env_import() - Import from a binary representation into hash table
+ *
+ * This imports the environment from a buffer. The format for each variable is
+ * var=value\0 with a double \0 at the end of the buffer.
+ *
+ * @buf: Buffer containing the environment (struct environemnt_s *)
+ * @check: non-zero to check the CRC at the start of the environment, 0 to
+ * ignore it
+ * @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);
+
+/**
+ * env_export() - Export the environment to a buffer
+ *
+ * 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
+ */
+int env_export(struct environment_s *env_out);
+
+/**
+ * env_import_redund() - Select and import one of two redundant environments
+ *
+ * @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_import_redund(const char *buf1, int buf1_read_fail,
+ const char *buf2, int buf2_read_fail);
+
#endif