Flutter Engine
IOKit.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // These declarations are an amalgamation of different headers whose
6 // symbols exist in IOKit.framework. The headers have been removed
7 // from the iOS SDKs but all the functions are documented here:
8 // * https://developer.apple.com/documentation/iokit/iokitlib_h?language=objc
9 // * https://developer.apple.com/documentation/iokit/iokit_functions?language=objc
10 // * file:///Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/IOKitLib.h
11 
12 #if FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG || \
13  FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_PROFILE
14 #ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_IOKIT_H_
15 #define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_IOKIT_H_
16 
17 #if defined(__cplusplus)
18 extern "C" {
19 #endif // defined(__cplusplus)
20 
21 #include <CoreFoundation/CoreFoundation.h>
22 #include <mach/mach.h>
23 #include <stdint.h>
24 
25 #define IOKIT
26 #include <device/device_types.h>
27 
28 static const char* kIOServicePlane = "IOService";
29 
30 typedef io_object_t io_registry_entry_t;
31 typedef io_object_t io_service_t;
32 typedef io_object_t io_connect_t;
33 typedef io_object_t io_iterator_t;
34 
35 enum {
37 };
38 
39 extern const mach_port_t kIOMasterPortDefault;
40 
41 kern_return_t IOObjectRetain(io_object_t object);
42 kern_return_t IOObjectRelease(io_object_t object);
43 boolean_t IOObjectConformsTo(io_object_t object, const io_name_t name);
44 uint32_t IOObjectGetKernelRetainCount(io_object_t object);
45 kern_return_t IOObjectGetClass(io_object_t object, io_name_t name);
46 CFStringRef IOObjectCopyClass(io_object_t object);
47 CFStringRef IOObjectCopySuperclassForClass(CFStringRef name);
48 CFStringRef IOObjectCopyBundleIdentifierForClass(CFStringRef name);
49 
50 io_registry_entry_t IORegistryGetRootEntry(mach_port_t master);
51 kern_return_t IORegistryEntryGetName(io_registry_entry_t entry, io_name_t name);
52 kern_return_t IORegistryEntryGetRegistryEntryID(io_registry_entry_t entry,
53  uint64_t* entryID);
54 kern_return_t IORegistryEntryGetPath(io_registry_entry_t entry,
55  const io_name_t plane,
56  io_string_t path);
57 kern_return_t IORegistryEntryGetProperty(io_registry_entry_t entry,
58  const io_name_t name,
59  io_struct_inband_t buffer,
60  uint32_t* size);
62  io_registry_entry_t entry,
63  CFMutableDictionaryRef* properties,
64  CFAllocatorRef allocator,
65  uint32_t options);
66 CFTypeRef IORegistryEntryCreateCFProperty(io_registry_entry_t entry,
67  CFStringRef key,
68  CFAllocatorRef allocator,
69  uint32_t options);
70 kern_return_t IORegistryEntrySetCFProperties(io_registry_entry_t entry,
71  CFTypeRef properties);
72 
73 kern_return_t IORegistryCreateIterator(mach_port_t master,
74  const io_name_t plane,
75  uint32_t options,
76  io_iterator_t* it);
77 kern_return_t IORegistryEntryCreateIterator(io_registry_entry_t entry,
78  const io_name_t plane,
79  uint32_t options,
80  io_iterator_t* it);
81 kern_return_t IORegistryEntryGetChildIterator(io_registry_entry_t entry,
82  const io_name_t plane,
83  io_iterator_t* it);
84 kern_return_t IORegistryEntryGetParentIterator(io_registry_entry_t entry,
85  const io_name_t plane,
86  io_iterator_t* it);
87 io_object_t IOIteratorNext(io_iterator_t it);
88 boolean_t IOIteratorIsValid(io_iterator_t it);
89 void IOIteratorReset(io_iterator_t it);
90 
91 CFMutableDictionaryRef IOServiceMatching(const char* name) CF_RETURNS_RETAINED;
92 CFMutableDictionaryRef IOServiceNameMatching(const char* name)
93  CF_RETURNS_RETAINED;
94 io_service_t IOServiceGetMatchingService(mach_port_t master,
95  CFDictionaryRef matching
96  CF_RELEASES_ARGUMENT);
97 kern_return_t IOServiceGetMatchingServices(mach_port_t master,
98  CFDictionaryRef matching
99  CF_RELEASES_ARGUMENT,
100  io_iterator_t* it);
101 
102 #if __cplusplus
103 }
104 #endif // __cplusplus
105 
106 #endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_IOKIT_H_
107 #endif // defined(FLUTTER_RUNTIME_MODE_DEBUG) ||
108  // defined(FLUTTER_RUNTIME_MODE_PROFILE)
DEF_SWITCHES_START snapshot asset path
Definition: switches.h:32
boolean_t IOObjectConformsTo(io_object_t object, const io_name_t name)
const mach_port_t kIOMasterPortDefault
CFStringRef IOObjectCopySuperclassForClass(CFStringRef name)
kern_return_t IORegistryEntryCreateCFProperties(io_registry_entry_t entry, CFMutableDictionaryRef *properties, CFAllocatorRef allocator, uint32_t options)
io_service_t IOServiceGetMatchingService(mach_port_t master, CFDictionaryRef matching CF_RELEASES_ARGUMENT)
kern_return_t IORegistryEntryGetRegistryEntryID(io_registry_entry_t entry, uint64_t *entryID)
constexpr std::size_t size(T(&array)[N])
Definition: size.h:13
kern_return_t IORegistryEntryGetParentIterator(io_registry_entry_t entry, const io_name_t plane, io_iterator_t *it)
kern_return_t IORegistryEntryGetName(io_registry_entry_t entry, io_name_t name)
kern_return_t IOServiceGetMatchingServices(mach_port_t master, CFDictionaryRef matching CF_RELEASES_ARGUMENT, io_iterator_t *it)
io_registry_entry_t IORegistryGetRootEntry(mach_port_t master)
static const char * kIOServicePlane
Definition: IOKit.h:28
uint32_t IOObjectGetKernelRetainCount(io_object_t object)
kern_return_t IORegistryEntryGetChildIterator(io_registry_entry_t entry, const io_name_t plane, io_iterator_t *it)
io_object_t io_iterator_t
Definition: IOKit.h:33
CFStringRef IOObjectCopyBundleIdentifierForClass(CFStringRef name)
kern_return_t IORegistryCreateIterator(mach_port_t master, const io_name_t plane, uint32_t options, io_iterator_t *it)
kern_return_t IORegistryEntryCreateIterator(io_registry_entry_t entry, const io_name_t plane, uint32_t options, io_iterator_t *it)
CFMutableDictionaryRef IOServiceNameMatching(const char *name) CF_RETURNS_RETAINED
kern_return_t IORegistryEntryGetPath(io_registry_entry_t entry, const io_name_t plane, io_string_t path)
CFTypeRef IORegistryEntryCreateCFProperty(io_registry_entry_t entry, CFStringRef key, CFAllocatorRef allocator, uint32_t options)
kern_return_t IOObjectRelease(io_object_t object)
kern_return_t IOObjectGetClass(io_object_t object, io_name_t name)
io_object_t io_service_t
Definition: IOKit.h:31
CFMutableDictionaryRef IOServiceMatching(const char *name) CF_RETURNS_RETAINED
kern_return_t IORegistryEntrySetCFProperties(io_registry_entry_t entry, CFTypeRef properties)
kern_return_t IOObjectRetain(io_object_t object)
CFStringRef IOObjectCopyClass(io_object_t object)
kern_return_t IORegistryEntryGetProperty(io_registry_entry_t entry, const io_name_t name, io_struct_inband_t buffer, uint32_t *size)
io_object_t IOIteratorNext(io_iterator_t it)
boolean_t IOIteratorIsValid(io_iterator_t it)
const char * name
Definition: fuchsia.cc:50
void IOIteratorReset(io_iterator_t it)
io_object_t io_connect_t
Definition: IOKit.h:32
io_object_t io_registry_entry_t
Definition: IOKit.h:30