#include "libxiphos.h"

#include "CoreController.h"

bool rebootWasCalled = false;
xsc_libnor_chip_t lastChip;
xsc_libnor_copy_t lastCopy;

bool getRebootWasCalled(xsc_libnor_chip_t& tgtChip, xsc_libnor_copy_t& tgtCopy) {
  tgtChip = lastChip;
  tgtCopy = lastCopy;
  bool tmp = rebootWasCalled;
  if (rebootWasCalled) {
    rebootWasCalled = false;
  }
  return tmp;
}

void xsc_boot_copy(xsc_libnor_chip_t boot_chip, xsc_libnor_copy_t boot_copy) {
  rebootWasCalled = true;
  lastChip = boot_chip;
  lastCopy = boot_copy;
  CoreController::setCurrentBootCopy(static_cast<xsc::Chip>(boot_chip),
                                     static_cast<xsc::Copy>(boot_copy));
}