diff options
Diffstat (limited to 'firmware/include/gbb_access.h')
-rw-r--r-- | firmware/include/gbb_access.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/firmware/include/gbb_access.h b/firmware/include/gbb_access.h new file mode 100644 index 00000000..b94d0cdb --- /dev/null +++ b/firmware/include/gbb_access.h @@ -0,0 +1,83 @@ +/* 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 + * VbExFree() 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 + * VbExFree() 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 VbExFree() 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 |