diff options
author | Aaron Durbin <adurbin@chromium.org> | 2015-10-06 17:29:03 -0500 |
---|---|---|
committer | Aaron Durbin <adurbin@gmail.com> | 2015-10-11 23:55:55 +0000 |
commit | b5a20b29b7a2709b120e3c8258c2f16d9c38b590 (patch) | |
tree | f7d2538122d8a16ce730362992454e9a326f6ff0 /src/vendorcode/google/chromeos/vboot2/misc.h | |
parent | e957832b2a4c880fae15c74b998630d5c5125890 (diff) |
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 <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/11818
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/vendorcode/google/chromeos/vboot2/misc.h')
-rw-r--r-- | src/vendorcode/google/chromeos/vboot2/misc.h | 52 |
1 files changed, 9 insertions, 43 deletions
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__ */ |