long␉␉gBootMode; /* defaults to 0 == kBootModeNormal */␊ |
BVRef␉␉bvr, menuBVR, bvChain;␊ |
␊ |
static bool␉␉␉␉checkOSVersion(const char * version);␊ |
static void␉␉␉␉getOSVersion();␊ |
static unsigned long␉Adler32(unsigned char *buffer, long length);␊ |
//static void␉␉␉selectBiosDevice(void);␊ |
␊ |
|
␊ |
␉ret = GetFileInfo("/System/Library/", "Extensions", &flags, &exttime);␊ |
␉// Check if the S/L/E directory time is more recent than the cache file␊ |
␉if ((ret == 0) && ((flags & kFileTypeMask) == kFileTypeDirectory)␊ |
␉␉&& (exttime > cachetime))␊ |
␉if ((ret == 0) && ((flags & kFileTypeMask) == kFileTypeDirectory) && (exttime > cachetime))␊ |
␉{␊ |
␉␉DBG("Folder: '/System/Library/Extensions' is more recent than Kernel Cache file (%s)! Ignoring Kernel Cache.\n",␊ |
␉␉␉␉kernelCacheFile);␊ |
|
␉␉␉updateVRAM();␊ |
␉␉}␊ |
␊ |
␉␉// Find out which version mac os we're booting.␊ |
␉␉getOSVersion();␊ |
␊ |
␉␉if (platformCPUFeature(CPU_FEATURE_EM64T)) {␊ |
␉␉␉archCpuType = CPU_TYPE_X86_64;␊ |
␉␉} else {␊ |
|
␊ |
bool checkOSVersion(const char * version)␊ |
{␊ |
␉return ((gMacOSVersion[0] == version[0]) && (gMacOSVersion[1] == version[1])␊ |
␉␉␉&& (gMacOSVersion[2] == version[2]) && (gMacOSVersion[3] == version[3]));␊ |
␉if ( (sizeof(version) > 4) && (version[3] == '1') ) {␊ |
␉␉return ((gMacOSVersion[0] == version[0]) && (gMacOSVersion[1] == version[1])␊ |
␉␉&& (gMacOSVersion[2] == version[2]) && (gMacOSVersion[3] == version[3])␊ |
␉␉&& (gMacOSVersion[4] == version[4]));␊ |
␉} else {␊ |
␉␉return ((gMacOSVersion[0] == version[0]) && (gMacOSVersion[1] == version[1])␊ |
␉␉&& (gMacOSVersion[2] == version[2]) && (gMacOSVersion[3] == version[3]));␊ |
␉}␊ |
}␊ |
␊ |
static void getOSVersion()␊ |
{␊ |
␉strncpy(gMacOSVersion, gBootVolume->OSVersion, sizeof(gMacOSVersion));␊ |
}␊ |
␊ |
#define BASE 65521L /* largest prime smaller than 65536 */␊ |
#define NMAX 5000␊ |
// NMAX (was 5521) the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1␊ |