]> git.ipfire.org Git - thirdparty/u-boot.git/blob - include/bcb.h
board: rockchip: add Theobroma-Systems RK3588 Jaguar SBC
[thirdparty/u-boot.git] / include / bcb.h
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3 * Copyright (C) 2020 Eugeniu Rosca <rosca.eugeniu@gmail.com>
4 *
5 * Android Bootloader Control Block Header
6 */
7
8 #ifndef __BCB_H__
9 #define __BCB_H__
10
11 #include <part.h>
12
13 enum bcb_field {
14 BCB_FIELD_COMMAND,
15 BCB_FIELD_STATUS,
16 BCB_FIELD_RECOVERY,
17 BCB_FIELD_STAGE
18 };
19
20 #if IS_ENABLED(CONFIG_CMD_BCB)
21
22 int bcb_find_partition_and_load(const char *iface,
23 int devnum, char *partp);
24 int bcb_load(struct blk_desc *block_description,
25 struct disk_partition *disk_partition);
26 int bcb_set(enum bcb_field field, const char *value);
27
28 /**
29 * bcb_get() - get the field value.
30 * @field: field to get
31 * @value_out: buffer to copy bcb field value to
32 * @value_size: buffer size to avoid overflow in case
33 * value_out is smaller then the field value
34 */
35 int bcb_get(enum bcb_field field, char *value_out, size_t value_size);
36
37 int bcb_store(void);
38 void bcb_reset(void);
39
40 #else
41
42 #include <linux/errno.h>
43
44 static inline int bcb_load(struct blk_desc *block_description,
45 struct disk_partition *disk_partition)
46 {
47 return -EOPNOTSUPP;
48 }
49
50 static inline int bcb_find_partition_and_load(const char *iface,
51 int devnum, char *partp)
52 {
53 return -EOPNOTSUPP;
54 }
55
56 static inline int bcb_set(enum bcb_field field, const char *value)
57 {
58 return -EOPNOTSUPP;
59 }
60
61 static inline int bcb_get(enum bcb_field field, char *value_out)
62 {
63 return -EOPNOTSUPP;
64 }
65
66 static inline int bcb_store(void)
67 {
68 return -EOPNOTSUPP;
69 }
70
71 static inline void bcb_reset(void)
72 {
73 }
74 #endif
75
76 #endif /* __BCB_H__ */