123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /* 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.
- *
- * Common functions between firmware and kernel verified boot.
- * (Firmware portion)
- */
- #include "2sysincludes.h"
- #include "2common.h"
- #include "sysincludes.h"
- #include "vboot_api.h"
- #include "vboot_common.h"
- #include "utility.h"
- int VbSharedDataInit(VbSharedDataHeader *header, uint64_t size)
- {
- VB2_DEBUG("VbSharedDataInit, %d bytes, header %d bytes\n", (int)size,
- (int)sizeof(VbSharedDataHeader));
- if (size < sizeof(VbSharedDataHeader)) {
- VB2_DEBUG("Not enough data for header.\n");
- return VBOOT_SHARED_DATA_INVALID;
- }
- if (size < VB_SHARED_DATA_MIN_SIZE) {
- VB2_DEBUG("Shared data buffer too small.\n");
- return VBOOT_SHARED_DATA_INVALID;
- }
- if (!header)
- return VBOOT_SHARED_DATA_INVALID;
- /* Zero the header */
- memset(header, 0, sizeof(VbSharedDataHeader));
- /* Initialize fields */
- header->magic = VB_SHARED_DATA_MAGIC;
- header->struct_version = VB_SHARED_DATA_VERSION;
- header->struct_size = sizeof(VbSharedDataHeader);
- header->data_size = size;
- header->data_used = sizeof(VbSharedDataHeader);
- header->firmware_index = 0xFF;
- /* Success */
- return VBOOT_SUCCESS;
- }
|