/* Copyright (c) 2012 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.
 */

#include "cgptlib.h"
#include "load_firmware_fw.h"
#include "load_kernel_fw.h"
#include "rollback_index.h"
#include "tlcl.h"
#include "tpm_bootmode.h"
#include "vboot_common.h"
#include "vboot_kernel.h"
#include "vboot_nvstorage.h"


int main(void)
{
  /* cgptlib.h */
  GptInit(0);
  GptNextKernelEntry(0, 0, 0);
  GptUpdateKernelEntry(0, 0);

  /* load_firmware_fw.h */
  LoadFirmware(0, 0, 0);

  /* load_kernel_fw.h */
  LoadKernel(0);

  /* rollback_index.h */
  RollbackS3Resume();
  RollbackFirmwareSetup(0, 0, 0, 0, 0, 0);
  RollbackFirmwareWrite(0);
  RollbackFirmwareLock();
  RollbackKernelRead(0);
  RollbackKernelWrite(0);
  RollbackKernelLock();

  /* tpm_bootmode.c */
  SetTPMBootModeState(0, 0, 0);

  /* tlcl.h */
  TlclStartup();
  TlclResume();
  TlclSelfTestFull();
  TlclContinueSelfTest();
  TlclDefineSpace(0, 0, 0);
  TlclWrite(0, 0, 0);
  TlclRead(0, 0, 0);
  TlclWriteLock(0);
  TlclReadLock(0);
  TlclAssertPhysicalPresence();
  TlclSetNvLocked();
  TlclIsOwned();
  TlclForceClear();
  TlclSetEnable();
  TlclClearEnable();
  TlclSetDeactivated(0);
  TlclGetFlags(0, 0, 0);
  TlclSetGlobalLock();
  TlclExtend(0, 0, 0);
  TlclGetPermissions(0, 0);

  /* vboot_api.h - entry points INTO vboot_reference */
  VbInit(0, 0);
  VbSelectFirmware(0, 0);
  VbUpdateFirmwareBodyHash(0, 0, 0);
  VbSelectAndLoadKernel(0, 0);

  /* vboot_common.h */
  OffsetOf(0, 0);
  GetPublicKeyData(0);
  GetPublicKeyDataC(0);
  GetSignatureData(0);
  GetSignatureDataC(0);
  VerifyMemberInside(0, 0, 0, 0, 0, 0);
  VerifyPublicKeyInside(0, 0, 0);
  VerifySignatureInside(0, 0, 0);
  PublicKeyInit(0, 0, 0);
  PublicKeyCopy(0, 0);
  PublicKeyToRSA(0);
  VerifyData(0, 0, 0, 0);
  VerifyDigest(0, 0, 0);
  KeyBlockVerify(0, 0, 0, 0);
  VerifyFirmwarePreamble(0, 0, 0);
  VbGetFirmwarePreambleFlags(0);
  VerifyKernelPreamble(0, 0, 0);
  VbSharedDataInit(0, 0);
  VbSharedDataReserve(0, 0);
  VbSharedDataSetKernelKey(0, 0);

  VbNvSetup(0);
  VbNvGet(0, 0, 0);
  VbNvSet(0, 0, 0);
  VbNvTeardown(0);

  return 0;
}
