libubootenv
libuboot.h
1 /*
2  * (C) Copyright 2019
3  * Stefano Babic, DENX Software Engineering, sbabic@denx.de.
4  *
5  * SPDX-License-Identifier: LGPL-2.1-or-later
6  */
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #pragma once
13 
14 struct uboot_ctx;
15 
16 #define DEVNAME_MAX_LENGTH 256
17 
23  char *devname;
25  long long int offset;
27  size_t envsize;
29  size_t sectorsize;
31  unsigned long envsectors;
32 };
33 
40 int libuboot_read_config(struct uboot_ctx *ctx, const char *config);
41 
48 int libuboot_configure(struct uboot_ctx *ctx,
49  struct uboot_env_device *envdevs);
50 
63 int libuboot_load_file(struct uboot_ctx *ctx, const char *filename);
64 
73 int libuboot_env_store(struct uboot_ctx *ctx);
74 
83 int libuboot_initialize(struct uboot_ctx **out,
84  struct uboot_env_device *envdevs);
85 
90 void libuboot_exit(struct uboot_ctx *ctx);
91 
97 int libuboot_open(struct uboot_ctx *ctx);
98 
108 void libuboot_close(struct uboot_ctx *ctx);
109 
120 int libuboot_set_env(struct uboot_ctx *ctx, const char *varname, const char *value);
121 
133 char *libuboot_get_env(struct uboot_ctx *ctx, const char *varname);
134 
144 void *libuboot_iterator(struct uboot_ctx *ctx, void *next);
145 
151 const char *libuboot_getname(void *entry);
152 
158 const char *libuboot_getvalue(void *entry);
159 
160 #ifdef __cplusplus
161 }
162 #endif
libuboot_getvalue
const char * libuboot_getvalue(void *entry)
Accessor to get variable value from DB entry.
Definition: uboot_env.c:1319
uboot_env_device::devname
char * devname
Definition: libuboot.h:23
libuboot_getname
const char * libuboot_getname(void *entry)
Accessor to get variable name from DB entry.
Definition: uboot_env.c:1312
libuboot_set_env
int libuboot_set_env(struct uboot_ctx *ctx, const char *varname, const char *value)
Set a variable.
Definition: uboot_env.c:1248
libuboot_load_file
int libuboot_load_file(struct uboot_ctx *ctx, const char *filename)
Import environment from file.
Definition: uboot_env.c:1057
libuboot_initialize
int libuboot_initialize(struct uboot_ctx **out, struct uboot_env_device *envdevs)
Initialize the library.
Definition: uboot_env.c:1365
libuboot_configure
int libuboot_configure(struct uboot_ctx *ctx, struct uboot_env_device *envdevs)
Read U-Boot environment configuration from structure.
Definition: uboot_env.c:1335
uboot_env_device::envsize
size_t envsize
Definition: libuboot.h:27
libuboot_close
void libuboot_close(struct uboot_ctx *ctx)
Release an environment.
Definition: uboot_env.c:1395
libuboot_get_env
char * libuboot_get_env(struct uboot_ctx *ctx, const char *varname)
Get a variable.
Definition: uboot_env.c:1300
uboot_env_device::envsectors
unsigned long envsectors
Definition: libuboot.h:31
libuboot_read_config
int libuboot_read_config(struct uboot_ctx *ctx, const char *config)
Read U-Boot environment configuration from a file.
Definition: uboot_env.c:1108
libuboot_exit
void libuboot_exit(struct uboot_ctx *ctx)
Release all resources and exit the library.
Definition: uboot_env.c:1413
libuboot_env_store
int libuboot_env_store(struct uboot_ctx *ctx)
Flush environment to the storage.
Definition: uboot_env.c:765
uboot_env_device::sectorsize
size_t sectorsize
Definition: libuboot.h:29
uboot_env_device
Definition: libuboot.h:21
libuboot_iterator
void * libuboot_iterator(struct uboot_ctx *ctx, void *next)
Iterator.
Definition: uboot_env.c:1326
uboot_env_device::offset
long long int offset
Definition: libuboot.h:25
libuboot_open
int libuboot_open(struct uboot_ctx *ctx)
Load an environment.
Definition: uboot_env.c:1387
uboot_ctx
Definition: uboot_private.h:111