KextAuditUserClient.h [plain text]
#ifndef _KEXT_AUDIT_USER_CLIENT_H_
#define _KEXT_AUDIT_USER_CLIENT_H_
#include <IOKit/IOLib.h>
#include <IOKit/IOUserClient.h>
#include "KextAudit.h"
#define VALID_KEXT_LOADTYPE(loadType) \
((loadType) == kKALTKextCDHashSha1 || \
(loadType) == kKALTKextCDHashSha256)
enum KextAuditBridgeDeviceType {
kKextAuditBridgeDeviceTypeNoCoprocessor = 0x00000000,
kKextAuditBridgeDeviceTypeT208 = 0x00010000,
kKextAuditBridgeDeviceTypeT290 = 0x00020000,
};
class KextAuditUserClient : public IOUserClient
{
OSDeclareDefaultStructors(KextAuditUserClient);
private:
task_t fTask;
KextAudit *fProvider;
bool fUserClientHasEntitlement;
KextAuditBridgeDeviceType fDeviceType;
public:
virtual IOReturn clientClose(void) override;
virtual bool initWithTask(task_t owningTask, void *security_id, UInt32 type,
OSDictionary *properties) override;
virtual bool start(IOService *provider) override;
virtual void stop(IOService *provider) override;
virtual void free(void) override;
IOReturn externalMethod(uint32_t selector, IOExternalMethodArguments *arguments,
IOExternalMethodDispatch *dispatch, OSObject *target,
void *reference) override;
KextAuditBridgeDeviceType getBridgeDeviceType(void);
};
#endif