#if !__LP64__
#ifndef __KXKEXT_H__
#define __KXKEXT_H__
#include <sys/cdefs.h>
__BEGIN_DECLS
#include <mach/mach.h>
#include <mach/kmod.h>
#include <mach-o/kld.h>
#include <mach-o/fat.h>
#include <CoreFoundation/CoreFoundation.h>
typedef struct __KXKext * KXKextRef;
#include "KXKextManager.h"
#include "KXKextRepository.h"
typedef enum {
kKXKextLogLevelNone = 0,
kKXKextLogLevelBasic = 1,
kKXKextLogLevelDetails = 2
} KXKextLogLevel;
typedef enum {
kKXKextIntegrityUnknown = 0,
kKXKextIntegrityCorrect,
kKXKextIntegrityKextIsModified,
kKXKextIntegrityNoReceipt,
kKXKextIntegrityNotApple
} KXKextIntegrityState;
CFTypeID KXKextGetTypeID(void);
CFBundleRef KXKextGetBundle(KXKextRef aKext);
CFDictionaryRef KXKextGetInfoDictionary(KXKextRef aKext);
Boolean KXKextIsFromCache(KXKextRef aKext);
KXKextRepositoryRef KXKextGetRepository(KXKextRef aKext);
KXKextManagerRef KXKextGetManager(KXKextRef aKext);
KXKextRef KXKextGetPriorVersionKext(KXKextRef aKext);
KXKextRef KXKextGetDuplicateVersionKext(KXKextRef aKext);
CFStringRef KXKextGetBundlePathInRepository(KXKextRef aKext);
CFStringRef KXKextGetBundleDirectoryName(KXKextRef aKext);
CFStringRef KXKextCopyAbsolutePath(KXKextRef aKext);
CFURLRef KXKextGetAbsoluteURL(KXKextRef aKext);
Boolean KXKextGetIsKernelResource(KXKextRef aKext);
Boolean KXKextGetDeclaresExecutable(KXKextRef aKext);
CFArrayRef KXKextGetPlugins(KXKextRef aKext);
Boolean KXKextIsAPlugin(KXKextRef aKext);
KXKextRef KXKextGetContainerForPluginKext(KXKextRef aKext);
Boolean KXKextIsValid(KXKextRef aKext);
CFMutableDictionaryRef KXKextGetValidationFailures(KXKextRef aKext);
Boolean KXKextHasDebugProperties(KXKextRef aKext);
Boolean KXKextIsEligibleDuringSafeBoot(KXKextRef aKext);
Boolean KXKextIsEnabled(KXKextRef aKext);
CFStringRef KXKextGetBundleIdentifier(KXKextRef aKext);
CFDictionaryRef KXKextGetBundleLibraryVersions(KXKextRef aKext);
Boolean KXKextIsCompatibleWithVersionString(
KXKextRef aKext,
CFStringRef aVersionString);
Boolean KXKextHasPersonalities(KXKextRef aKext);
CFDictionaryRef KXKextCopyPersonalities(KXKextRef aKext);
CFArrayRef KXKextCopyPersonalitiesArray(KXKextRef aKext);
KXKextIntegrityState KXKextGetIntegrityState(KXKextRef aKext);
Boolean KXKextHasBeenAuthenticated(KXKextRef aKext);
KXKextManagerError KXKextAuthenticate(KXKextRef aKext);
KXKextManagerError KXKextMarkAuthentic(KXKextRef aKext);
Boolean KXKextIsAuthentic(KXKextRef aKext);
CFMutableDictionaryRef KXKextGetAuthenticationFailures(KXKextRef aKext);
KXKextManagerError KXKextResolveDependencies(KXKextRef aKext);
Boolean KXKextGetHasAllDependencies(KXKextRef aKext);
CFArrayRef KXKextGetDirectDependencies(KXKextRef aKext);
CFDictionaryRef KXKextGetMissingDependencyErrors(KXKextRef aKext);
CFMutableArrayRef KXKextCopyAllDependencies(KXKextRef aKext);
CFMutableArrayRef KXKextCopyIndirectDependencies(KXKextRef aKext);
CFMutableArrayRef KXKextCopyAllDependents(KXKextRef aKext);
CFMutableDictionaryRef KXKextGetWarnings(KXKextRef aKext);
Boolean KXKextSupportsHostArchitecture(KXKextRef aKext);
Boolean KXKextIsLoadable(KXKextRef aKext, Boolean safeBoot);
Boolean KXKextIsLoaded(KXKextRef aKext);
Boolean KXKextOtherVersionIsLoaded(KXKextRef aKext);
vm_address_t KXKextGetStartAddress(KXKextRef aKext);
Boolean KXKextGetLoadFailed(KXKextRef aKext);
void KXKextSetLoadFailed(KXKextRef aKext, Boolean flag);
void KXKextPrintDiagnostics(KXKextRef aKext, FILE * stream);
void KXKextPrintWarnings(KXKextRef aKext, FILE * stream);
#if 0
KXKextManagerError KXKextSetEnabled(KXKextRef aKext, Boolean flag);
#endif 0
#ifndef _KEXT_KEYS
extern const CFStringRef kKXKextErrorKeyFileAccess;
extern const CFStringRef kKXKextErrorKeyBundleNotInRepository;
extern const CFStringRef kKXKextErrorKeyNotABundle;
extern const CFStringRef kKXKextErrorKeyNotAKextBundle;
extern const CFStringRef kKXKextErrorKeyBadPropertyList;
extern const CFStringRef kKXKextErrorKeyMissingProperty;
extern const CFStringRef kKXKextErrorKeyPropertyIsIllegalType;
extern const CFStringRef kKXKextErrorKeyPropertyIsIllegalValue;
extern const CFStringRef kKXKextErrorKeyIdentifierOrVersionTooLong;
extern const CFStringRef kKXKextErrorKeyPersonalitiesNotNested;
extern const CFStringRef kKXKextErrorKeyMissingExecutable;
extern const CFStringRef kKXKextErrorKeyCompatibleVersionLaterThanVersion;
extern const CFStringRef kKXKextErrorKeyExecutableBad;
extern const CFStringRef kKXKextErrorKeyExecutableBadArch;
extern const CFStringRef kKXKextErrorKeyStatFailure;
extern const CFStringRef kKXKextErrorKeyFileNotFound;
extern const CFStringRef kKXKextErrorKeyOwnerPermission;
extern const CFStringRef kKXKextErrorKeyChecksum;
extern const CFStringRef kKXKextErrorKeySignature;
extern const CFStringRef kKXKextErrorKeyDependenciesUnresolvable;
extern const CFStringRef kKXKextErrorKeyNonuniqueIOResourcesMatch;
extern const CFStringRef kKXKextErrorKeyNoExplicitKernelDependency;
extern const CFStringRef kKXKextErrorKeyBundleIdentifierMismatch; extern const CFStringRef kKXKextErrorKeyBundleVersionMismatch;
extern const CFStringRef kKXKextErrorKeyDeclaresBothKernelAndKPIDependencies;
extern const CFStringRef kKXKextDependencyUnavailable;
extern const CFStringRef kKXKextDependencyNoCompatibleVersion;
extern const CFStringRef kKXKextDependencyCompatibleVersionUndeclared;
extern const CFStringRef kKXKextIndirectDependencyUnresolvable;
extern const CFStringRef kKXKextDependencyCircularReference;
#endif _KEXT_KEYS
__END_DECLS
#endif __KXKEXT_H__
#endif // !__LP64__