Skip to content

Instantly share code, notes, and snippets.

@liamja
Forked from anonymous/OSReturnAsString.c
Last active December 24, 2015 21:38
Show Gist options
  • Save liamja/6866486 to your computer and use it in GitHub Desktop.
Save liamja/6866486 to your computer and use it in GitHub Desktop.
Log the return value of the Kext Manager in a human-readable form.
- (void)logKextManager:(OSReturn)osr
{
switch (osr) {
case kOSMetaClassDuplicateClass:
NSLog(@"A duplicate Libkern C++ classname was encountered during kext loading.");
break;
case kOSMetaClassHasInstances:
NSLog(@"A kext cannot be unloaded because there are instances derived from Libkern C++ classes that it defines.");
break;
case kOSMetaClassInstNoSuper:
NSLog(@"Internal error: No superclass can be found when constructing an instance of a Libkern C++ class.");
break;
case kOSMetaClassInternal:
NSLog(@"Internal OSMetaClass run-time error.");
break;
case kOSMetaClassNoDicts:
NSLog(@"Internal error: An allocation failure occurred registering Libkern C++ classes during kext loading.");
break;
case kOSMetaClassNoInit:
NSLog(@"Internal error: The Libkern C++ class registration system was not properly initialized during kext loading.");
break;
case kOSMetaClassNoInsKModSet:
NSLog(@"Internal error: An error occurred registering a specific Libkern C++ class during kext loading.");
break;
case kOSMetaClassNoKext:
NSLog(@"Internal error: The kext for a Libkern C++ class can't be found during kext loading.");
break;
case kOSMetaClassNoKModSet:
NSLog(@"Internal error: An allocation failure occurred registering Libkern C++ classes during kext loading.");
break;
case kOSMetaClassNoSuper:
NSLog(@"Internal error: No superclass can be found for a specific Libkern C++ class during kext loading.");
break;
case kOSMetaClassNoTempData:
NSLog(@"Internal error: An allocation failure occurred registering Libkern C++ classes during kext loading.");
break;
case kOSReturnError:
NSLog(@"Unspecified Libkern error. Not equal to KERN_FAILURE.");
break;
case kOSReturnSuccess:
NSLog(@"Operation successful. Equal to KERN_SUCCESS.");
break;
case -603947004:
NSLog(@"Root privileges required. Try running the command with 'sudo'.");
break;
case -603947002:
NSLog(@"Kext not loaded.");
break;
default:
NSLog(@"Unknown error unloading kext.");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment