mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-02 06:23:18 +02:00
libflashrom: Add layout "exclude" API
Layouts can be expensive to derive (reading from flash), so we might want to reuse a layout for different purposes. Today, it's not possible to undo a flashrom_layout_include_region() operation (to, say, operate on a different region). Add such an API. Change-Id: I7ea3e0674f25e34bf2cfc8f464ae7ca1c1a3fbfd Signed-off-by: Brian Norris <briannorris@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/76005 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Edward O'Callaghan <quasisec@chromium.org> Reviewed-by: Nikolai Artemiev <nartemiev@google.com>
This commit is contained in:

committed by
Edward O'Callaghan

parent
91aa2d8526
commit
e08899fcf4
16
layout.c
16
layout.c
@ -217,6 +217,17 @@ static int include_region(struct flashrom_layout *const l, const char *name,
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* returns 0 to indicate success, 1 to indicate failure */
|
||||
static int exclude_region(struct flashrom_layout *const l, const char *name)
|
||||
{
|
||||
struct romentry *const entry = _layout_entry_by_name(l, name);
|
||||
if (entry) {
|
||||
entry->included = false;
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* returns -1 if an entry is not found, 0 if found. */
|
||||
static int romentry_exists(struct flashrom_layout *const l, char *name, char *file)
|
||||
{
|
||||
@ -441,6 +452,11 @@ int flashrom_layout_include_region(struct flashrom_layout *const layout, const c
|
||||
return include_region(layout, name, NULL);
|
||||
}
|
||||
|
||||
int flashrom_layout_exclude_region(struct flashrom_layout *const layout, const char *name)
|
||||
{
|
||||
return exclude_region(layout, name);
|
||||
}
|
||||
|
||||
int flashrom_layout_get_region_range(struct flashrom_layout *const l, const char *name,
|
||||
unsigned int *start, unsigned int *len)
|
||||
{
|
||||
|
Reference in New Issue
Block a user