/* 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. * * Access to portions of the GBB using the region API. */ #ifndef VBOOT_REFERENCE_GBB_ACCESS_H_ #define VBOOT_REFERENCE_GBB_ACCESS_H_ #include "vboot_api.h" struct BmpBlockHeader; struct ImageInfo; struct GoogleBinaryBlockHeader; struct ScreenLayout; struct VbPublicKey; /** * Read the GBB header * * This accesses the GBB and reads its header. * * @param cparams Vboot common parameters * @param gbb Place to put GBB header */ VbError_t VbGbbReadHeader_static(VbCommonParams *cparams, struct GoogleBinaryBlockHeader *gbb); /** * Read the root key from the GBB * * @param cparams Vboot common parameters * @param keyp Returns a pointer to the key. The caller must call * free() on the key when finished with it. * @return VBERROR_... error, VBERROR_SUCCESS on success, */ VbError_t VbGbbReadRootKey(VbCommonParams *cparams, struct VbPublicKey **keyp); /** * Read the recovery key from the GBB * * @param cparams Vboot common parameters * @param keyp Returns a pointer to the key. The caller must call * free() on the key when finished with it. * @return VBERROR_... error, VBERROR_SUCCESS on success, */ VbError_t VbGbbReadRecoveryKey(VbCommonParams *cparams, struct VbPublicKey **keyp); /** * Read the bitmap block header from the GBB * * @param cparams Vboot common parameters * @param hdr The header is placed in this block * @return VBERROR_... error, VBERROR_SUCCESS on success, */ VbError_t VbGbbReadBmpHeader(VbCommonParams *cparams, struct BmpBlockHeader *hdr); /** * Read a image from the GBB * * The caller must call free() on *image_datap when finished with it. * * @param cparams Vboot common parameters * @param localization Localization/language number * @param screen_index Index of screen to display (VB_SCREEN_...) * @param image_num Image number within the screen * @param layout Returns layout information (x, y position) * @param image_info Returns information about the image (format) * @param image_datap Returns a pointer to the image data * @param iamge_data_sizep Return size of image data * @return VBERROR_... error, VBERROR_SUCCESS on success, */ VbError_t VbGbbReadImage(VbCommonParams *cparams, uint32_t localization, uint32_t screen_index, uint32_t image_num, struct ScreenLayout *layout, struct ImageInfo *image_info, char **image_datap, uint32_t *image_data_sizep); #endif