libubootenv
Loading...
Searching...
No Matches
uboot_private.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#pragma once
9
10#include <stdbool.h>
11#include <stdint.h>
12#include <sys/queue.h>
13#include <sys/types.h>
14#include <mtd/mtd-user.h>
15#include "libuboot.h"
16
17typedef enum {
18 TYPE_ATTR_STRING, /* default */
19 TYPE_ATTR_DECIMAL,
20 TYPE_ATTR_HEX,
21 TYPE_ATTR_BOOL,
22 TYPE_ATTR_IP,
23 TYPE_ATTR_MAC
24} type_attribute;
25
26typedef enum {
27 ACCESS_ATTR_ANY, /* default */
28 ACCESS_ATTR_READ_ONLY,
29 ACCESS_ATTR_WRITE_ONCE,
30 ACCESS_ATTR_CHANGE_DEFAULT,
31} access_attribute;
32
33enum flags_type {
34 FLAGS_NONE,
35 FLAGS_BOOLEAN,
36 FLAGS_INCREMENTAL
37};
38
39enum device_type {
40 DEVICE_NONE,
41 DEVICE_FILE,
42 DEVICE_MTD,
43 DEVICE_UBI,
44};
45
54 uint32_t crc;
56 char data[];
57};
58
61 uint32_t crc;
63 unsigned char flags;
65 char data[];
66};
67
70 char devname[DEVNAME_MAX_LENGTH];
72 long long int offset;
74 size_t envsize;
76 size_t sectorsize;
78 long unsigned int envsectors;
80 struct mtd_info_user mtdinfo;
82 uint32_t crc;
84 int fd;
86 unsigned char flags;
88 enum flags_type flagstype;
90 enum device_type device_type;
93};
94
97struct var_entry {
99 char *name;
101 char *value;
103 type_attribute type;
105 access_attribute access;
108};
109
110LIST_HEAD(vars, var_entry);
111
114struct uboot_ctx {
118 bool valid;
120 size_t size;
126 int lock;
128 struct vars varlist;
130 char *name;
132 char *lockfile;
134 int nelem;
137};
Definition uboot_private.h:114
char * name
Definition uboot_private.h:130
struct uboot_ctx * ctxlist
Definition uboot_private.h:136
struct uboot_flash_env envdevs[2]
Definition uboot_private.h:122
bool redundant
Definition uboot_private.h:116
bool valid
Definition uboot_private.h:118
char * lockfile
Definition uboot_private.h:132
struct vars varlist
Definition uboot_private.h:128
int nelem
Definition uboot_private.h:134
int current
Definition uboot_private.h:124
int lock
Definition uboot_private.h:126
size_t size
Definition uboot_private.h:120
Definition uboot_private.h:52
char data[]
Definition uboot_private.h:56
uint32_t crc
Definition uboot_private.h:54
Definition uboot_private.h:59
unsigned char flags
Definition uboot_private.h:63
uint32_t crc
Definition uboot_private.h:61
char data[]
Definition uboot_private.h:65
Definition uboot_private.h:68
long unsigned int envsectors
Definition uboot_private.h:78
enum device_type device_type
Definition uboot_private.h:90
int fd
Definition uboot_private.h:84
char devname[DEVNAME_MAX_LENGTH]
Definition uboot_private.h:70
unsigned char flags
Definition uboot_private.h:86
struct mtd_info_user mtdinfo
Definition uboot_private.h:80
uint32_t crc
Definition uboot_private.h:82
size_t envsize
Definition uboot_private.h:74
long long int offset
Definition uboot_private.h:72
size_t sectorsize
Definition uboot_private.h:76
int disable_mtd_lock
Definition uboot_private.h:92
enum flags_type flagstype
Definition uboot_private.h:88
Definition uboot_private.h:97
type_attribute type
Definition uboot_private.h:103
LIST_ENTRY(var_entry) next
access_attribute access
Definition uboot_private.h:105
char * value
Definition uboot_private.h:101
char * name
Definition uboot_private.h:99