diff --git a/cli_classic.c b/cli_classic.c index d69b7985f..1b9c5ba3a 100644 --- a/cli_classic.c +++ b/cli_classic.c @@ -782,7 +782,7 @@ int main(int argc, char *argv[]) } if (set_wp_region && wp_region) { - if (get_region_range(layout, wp_region, &wp_start, &wp_len)) { + if (flashrom_layout_get_region_range(layout, wp_region, &wp_start, &wp_len)) { ret = 1; goto out_release; } diff --git a/layout.c b/layout.c index 534debaa2..05bee19c5 100644 --- a/layout.c +++ b/layout.c @@ -188,18 +188,6 @@ static int find_romentry(struct flashrom_layout *const l, char *name, char *file return 0; } -int get_region_range(struct flashrom_layout *const l, const char *name, - unsigned int *start, unsigned int *len) -{ - const struct romentry *const entry = _layout_entry_by_name(l, name); - if (entry) { - *start = entry->start; - *len = entry->end - entry->start + 1; - return 0; - } - return 1; -} - /* process -i arguments * returns 0 to indicate success, >0 to indicate failure */ @@ -444,6 +432,29 @@ int flashrom_layout_include_region(struct flashrom_layout *const layout, const c return include_region(layout, name, NULL); } +/** + * @brief Get given region's offset and length. + * + * @param layout The layout to alter. + * @param name The name of the region. + * @param start The start address to be written. + * @param len The length of the region to be written. + * + * @return 0 on success, + * 1 if the given name can't be found. + */ +int flashrom_layout_get_region_range(struct flashrom_layout *const l, const char *name, + unsigned int *start, unsigned int *len) +{ + const struct romentry *const entry = _layout_entry_by_name(l, name); + if (entry) { + *start = entry->start; + *len = entry->end - entry->start + 1; + return 0; + } + return 1; +} + /** * @brief Free a layout. * diff --git a/layout.h b/layout.h index 713241f61..abbdc22c1 100644 --- a/layout.h +++ b/layout.h @@ -59,8 +59,6 @@ int register_include_arg(struct layout_include_args **, const char *arg); int process_include_args(struct flashrom_layout *, const struct layout_include_args *); void cleanup_include_args(struct layout_include_args **); -int get_region_range(struct flashrom_layout *, const char *name, - unsigned int *start, unsigned int *len); const struct romentry *layout_next_included_region(const struct flashrom_layout *, chipoff_t); const struct romentry *layout_next_included(const struct flashrom_layout *, const struct romentry *); const struct romentry *layout_next(const struct flashrom_layout *, const struct romentry *); diff --git a/libflashrom.h b/libflashrom.h index 3bd6855d7..557978d4d 100644 --- a/libflashrom.h +++ b/libflashrom.h @@ -114,6 +114,8 @@ int flashrom_layout_read_fmap_from_buffer(struct flashrom_layout **layout, struct flashrom_flashctx *, const uint8_t *buf, size_t len); int flashrom_layout_add_region(struct flashrom_layout *, size_t start, size_t end, const char *name); int flashrom_layout_include_region(struct flashrom_layout *, const char *name); +int flashrom_layout_get_region_range(struct flashrom_layout *, const char *name, + unsigned int *start, unsigned int *len); void flashrom_layout_release(struct flashrom_layout *); void flashrom_layout_set(struct flashrom_flashctx *, const struct flashrom_layout *); diff --git a/libflashrom.map b/libflashrom.map index feb20f83e..2249d3549 100644 --- a/libflashrom.map +++ b/libflashrom.map @@ -14,6 +14,7 @@ LIBFLASHROM_1.0 { flashrom_image_verify; flashrom_image_write; flashrom_init; + flashrom_layout_get_region_range; flashrom_layout_include_region; flashrom_layout_read_fmap_from_buffer; flashrom_layout_read_fmap_from_rom; diff --git a/tests/layout.c b/tests/layout.c index 59e409bb7..1e7e31d16 100644 --- a/tests/layout.c +++ b/tests/layout.c @@ -121,7 +121,7 @@ void layout_pass_sanity_checks_test_success(void **state) printf("done\n"); printf("Asserting region range... "); - get_region_range(layout, "region", &start, &len); + flashrom_layout_get_region_range(layout, "region", &start, &len); assert_int_equal(start, region_start); assert_int_equal(len, region_end - region_start + 1); printf("done\n");