#include <CoreFoundation/CFMachPort.h>
#if !__has_feature(objc_arc)
struct IONotificationPort
{
mach_port_t masterPort;
mach_port_t wakePort;
CFMachPortRef cfmachPort;
CFRunLoopSourceRef source;
dispatch_source_t dispatchSource;
int32_t refcount;
};
typedef struct IONotificationPort IONotificationPort;
#endif
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
};
kern_return_t
_IOServiceGetAuthorizationID(
io_service_t service,
uint64_t * authorizationID );
kern_return_t
_IOServiceSetAuthorizationID(
io_service_t service,
uint64_t authorizationID );
boolean_t
_IOObjectConformsTo(
io_object_t object,
const io_name_t className,
uint64_t options);
kern_return_t
_IOObjectGetClass(
io_object_t object,
uint64_t options,
io_name_t className);
CFStringRef
_IOObjectCopyClass(
io_object_t object,
uint64_t options);