-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathIOKitLibPrivate.h
More file actions
144 lines (122 loc) · 3.75 KB
/
IOKitLibPrivate.h
File metadata and controls
144 lines (122 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/*
* Copyright (c) 2008-2014 Apple Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apple Public Source License
* Version 2.0 (the 'License'). You may not use this file except in
* compliance with the License. Please obtain a copy of the License at
* http://www.opensource.apple.com/apsl/ and read it before using this
* file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
* Please see the License for the specific language governing rights and
* limitations under the License.
*
* @APPLE_LICENSE_HEADER_END@
*/
#ifndef _IOKIT_IOKITLIBPRIVATE_H
#define _IOKIT_IOKITLIBPRIVATE_H
#include <sys/cdefs.h>
#include <CoreFoundation/CFMachPort.h>
__BEGIN_DECLS
#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);
// masks for getState()
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);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* IOKit.framework versions of the API's in IOService.iig
*
* see IOService.iig IOService::CopySystemStateNotificationService()
*/
kern_return_t
IOServiceCopySystemStateNotificationService(
mach_port_t masterPort,
io_service_t * service);
/*
* see IOService.iig IOService::StateNotificationItemCreate()
*/
kern_return_t
IOServiceStateNotificationItemCreate(io_service_t service, CFStringRef itemName, CFDictionaryRef value);
/*
* see IOService.iig IOService::StateNotificationItemSet()
*/
kern_return_t
IOServiceStateNotificationItemSet(io_service_t service, CFStringRef itemName, CFDictionaryRef value);
/*
* see IOService.iig IOService::StateNotificationItemCopy()
*/
kern_return_t
IOServiceStateNotificationItemCopy(io_service_t service, CFStringRef itemName, CFDictionaryRef * value);
__END_DECLS
#endif /* ! _IOKIT_IOKITLIBPRIVATE_H */