#include <CoreFoundation/CFMachPort.h>
struct IONotificationPort
{
mach_port_t masterPort;
mach_port_t wakePort;
CFMachPortRef cfmachPort;
CFRunLoopSourceRef source;
dispatch_source_t dispatchSource;
};
typedef struct IONotificationPort IONotificationPort;
CFMutableDictionaryRef
IOMakeMatching(
mach_port_t masterPort,
unsigned int type,
unsigned int options,
void * args,
unsigned int argsSize );
void
IODispatchCalloutFromCFMessage(
CFMachPortRef port,
void *msg,
CFIndex size,
void *info );
kern_return_t
iokit_user_client_trap(
io_connect_t connect,
unsigned int index,
uintptr_t p1,
uintptr_t p2,
uintptr_t p3,
uintptr_t p4,
uintptr_t p5,
uintptr_t p6 );
kern_return_t
IOServiceGetState(
io_service_t service,
uint64_t * state );
kern_return_t
IOServiceGetBusyStateAndTime(
io_service_t service,
uint64_t * state,
uint32_t * busy_state,
uint64_t * accumulated_busy_time);
enum {
kIOServiceInactiveState = 0x00000001,
kIOServiceRegisteredState = 0x00000002,
kIOServiceMatchedState = 0x00000004,
kIOServiceFirstPublishState = 0x00000008,
kIOServiceFirstMatchState = 0x00000010
};