Files
Upsilon/bootloader/kernel_header.cpp

40 lines
737 B
C++

#include <bootloader/kernel_header.h>
namespace Bootloader {
const char * KernelHeader::version() const {
return m_version;
}
const char * KernelHeader::patchLevel() const {
return m_patchLevel;
}
const bool KernelHeader::isValid() const {
return m_header == Magic && m_footer == Magic;
}
const uint32_t* KernelHeader::stackPointer() const {
return m_stackPointer;
}
const void(*KernelHeader::startPointer() const)() {
return m_startPointer;
}
const bool KernelHeader::isNewVersion() const {
int sum = 0;
for (int i = 0; i < 2; i++) {
sum += m_version[i] * (5 - i);
}
char newVersion[] = "16";
int min = 0;
for (int i = 0; i < 2; i++) {
min += newVersion[i] * (5 - i);
}
return sum >= min;
}
}