You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.5 KiB
84 lines
2.5 KiB
4 months ago
|
/* 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
|