1 /* fmap_sections.h, track which sections of the image will contain CBFSes */
2 /* SPDX-License-Identifier: GPL-2.0-only */
4 #ifndef CBFS_SECTIONS_H_
5 #define CBFS_SECTIONS_H_
11 #define SECTION_NAME_FMAP "FMAP"
12 #define SECTION_NAME_PRIMARY_CBFS "COREBOOT"
13 #define SECTION_NAME_BOOTBLOCK "BOOTBLOCK"
15 #define SECTION_ANNOTATION_CBFS "CBFS"
17 typedef const struct descriptor_node
*cbfs_section_iterator_t
;
19 /** @return Iterator pointing to first CBFS section, or NULL if none exist */
20 cbfs_section_iterator_t
cbfs_sections_iterator(void);
23 * Advance iterator to point to the next CBFS section.
24 * If it was already pointing to the last such section, it will be set to NULL.
26 * @param it (Non-NULL) pointer to (possibly NULL) iterator to be updated
27 * @return Whether it was successfully advanced (wasn't already NULL)
29 bool cbfs_sections_iterator_advance(cbfs_section_iterator_t
*it
);
32 * @param it Iterator, which must currently be non-NULL
33 * @return Section to which it points
35 const struct flashmap_descriptor
*cbfs_sections_iterator_deref(
36 cbfs_section_iterator_t it
);
38 /** @return Whether a section named SECTION_NAME_PRIMARY_CBFS is in the list. */
39 bool cbfs_sections_primary_cbfs_accounted_for(void);
41 /** Reclaim the space used to store knowledge of which sections are CBFSes. */
42 void cbfs_sections_cleanup(void);