␉#define DBG(x...)␉msglog(x)␊ |
#endif␊ |
␊ |
// extern char gMacOSVersion[8];␊ |
␊ |
struct Module { ␊ |
␉struct Module *nextModule;␊ |
␉long willLoad;␊ |
|
␉␉␉␉}␊ |
␉␉␉}␊ |
␉␉}␊ |
␊ |
␉␉if(!gHaveKernelCache)␊ |
␉␉{␊ |
␉␉␉// Don't load main driver (from /System/Library/Extentions) if gHaveKernelCache is set.␊ |
|
␉␉␉}␊ |
␉␉␉else␊ |
␉␉␉{␊ |
␉␉␉␉verbose("Attempting to loading drivers from standard repositories:\n");␊ |
␉␉␉␉verbose("Attempting to load drivers from standard repositories:\n");␊ |
␊ |
␉␉␉␉if ( (gMacOSVersion[3] == '9') || ((gMacOSVersion[3] == '1') && ((gMacOSVersion[4] == '0') || (gMacOSVersion[4] == '1') || (gMacOSVersion[4] == '2') ) )) // issue 352␊ |
␉␉␉␉{␊ |
|
// LoadDriverPList␊ |
long LoadDriverPList( char *dirSpec, char *name, long bundleType )␊ |
{␊ |
␉long length, executablePathLength, bundlePathLength;␊ |
␉ModulePtr module;␊ |
␉TagPtr personalities;␊ |
␉char * buffer = 0;␊ |
␉char * tmpExecutablePath = 0;␊ |
␉char * tmpBundlePath = 0;␊ |
␉long ret = -1;␊ |
␉long␉␉length, executablePathLength, bundlePathLength;␊ |
␉ModulePtr␉module;␊ |
␉TagPtr␉␉personalities;␊ |
␉char␉␉*buffer = 0;␊ |
␉char␉␉*tmpExecutablePath = 0;␊ |
␉char␉␉*tmpBundlePath = 0;␊ |
␉long␉␉ret = -1;␊ |
␊ |
␉do{␊ |
␉// Save the driver path.␊ |
|
␊ |
␉␉␉if ((length != -1) && executableAddr)␊ |
␉␉␉{␊ |
//␉␉␉␉driverModuleAddr = (void *)kLoadAddr;␊ |
//␉␉␉␉if (length != 0)␊ |
//␉␉␉␉{␊ |
//␉␉␉␉␉ThinFatFile(&driverModuleAddr, &length);␊ |
//␉␉␉␉}␊ |
␊ |
␉␉␉␉// Make make in the image area.␊ |
␊ |
␉␉␉␉execute_hook("LoadMatchedModules", module, &length, executableAddr, NULL);␊ |
|
␉␉␉␉␉default:kernelOSVer = 0xA0A0500; break; //Last known kernel␊ |
␉␉␉␉}␊ |
␉␉␉␉break;␊ |
␉␉␉case 15:␊ |
␉␉␉case 15: /* El Capitan */␊ |
␉␉␉␉switch (gDarwinMinor)␊ |
␉␉␉␉{␊ |
␉␉␉␉␉case 0: kernelOSVer = 0xA0B0000; break;␊ |
|
␉␉␉␉␉default:kernelOSVer = 0xA0B0600; break; //Last known kernel (add here updates)␊ |
␉␉␉␉}␊ |
␉␉␉␉break;␊ |
␉␉␉case 16:␊ |
␉␉␉case 16: /* Sierra */␊ |
␉␉␉␉switch (gDarwinMinor)␊ |
␉␉␉␉{␊ |
␉␉␉␉␉case 0: kernelOSVer = 0xA0C0000; break;␊ |
|
␉␉␉␉break;␊ |
␉␉␉default:␊ |
␉␉␉␉kernelOSVer = 0xA0C0400;␊ |
␉␉␉␉break;␊ |
␉␉␉␉break; //Last known kernel is Sierra 10.12.4␊ |
␉␉␉}␊ |
␉␉}␊ |
␉␉else␊ |