Xeon-SP boards: Factor out OCP VPD `get_cxl_mode()` impl
[coreboot2.git] / util / cbfstool / cbfs_sections.h
blob99a4761b6441356885cfc456d43966345ec82685
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_
7 #include "fmd.h"
9 #include <stdbool.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);
22 /**
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);
31 /**
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);
44 #endif