1 /* SPDX-License-Identifier: GPL-2.0-only */
6 #include <commonlib/bsd/fmap_serialized.h>
7 #include <commonlib/region.h>
11 /* Locate the named area in the fmap and fill in a region device representing
12 * that area. The region is a sub-region of the readonly boot media. Return
13 * 0 on success, < 0 on error. */
14 int fmap_locate_area_as_rdev(const char *name
, struct region_device
*area
);
16 /* Just like fmap_locate_area_as_rdev(), however the region device is
17 * created from the RW boot device. */
18 int fmap_locate_area_as_rdev_rw(const char *name
, struct region_device
*area
);
20 /* Locate the named area in the fmap and fill in a region with the
21 * offset and size of that area within the boot media. Return 0 on success,
23 int fmap_locate_area(const char *name
, struct region
*r
);
25 /* Find fmap area name by offset and size.
26 * Return 0 on success, < 0 on error. */
27 int fmap_find_region_name(const struct region
* const ar
,
28 char name
[FMAP_STRLEN
]);
30 /* Read fmap area into provided buffer.
31 * Return size read on success, < 0 on error. */
32 ssize_t
fmap_read_area(const char *name
, void *buffer
, size_t size
);
34 /* Write provided buffer into fmap area.
35 * Return size written on success, < 0 on error. */
36 ssize_t
fmap_overwrite_area(const char *name
, const void *buffer
, size_t size
);
38 /* Get offset of FMAP in flash. */
39 uint64_t get_fmap_flash_offset(void);