int region_is_subregion(const struct region *p, const struct region *c) { if (region_offset(c) < region_offset(p)) return 0; if (region_sz(c) > region_sz(p)) return 0; if (region_end(c) > region_end(p)) return 0; return 1; }
void vb2_set_selected_region(const struct region *region) { struct selected_region *reg = vb2_selected_region(); assert(reg != NULL); reg->offset = region_offset(region); reg->size = region_sz(region); }
void vboot_set_selected_region(const struct region *region) { struct selected_region *reg = &vboot_get_working_data()->selected_region; assert(reg != NULL); reg->offset = region_offset(region); reg->size = region_sz(region); }
static int vboot_locate(struct cbfs_props *props) { struct region selected_region; /* Don't honor vboot results until the vboot logic has run. */ if (!vboot_logic_executed()) return -1; if (vb2_get_selected_region(&selected_region)) return -1; props->offset = region_offset(&selected_region); props->size = region_sz(&selected_region); return 0; }
static inline size_t region_end(const struct region *r) { return region_sz(r) + region_offset(r); }