f9fcc7adab
date: 2026-06-28T09:48:35 master commit: da6313dbe95b3f24bb5d8018b0e5f950f5823ca7
276 lines
23 KiB
Python
276 lines
23 KiB
Python
# mypy: disable-error-code="empty-body"
|
|
from __future__ import annotations
|
|
import ctypes
|
|
from typing import Literal, TypeAlias
|
|
from tinygrad.runtime.support.c import _IO, _IOW, _IOR, _IOWR
|
|
from tinygrad.runtime.support import c
|
|
dll = c.DLL('iokit', 'IOKit')
|
|
class struct_IONotificationPort(c.Struct): pass
|
|
IONotificationPortRef: TypeAlias = c.POINTER[struct_IONotificationPort]
|
|
IOServiceMatchingCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_uint32]]
|
|
IOServiceInterestCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_void_p]]
|
|
mach_port_t: TypeAlias = ctypes.c_uint32
|
|
try: kIOMainPortDefault = mach_port_t.in_dll(dll, 'kIOMainPortDefault') # type: ignore
|
|
except (ValueError,AttributeError): pass
|
|
kern_return_t: TypeAlias = ctypes.c_int32
|
|
@dll.bind(kern_return_t, mach_port_t, c.POINTER[mach_port_t])
|
|
def IOMainPort(bootstrapPort:mach_port_t, mainPort:c.POINTER[mach_port_t]) -> kern_return_t: ...
|
|
try: kIOMasterPortDefault = mach_port_t.in_dll(dll, 'kIOMasterPortDefault') # type: ignore
|
|
except (ValueError,AttributeError): pass
|
|
@dll.bind(kern_return_t, mach_port_t, c.POINTER[mach_port_t])
|
|
def IOMasterPort(bootstrapPort:mach_port_t, mainPort:c.POINTER[mach_port_t]) -> kern_return_t: ...
|
|
@dll.bind(IONotificationPortRef, mach_port_t)
|
|
def IONotificationPortCreate(mainPort:mach_port_t) -> IONotificationPortRef: ...
|
|
@dll.bind(None, IONotificationPortRef)
|
|
def IONotificationPortDestroy(notify:IONotificationPortRef) -> None: ...
|
|
class struct___CFRunLoopSource(c.Struct): pass
|
|
CFRunLoopSourceRef: TypeAlias = c.POINTER[struct___CFRunLoopSource]
|
|
@dll.bind(CFRunLoopSourceRef, IONotificationPortRef)
|
|
def IONotificationPortGetRunLoopSource(notify:IONotificationPortRef) -> CFRunLoopSourceRef: ...
|
|
@dll.bind(mach_port_t, IONotificationPortRef)
|
|
def IONotificationPortGetMachPort(notify:IONotificationPortRef) -> mach_port_t: ...
|
|
@dll.bind(kern_return_t, IONotificationPortRef)
|
|
def IONotificationPortSetImportanceReceiver(notify:IONotificationPortRef) -> kern_return_t: ...
|
|
class struct_dispatch_queue_s(c.Struct): pass
|
|
dispatch_queue_t: TypeAlias = c.POINTER[struct_dispatch_queue_s]
|
|
@dll.bind(None, IONotificationPortRef, dispatch_queue_t)
|
|
def IONotificationPortSetDispatchQueue(notify:IONotificationPortRef, queue:dispatch_queue_t) -> None: ...
|
|
@c.record
|
|
class mach_msg_header_t(c.Struct):
|
|
SIZE = 24
|
|
msgh_bits: int
|
|
msgh_size: int
|
|
msgh_remote_port: int
|
|
msgh_local_port: int
|
|
msgh_voucher_port: int
|
|
msgh_id: int
|
|
mach_msg_bits_t: TypeAlias = ctypes.c_uint32
|
|
mach_msg_size_t: TypeAlias = ctypes.c_uint32
|
|
mach_port_name_t: TypeAlias = ctypes.c_uint32
|
|
mach_msg_id_t: TypeAlias = ctypes.c_int32
|
|
mach_msg_header_t.register_fields([('msgh_bits', mach_msg_bits_t, 0), ('msgh_size', mach_msg_size_t, 4), ('msgh_remote_port', mach_port_t, 8), ('msgh_local_port', mach_port_t, 12), ('msgh_voucher_port', mach_port_name_t, 16), ('msgh_id', mach_msg_id_t, 20)])
|
|
@dll.bind(None, ctypes.c_void_p, c.POINTER[mach_msg_header_t], ctypes.c_void_p)
|
|
def IODispatchCalloutFromMessage(unused:ctypes.c_void_p, msg:c.POINTER[mach_msg_header_t], reference:ctypes.c_void_p) -> None: ...
|
|
uint32_t: TypeAlias = ctypes.c_uint32
|
|
@dll.bind(kern_return_t, uint32_t, c.POINTER[mach_port_t])
|
|
def IOCreateReceivePort(msgType:uint32_t, recvPort:c.POINTER[mach_port_t]) -> kern_return_t: ...
|
|
io_object_t: TypeAlias = ctypes.c_uint32
|
|
@dll.bind(kern_return_t, io_object_t)
|
|
def IOObjectRelease(object:io_object_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_object_t)
|
|
def IOObjectRetain(object:io_object_t) -> kern_return_t: ...
|
|
io_name_t: TypeAlias = c.Array[ctypes.c_char, Literal[128]]
|
|
@dll.bind(kern_return_t, io_object_t, io_name_t)
|
|
def IOObjectGetClass(object:io_object_t, className:io_name_t) -> kern_return_t: ...
|
|
class struct___CFString(c.Struct): pass
|
|
CFStringRef: TypeAlias = c.POINTER[struct___CFString]
|
|
@dll.bind(CFStringRef, io_object_t)
|
|
def IOObjectCopyClass(object:io_object_t) -> CFStringRef: ...
|
|
@dll.bind(CFStringRef, CFStringRef)
|
|
def IOObjectCopySuperclassForClass(classname:CFStringRef) -> CFStringRef: ...
|
|
@dll.bind(CFStringRef, CFStringRef)
|
|
def IOObjectCopyBundleIdentifierForClass(classname:CFStringRef) -> CFStringRef: ...
|
|
boolean_t: TypeAlias = ctypes.c_int32
|
|
@dll.bind(boolean_t, io_object_t, io_name_t)
|
|
def IOObjectConformsTo(object:io_object_t, className:io_name_t) -> boolean_t: ...
|
|
@dll.bind(boolean_t, io_object_t, io_object_t)
|
|
def IOObjectIsEqualTo(object:io_object_t, anObject:io_object_t) -> boolean_t: ...
|
|
@dll.bind(uint32_t, io_object_t)
|
|
def IOObjectGetKernelRetainCount(object:io_object_t) -> uint32_t: ...
|
|
@dll.bind(uint32_t, io_object_t)
|
|
def IOObjectGetUserRetainCount(object:io_object_t) -> uint32_t: ...
|
|
@dll.bind(uint32_t, io_object_t)
|
|
def IOObjectGetRetainCount(object:io_object_t) -> uint32_t: ...
|
|
io_iterator_t: TypeAlias = ctypes.c_uint32
|
|
@dll.bind(io_object_t, io_iterator_t)
|
|
def IOIteratorNext(iterator:io_iterator_t) -> io_object_t: ...
|
|
@dll.bind(None, io_iterator_t)
|
|
def IOIteratorReset(iterator:io_iterator_t) -> None: ...
|
|
@dll.bind(boolean_t, io_iterator_t)
|
|
def IOIteratorIsValid(iterator:io_iterator_t) -> boolean_t: ...
|
|
io_service_t: TypeAlias = ctypes.c_uint32
|
|
class struct___CFDictionary(c.Struct): pass
|
|
CFDictionaryRef: TypeAlias = c.POINTER[struct___CFDictionary]
|
|
@dll.bind(io_service_t, mach_port_t, CFDictionaryRef)
|
|
def IOServiceGetMatchingService(mainPort:mach_port_t, matching:CFDictionaryRef) -> io_service_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, CFDictionaryRef, c.POINTER[io_iterator_t])
|
|
def IOServiceGetMatchingServices(mainPort:mach_port_t, matching:CFDictionaryRef, existing:c.POINTER[io_iterator_t]) -> kern_return_t: ...
|
|
uintptr_t: TypeAlias = ctypes.c_uint64
|
|
@dll.bind(kern_return_t, mach_port_t, io_name_t, CFDictionaryRef, mach_port_t, uintptr_t, c.POINTER[io_iterator_t])
|
|
def IOServiceAddNotification(mainPort:mach_port_t, notificationType:io_name_t, matching:CFDictionaryRef, wakePort:mach_port_t, reference:uintptr_t, notification:c.POINTER[io_iterator_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, IONotificationPortRef, io_name_t, CFDictionaryRef, IOServiceMatchingCallback, ctypes.c_void_p, c.POINTER[io_iterator_t])
|
|
def IOServiceAddMatchingNotification(notifyPort:IONotificationPortRef, notificationType:io_name_t, matching:CFDictionaryRef, callback:IOServiceMatchingCallback, refCon:ctypes.c_void_p, notification:c.POINTER[io_iterator_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, IONotificationPortRef, io_service_t, io_name_t, IOServiceInterestCallback, ctypes.c_void_p, c.POINTER[io_object_t])
|
|
def IOServiceAddInterestNotification(notifyPort:IONotificationPortRef, service:io_service_t, interestType:io_name_t, callback:IOServiceInterestCallback, refCon:ctypes.c_void_p, notification:c.POINTER[io_object_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_service_t, CFDictionaryRef, c.POINTER[boolean_t])
|
|
def IOServiceMatchPropertyTable(service:io_service_t, matching:CFDictionaryRef, matches:c.POINTER[boolean_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_service_t, c.POINTER[uint32_t])
|
|
def IOServiceGetBusyState(service:io_service_t, busyState:c.POINTER[uint32_t]) -> kern_return_t: ...
|
|
@c.record
|
|
class struct_mach_timespec(c.Struct):
|
|
SIZE = 8
|
|
tv_sec: int
|
|
tv_nsec: int
|
|
mach_timespec_t: TypeAlias = struct_mach_timespec
|
|
clock_res_t: TypeAlias = ctypes.c_int32
|
|
struct_mach_timespec.register_fields([('tv_sec', ctypes.c_uint32, 0), ('tv_nsec', clock_res_t, 4)])
|
|
@dll.bind(kern_return_t, io_service_t, c.POINTER[mach_timespec_t])
|
|
def IOServiceWaitQuiet(service:io_service_t, waitTime:c.POINTER[mach_timespec_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, c.POINTER[uint32_t])
|
|
def IOKitGetBusyState(mainPort:mach_port_t, busyState:c.POINTER[uint32_t]) -> kern_return_t: ...
|
|
IOOptionBits: TypeAlias = ctypes.c_uint32
|
|
@dll.bind(kern_return_t, mach_port_t, c.POINTER[mach_timespec_t], IOOptionBits)
|
|
def IOKitWaitQuietWithOptions(mainPort:mach_port_t, waitTime:c.POINTER[mach_timespec_t], options:IOOptionBits) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, c.POINTER[mach_timespec_t])
|
|
def IOKitWaitQuiet(mainPort:mach_port_t, waitTime:c.POINTER[mach_timespec_t]) -> kern_return_t: ...
|
|
task_port_t: TypeAlias = ctypes.c_uint32
|
|
io_connect_t: TypeAlias = ctypes.c_uint32
|
|
@dll.bind(kern_return_t, io_service_t, task_port_t, uint32_t, c.POINTER[io_connect_t])
|
|
def IOServiceOpen(service:io_service_t, owningTask:task_port_t, type:uint32_t, connect:c.POINTER[io_connect_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_service_t, uint32_t)
|
|
def IOServiceRequestProbe(service:io_service_t, options:uint32_t) -> kern_return_t: ...
|
|
_anonenum0: dict[int, str] = {(kIOServiceInteractionAllowed:=1): 'kIOServiceInteractionAllowed'}
|
|
@dll.bind(kern_return_t, io_service_t, uint32_t)
|
|
def IOServiceAuthorize(service:io_service_t, options:uint32_t) -> kern_return_t: ...
|
|
@dll.bind(ctypes.c_int32, io_service_t, ctypes.c_int32)
|
|
def IOServiceOpenAsFileDescriptor(service:io_service_t, oflag:int) -> int: ...
|
|
@dll.bind(kern_return_t, io_connect_t)
|
|
def IOServiceClose(connect:io_connect_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t)
|
|
def IOConnectAddRef(connect:io_connect_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t)
|
|
def IOConnectRelease(connect:io_connect_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, c.POINTER[io_service_t])
|
|
def IOConnectGetService(connect:io_connect_t, service:c.POINTER[io_service_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, mach_port_t, uintptr_t)
|
|
def IOConnectSetNotificationPort(connect:io_connect_t, type:uint32_t, port:mach_port_t, reference:uintptr_t) -> kern_return_t: ...
|
|
mach_vm_address_t: TypeAlias = ctypes.c_uint64
|
|
mach_vm_size_t: TypeAlias = ctypes.c_uint64
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, task_port_t, c.POINTER[mach_vm_address_t], c.POINTER[mach_vm_size_t], IOOptionBits)
|
|
def IOConnectMapMemory(connect:io_connect_t, memoryType:uint32_t, intoTask:task_port_t, atAddress:c.POINTER[mach_vm_address_t], ofSize:c.POINTER[mach_vm_size_t], options:IOOptionBits) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, task_port_t, c.POINTER[mach_vm_address_t], c.POINTER[mach_vm_size_t], IOOptionBits)
|
|
def IOConnectMapMemory64(connect:io_connect_t, memoryType:uint32_t, intoTask:task_port_t, atAddress:c.POINTER[mach_vm_address_t], ofSize:c.POINTER[mach_vm_size_t], options:IOOptionBits) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, task_port_t, mach_vm_address_t)
|
|
def IOConnectUnmapMemory(connect:io_connect_t, memoryType:uint32_t, fromTask:task_port_t, atAddress:mach_vm_address_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, task_port_t, mach_vm_address_t)
|
|
def IOConnectUnmapMemory64(connect:io_connect_t, memoryType:uint32_t, fromTask:task_port_t, atAddress:mach_vm_address_t) -> kern_return_t: ...
|
|
CFTypeRef: TypeAlias = ctypes.c_void_p
|
|
@dll.bind(kern_return_t, io_connect_t, CFTypeRef)
|
|
def IOConnectSetCFProperties(connect:io_connect_t, properties:CFTypeRef) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, CFStringRef, CFTypeRef)
|
|
def IOConnectSetCFProperty(connect:io_connect_t, propertyName:CFStringRef, property:CFTypeRef) -> kern_return_t: ...
|
|
uint64_t: TypeAlias = ctypes.c_uint64
|
|
size_t: TypeAlias = ctypes.c_uint64
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, c.POINTER[uint64_t], uint32_t, ctypes.c_void_p, size_t, c.POINTER[uint64_t], c.POINTER[uint32_t], ctypes.c_void_p, c.POINTER[size_t])
|
|
def IOConnectCallMethod(connection:mach_port_t, selector:uint32_t, input:c.POINTER[uint64_t], inputCnt:uint32_t, inputStruct:ctypes.c_void_p, inputStructCnt:size_t, output:c.POINTER[uint64_t], outputCnt:c.POINTER[uint32_t], outputStruct:ctypes.c_void_p, outputStructCnt:c.POINTER[size_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, mach_port_t, c.POINTER[uint64_t], uint32_t, c.POINTER[uint64_t], uint32_t, ctypes.c_void_p, size_t, c.POINTER[uint64_t], c.POINTER[uint32_t], ctypes.c_void_p, c.POINTER[size_t])
|
|
def IOConnectCallAsyncMethod(connection:mach_port_t, selector:uint32_t, wake_port:mach_port_t, reference:c.POINTER[uint64_t], referenceCnt:uint32_t, input:c.POINTER[uint64_t], inputCnt:uint32_t, inputStruct:ctypes.c_void_p, inputStructCnt:size_t, output:c.POINTER[uint64_t], outputCnt:c.POINTER[uint32_t], outputStruct:ctypes.c_void_p, outputStructCnt:c.POINTER[size_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, ctypes.c_void_p, size_t, ctypes.c_void_p, c.POINTER[size_t])
|
|
def IOConnectCallStructMethod(connection:mach_port_t, selector:uint32_t, inputStruct:ctypes.c_void_p, inputStructCnt:size_t, outputStruct:ctypes.c_void_p, outputStructCnt:c.POINTER[size_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, mach_port_t, c.POINTER[uint64_t], uint32_t, ctypes.c_void_p, size_t, ctypes.c_void_p, c.POINTER[size_t])
|
|
def IOConnectCallAsyncStructMethod(connection:mach_port_t, selector:uint32_t, wake_port:mach_port_t, reference:c.POINTER[uint64_t], referenceCnt:uint32_t, inputStruct:ctypes.c_void_p, inputStructCnt:size_t, outputStruct:ctypes.c_void_p, outputStructCnt:c.POINTER[size_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, c.POINTER[uint64_t], uint32_t, c.POINTER[uint64_t], c.POINTER[uint32_t])
|
|
def IOConnectCallScalarMethod(connection:mach_port_t, selector:uint32_t, input:c.POINTER[uint64_t], inputCnt:uint32_t, output:c.POINTER[uint64_t], outputCnt:c.POINTER[uint32_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, mach_port_t, c.POINTER[uint64_t], uint32_t, c.POINTER[uint64_t], uint32_t, c.POINTER[uint64_t], c.POINTER[uint32_t])
|
|
def IOConnectCallAsyncScalarMethod(connection:mach_port_t, selector:uint32_t, wake_port:mach_port_t, reference:c.POINTER[uint64_t], referenceCnt:uint32_t, input:c.POINTER[uint64_t], inputCnt:uint32_t, output:c.POINTER[uint64_t], outputCnt:c.POINTER[uint32_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t)
|
|
def IOConnectTrap0(connect:io_connect_t, index:uint32_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t)
|
|
def IOConnectTrap1(connect:io_connect_t, index:uint32_t, p1:uintptr_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t)
|
|
def IOConnectTrap2(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t, uintptr_t)
|
|
def IOConnectTrap3(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t, p3:uintptr_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t)
|
|
def IOConnectTrap4(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t, p3:uintptr_t, p4:uintptr_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t)
|
|
def IOConnectTrap5(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t, p3:uintptr_t, p4:uintptr_t, p5:uintptr_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, uint32_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t)
|
|
def IOConnectTrap6(connect:io_connect_t, index:uint32_t, p1:uintptr_t, p2:uintptr_t, p3:uintptr_t, p4:uintptr_t, p5:uintptr_t, p6:uintptr_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_connect_t, io_connect_t)
|
|
def IOConnectAddClient(connect:io_connect_t, client:io_connect_t) -> kern_return_t: ...
|
|
io_registry_entry_t: TypeAlias = ctypes.c_uint32
|
|
@dll.bind(io_registry_entry_t, mach_port_t)
|
|
def IORegistryGetRootEntry(mainPort:mach_port_t) -> io_registry_entry_t: ...
|
|
io_string_t: TypeAlias = c.Array[ctypes.c_char, Literal[512]]
|
|
@dll.bind(io_registry_entry_t, mach_port_t, io_string_t)
|
|
def IORegistryEntryFromPath(mainPort:mach_port_t, path:io_string_t) -> io_registry_entry_t: ...
|
|
@dll.bind(io_registry_entry_t, mach_port_t, CFStringRef)
|
|
def IORegistryEntryCopyFromPath(mainPort:mach_port_t, path:CFStringRef) -> io_registry_entry_t: ...
|
|
_anonenum1: dict[int, str] = {(kIORegistryIterateRecursively:=1): 'kIORegistryIterateRecursively', (kIORegistryIterateParents:=2): 'kIORegistryIterateParents'}
|
|
@dll.bind(kern_return_t, mach_port_t, io_name_t, IOOptionBits, c.POINTER[io_iterator_t])
|
|
def IORegistryCreateIterator(mainPort:mach_port_t, plane:io_name_t, options:IOOptionBits, iterator:c.POINTER[io_iterator_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, IOOptionBits, c.POINTER[io_iterator_t])
|
|
def IORegistryEntryCreateIterator(entry:io_registry_entry_t, plane:io_name_t, options:IOOptionBits, iterator:c.POINTER[io_iterator_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_iterator_t)
|
|
def IORegistryIteratorEnterEntry(iterator:io_iterator_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_iterator_t)
|
|
def IORegistryIteratorExitEntry(iterator:io_iterator_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t)
|
|
def IORegistryEntryGetName(entry:io_registry_entry_t, name:io_name_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, io_name_t)
|
|
def IORegistryEntryGetNameInPlane(entry:io_registry_entry_t, plane:io_name_t, name:io_name_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, io_name_t)
|
|
def IORegistryEntryGetLocationInPlane(entry:io_registry_entry_t, plane:io_name_t, location:io_name_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, io_string_t)
|
|
def IORegistryEntryGetPath(entry:io_registry_entry_t, plane:io_name_t, path:io_string_t) -> kern_return_t: ...
|
|
@dll.bind(CFStringRef, io_registry_entry_t, io_name_t)
|
|
def IORegistryEntryCopyPath(entry:io_registry_entry_t, plane:io_name_t) -> CFStringRef: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, c.POINTER[uint64_t])
|
|
def IORegistryEntryGetRegistryEntryID(entry:io_registry_entry_t, entryID:c.POINTER[uint64_t]) -> kern_return_t: ...
|
|
CFMutableDictionaryRef: TypeAlias = c.POINTER[struct___CFDictionary]
|
|
class struct___CFAllocator(c.Struct): pass
|
|
CFAllocatorRef: TypeAlias = c.POINTER[struct___CFAllocator]
|
|
@dll.bind(kern_return_t, io_registry_entry_t, c.POINTER[CFMutableDictionaryRef], CFAllocatorRef, IOOptionBits)
|
|
def IORegistryEntryCreateCFProperties(entry:io_registry_entry_t, properties:c.POINTER[CFMutableDictionaryRef], allocator:CFAllocatorRef, options:IOOptionBits) -> kern_return_t: ...
|
|
@dll.bind(CFTypeRef, io_registry_entry_t, CFStringRef, CFAllocatorRef, IOOptionBits)
|
|
def IORegistryEntryCreateCFProperty(entry:io_registry_entry_t, key:CFStringRef, allocator:CFAllocatorRef, options:IOOptionBits) -> CFTypeRef: ...
|
|
@dll.bind(CFTypeRef, io_registry_entry_t, io_name_t, CFStringRef, CFAllocatorRef, IOOptionBits)
|
|
def IORegistryEntrySearchCFProperty(entry:io_registry_entry_t, plane:io_name_t, key:CFStringRef, allocator:CFAllocatorRef, options:IOOptionBits) -> CFTypeRef: ...
|
|
io_struct_inband_t: TypeAlias = c.Array[ctypes.c_char, Literal[4096]]
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, io_struct_inband_t, c.POINTER[uint32_t])
|
|
def IORegistryEntryGetProperty(entry:io_registry_entry_t, propertyName:io_name_t, buffer:io_struct_inband_t, size:c.POINTER[uint32_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, CFTypeRef)
|
|
def IORegistryEntrySetCFProperties(entry:io_registry_entry_t, properties:CFTypeRef) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, CFStringRef, CFTypeRef)
|
|
def IORegistryEntrySetCFProperty(entry:io_registry_entry_t, propertyName:CFStringRef, property:CFTypeRef) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, c.POINTER[io_iterator_t])
|
|
def IORegistryEntryGetChildIterator(entry:io_registry_entry_t, plane:io_name_t, iterator:c.POINTER[io_iterator_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, c.POINTER[io_registry_entry_t])
|
|
def IORegistryEntryGetChildEntry(entry:io_registry_entry_t, plane:io_name_t, child:c.POINTER[io_registry_entry_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, c.POINTER[io_iterator_t])
|
|
def IORegistryEntryGetParentIterator(entry:io_registry_entry_t, plane:io_name_t, iterator:c.POINTER[io_iterator_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, io_registry_entry_t, io_name_t, c.POINTER[io_registry_entry_t])
|
|
def IORegistryEntryGetParentEntry(entry:io_registry_entry_t, plane:io_name_t, parent:c.POINTER[io_registry_entry_t]) -> kern_return_t: ...
|
|
@dll.bind(boolean_t, io_registry_entry_t, io_name_t)
|
|
def IORegistryEntryInPlane(entry:io_registry_entry_t, plane:io_name_t) -> boolean_t: ...
|
|
@dll.bind(CFMutableDictionaryRef, c.POINTER[ctypes.c_char])
|
|
def IOServiceMatching(name:c.POINTER[ctypes.c_char]) -> CFMutableDictionaryRef: ...
|
|
@dll.bind(CFMutableDictionaryRef, c.POINTER[ctypes.c_char])
|
|
def IOServiceNameMatching(name:c.POINTER[ctypes.c_char]) -> CFMutableDictionaryRef: ...
|
|
@dll.bind(CFMutableDictionaryRef, mach_port_t, uint32_t, c.POINTER[ctypes.c_char])
|
|
def IOBSDNameMatching(mainPort:mach_port_t, options:uint32_t, bsdName:c.POINTER[ctypes.c_char]) -> CFMutableDictionaryRef: ...
|
|
@dll.bind(CFMutableDictionaryRef, mach_port_t, uint32_t, c.POINTER[ctypes.c_char])
|
|
def IOOpenFirmwarePathMatching(mainPort:mach_port_t, options:uint32_t, path:c.POINTER[ctypes.c_char]) -> CFMutableDictionaryRef: ...
|
|
@dll.bind(CFMutableDictionaryRef, uint64_t)
|
|
def IORegistryEntryIDMatching(entryID:uint64_t) -> CFMutableDictionaryRef: ...
|
|
@dll.bind(kern_return_t, mach_port_t, io_name_t, io_name_t)
|
|
def IOServiceOFPathToBSDName(mainPort:mach_port_t, openFirmwarePath:io_name_t, bsdName:io_name_t) -> kern_return_t: ...
|
|
IOAsyncCallback0: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_int32]]
|
|
IOAsyncCallback1: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_int32, ctypes.c_void_p]]
|
|
IOAsyncCallback2: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_int32, ctypes.c_void_p, ctypes.c_void_p]]
|
|
IOAsyncCallback: TypeAlias = c.CFUNCTYPE[None, [ctypes.c_void_p, ctypes.c_int32, c.POINTER[ctypes.c_void_p], ctypes.c_uint32]]
|
|
vm_size_t: TypeAlias = ctypes.c_uint64
|
|
@dll.bind(kern_return_t, c.POINTER[mach_msg_header_t], uint32_t, c.POINTER[uint32_t], c.POINTER[uintptr_t], c.POINTER[ctypes.c_void_p], c.POINTER[vm_size_t])
|
|
def OSGetNotificationFromMessage(msg:c.POINTER[mach_msg_header_t], index:uint32_t, type:c.POINTER[uint32_t], reference:c.POINTER[uintptr_t], content:c.POINTER[ctypes.c_void_p], size:c.POINTER[vm_size_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, c.POINTER[ctypes.c_char], uint32_t)
|
|
def IOCatalogueSendData(mainPort:mach_port_t, flag:uint32_t, buffer:c.POINTER[ctypes.c_char], size:uint32_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, io_name_t)
|
|
def IOCatalogueTerminate(mainPort:mach_port_t, flag:uint32_t, description:io_name_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t, c.POINTER[c.POINTER[ctypes.c_char]], c.POINTER[uint32_t])
|
|
def IOCatalogueGetData(mainPort:mach_port_t, flag:uint32_t, buffer:c.POINTER[c.POINTER[ctypes.c_char]], size:c.POINTER[uint32_t]) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, io_name_t)
|
|
def IOCatalogueModuleLoaded(mainPort:mach_port_t, name:io_name_t) -> kern_return_t: ...
|
|
@dll.bind(kern_return_t, mach_port_t, uint32_t)
|
|
def IOCatalogueReset(mainPort:mach_port_t, flag:uint32_t) -> kern_return_t: ...
|