mb/google/brya: Create rull variant
[coreboot2.git] / src / include / fmap.h
blob761e742f5600775763ca7f257268d48e68e5f27a
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #ifndef _FMAP_H_
4 #define _FMAP_H_
6 #include <commonlib/bsd/fmap_serialized.h>
7 #include <commonlib/region.h>
8 #include <stddef.h>
9 #include <stdint.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,
22 * < 0 on error. */
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);
41 #endif