#ifndef __KXKEXT_H__
#define __KXKEXT_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <CoreFoundation/CoreFoundation.h>
typedef struct __KXKext * KXKextRef;
#include "KXKextManager.h"
#include "KXKextRepository.h"
typedef enum {
kKXKextLogLevelNone = 0,
kKXKextLogLevelBasic = 1,
kKXKextLogLevelDetails = 2
} KXKextLogLevel;
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 KXKextIsCompatibleWithVersionNumber(
KXKextRef aKext,
UInt32 version);
Boolean KXKextIsCompatibleWithVersionString(
KXKextRef aKext,
CFStringRef aVersionString);
Boolean KXKextHasPersonalities(KXKextRef aKext);
CFDictionaryRef KXKextCopyPersonalities(KXKextRef aKext);
CFArrayRef KXKextCopyPersonalitiesArray(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);
Boolean KXKextIsLoadable(KXKextRef aKext, Boolean safeBoot);
Boolean KXKextIsLoaded(KXKextRef aKext);
Boolean KXKextOtherVersionIsLoaded(KXKextRef aKext);
Boolean KXKextGetLoadFailed(KXKextRef aKext);
void KXKextSetLoadFailed(KXKextRef aKext, Boolean flag);
void KXKextPrintDiagnostics(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 kKXKextErrorKeyBundleIdentifierMismatch; extern const CFStringRef kKXKextErrorKeyBundleVersionMismatch; 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 kKXKextDependencyUnavailable;
extern const CFStringRef kKXKextDependencyNoCompatibleVersion;
extern const CFStringRef kKXKextDependencyCompatibleVersionUndeclared;
extern const CFStringRef kKXKextIndirectDependencyUnresolvable;
extern const CFStringRef kKXKextDependencyCircularReference;
#endif _KEXT_KEYS
#ifdef __cplusplus
}
#endif
#endif __KXKEXT_H__