From b5a20b29b7a2709b120e3c8258c2f16d9c38b590 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Tue, 6 Oct 2015 17:29:03 -0500 Subject: vboot: restructure vboot work buffer handling For the purpose of isolating the work buffer logic the surface area of the API was slimmed down. The vb2_working_data structure is no longer exposed, and the function signatures are updated accordingly. BUG=chrome-os-partner:44827 BRANCH=None TEST=Built and booted glados. Change-Id: If64184a79e9571ee8ef9822cfce1eda20fceee00 Signed-off-by: Aaron Durbin Reviewed-on: http://review.coreboot.org/11818 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- src/vendorcode/google/chromeos/vboot2/misc.h | 52 +++++----------------------- 1 file changed, 9 insertions(+), 43 deletions(-) (limited to 'src/vendorcode/google/chromeos/vboot2/misc.h') diff --git a/src/vendorcode/google/chromeos/vboot2/misc.h b/src/vendorcode/google/chromeos/vboot2/misc.h index 305d0daf1a..fbbc46ef5c 100644 --- a/src/vendorcode/google/chromeos/vboot2/misc.h +++ b/src/vendorcode/google/chromeos/vboot2/misc.h @@ -22,55 +22,21 @@ #include "../vboot_common.h" +struct vb2_context; +struct vb2_shared_data; + void vboot_fill_handoff(void); void *vboot_load_stage(int stage_index, struct region *fw_main, struct vboot_components *fw_info); -/* - * this is placed at the start of the vboot work buffer. selected_region is used - * for the verstage to return the location of the selected slot. buffer is used - * by the vboot2 core. Keep the struct cpu architecture agnostic as it crosses - * stage boundaries. - */ -struct vb2_working_data { - uint32_t selected_region_offset; - uint32_t selected_region_size; - /* offset of the buffer from the start of this struct */ - uint32_t buffer_offset; - uint32_t buffer_size; -}; - -struct vb2_working_data * const vboot_get_working_data(void); -size_t vb2_working_data_size(void); -void *vboot_get_work_buffer(struct vb2_working_data *wd); +void vb2_init_work_context(struct vb2_context *ctx); +struct vb2_shared_data *vb2_get_shared_data(void); /* Returns 0 on success. < 0 on failure. */ -static inline int vb2_get_selected_region(struct vb2_working_data *wd, - struct region_device *rdev) -{ - struct region reg = { - .offset = wd->selected_region_offset, - .size = wd->selected_region_size, - }; - return vboot_region_device(®, rdev); -} - -static inline void vb2_set_selected_region(struct vb2_working_data *wd, - struct region_device *rdev) -{ - wd->selected_region_offset = region_device_offset(rdev); - wd->selected_region_size = region_device_sz(rdev); -} - -static inline int vboot_is_slot_selected(struct vb2_working_data *wd) -{ - return wd->selected_region_size > 0; -} - -static inline int vboot_is_readonly_path(struct vb2_working_data *wd) -{ - return wd->selected_region_size == 0; -} +int vb2_get_selected_region(struct region_device *rdev); +void vb2_set_selected_region(struct region_device *rdev); +int vboot_is_slot_selected(void); +int vboot_is_readonly_path(void); #endif /* __CHROMEOS_VBOOT2_MISC_H__ */ -- cgit v1.2.3