/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef VBOOT_REFERENCE_FILE_TYPE_BIOS_H_ #define VBOOT_REFERENCE_FILE_TYPE_BIOS_H_ #include /* * The Chrome OS BIOS must contain specific FMAP areas, which we want to look * at in a certain order. */ enum bios_component { BIOS_FMAP_GBB, BIOS_FMAP_FW_MAIN_A, BIOS_FMAP_FW_MAIN_B, BIOS_FMAP_VBLOCK_A, BIOS_FMAP_VBLOCK_B, NUM_BIOS_COMPONENTS }; /* Location information for each component */ struct bios_area_s { uint32_t offset; /* to avoid pointer math */ uint8_t *buf; uint32_t len; uint32_t is_valid; }; /* State to track as we visit all components */ struct bios_state_s { /* Current component */ enum bios_component c; /* Other activites, possibly before or after the current one */ struct bios_area_s area[NUM_BIOS_COMPONENTS]; struct bios_area_s recovery_key; struct bios_area_s rootkey; }; #endif /* VBOOT_REFERENCE_FILE_TYPE_BIOS_H_ */