Function

IOConnectMapMemory(_:_:_:_:_:_:)

Map hardware or shared memory into the caller's task.

Declaration

func IOConnectMapMemory(_ connect: io_connect_t, _ memoryType: UInt32, _ intoTask: task_port_t, _ atAddress: UnsafeMutablePointer<mach_vm_address_t>!, _ ofSize: UnsafeMutablePointer<mach_vm_size_t>!, _ options: IOOptionBits) -> kern_return_t

Parameters

connect

The connect handle created by IOServiceOpen.

memoryType

What is being requested to be mapped, not interpreted by IOKit and family defined. The family may support physical hardware or shared memory mappings.

intoTask

The task port for the task in which to create the mapping. This may be different to the task which the opened the connection.

atAddress

An in/out parameter - if the kIOMapAnywhere option is not set, the caller should pass the address where it requests the mapping be created, otherwise nothing need to set on input. The address of the mapping created is passed back on sucess.

ofSize

The size of the mapping created is passed back on success.

Return Value

A kern_return_t error code.

Discussion

This is a generic method to create a mapping in the callers task. The family will interpret the type parameter to determine what sort of mapping is being requested. Cache modes and placed mappings may be requested by the caller.

See Also

Miscellaneous

func IOBSDNameMatching(mach_port_t, UInt32, UnsafePointer<Int8>!) -> CFMutableDictionary!

Create a matching dictionary that specifies an IOService match based on BSD device name.

func IOConnectAddRef(io_connect_t) -> kern_return_t

Adds a reference to the connect handle.

func IOConnectRelease(io_connect_t) -> kern_return_t

Remove a reference to the connect handle.

func IOConnectSetCFProperties(io_connect_t, CFTypeRef!) -> kern_return_t

Set CF container based properties on a connection.

func IOCreateReceivePort(UInt32, UnsafeMutablePointer<mach_port_t>!) -> kern_return_t

Creates and returns a mach port suitable for receiving IOKit messages of the specified type.

func IOIteratorIsValid(io_iterator_t) -> boolean_t

Checks an iterator is still valid.

func IOIteratorNext(io_iterator_t) -> io_object_t

Returns the next object in an iteration.

func IOIteratorReset(io_iterator_t)

Resets an iteration back to the beginning.

func IOMasterPort(mach_port_t, UnsafeMutablePointer<mach_port_t>!) -> kern_return_t

Returns the mach port used to initiate communication with IOKit.

func IONotificationPortCreate(mach_port_t) -> IONotificationPortRef!

Creates and returns a notification object for receiving IOKit notifications of new devices or state changes.

func IONotificationPortDestroy(IONotificationPortRef!)

Destroys a notification object created with IONotificationPortCreate. Also destroys any mach_port's or CFRunLoopSources obatined from IONotificationPortGetRunLoopSource(_:) or IONotificationPortGetMachPort(_:)

func IONotificationPortGetMachPort(IONotificationPortRef!) -> mach_port_t

Returns a mach_port to be used to listen for notifications.

func IONotificationPortGetRunLoopSource(IONotificationPortRef!) -> Unmanaged<CFRunLoopSource>!

Returns a CFRunLoopSource to be used to listen for notifications.

func IONotificationPortSetDispatchQueue(IONotificationPortRef!, DispatchQueue!)

Sets a dispatch queue to be used to listen for notifications.

func IOObjectConformsTo(io_object_t, UnsafePointer<Int8>!) -> boolean_t

Performs an OSDynamicCast operation on an IOKit object.

func IOObjectCopyClass(io_object_t) -> Unmanaged<CFString>!

Return the class name of an IOKit object.

func IOObjectGetKernelRetainCount(io_object_t) -> UInt32

Returns kernel retain count of an IOKit object.

func IOObjectGetRetainCount(io_object_t) -> UInt32

Returns kernel retain count of an IOKit object. Identical to IOObjectGetKernelRetainCount() but available prior to Mac OS 10.6.

func IOObjectGetUserRetainCount(io_object_t) -> UInt32

Returns the retain count for the current process of an IOKit object.

func IOObjectIsEqualTo(io_object_t, io_object_t) -> boolean_t

Checks two object handles to see if they represent the same kernel object.

func IOObjectRelease(io_object_t) -> kern_return_t

Releases an object handle previously returned by IOKitLib.

func IOObjectRetain(io_object_t) -> kern_return_t

Retains an object handle previously returned by IOKitLib.

func IORegistryEntryIDMatching(UInt64) -> CFMutableDictionary!

Create a matching dictionary that specifies an IOService match based on a registry entry ID.

func IORegistryEntryInPlane(io_registry_entry_t, UnsafePointer<Int8>!) -> boolean_t

Determines if the registry entry is attached in a plane.

func IORegistryIteratorEnterEntry(io_iterator_t) -> kern_return_t

Recurse into the current entry in the registry iteration.

func IORegistryIteratorExitEntry(io_iterator_t) -> kern_return_t

Exits a level of recursion, restoring the current entry.

func IOServiceClose(io_connect_t) -> kern_return_t

Close a connection to an IOService and destroy the connect handle.

func IOServiceGetMatchingService(mach_port_t, CFDictionary!) -> io_service_t

Look up a registered IOService object that matches a matching dictionary.

func IOServiceMatching(UnsafePointer<Int8>!) -> CFMutableDictionary!

Create a matching dictionary that specifies an IOService class match.

func IOServiceNameMatching(UnsafePointer<Int8>!) -> CFMutableDictionary!

Create a matching dictionary that specifies an IOService name match.

func IOServiceRequestProbe(io_service_t, UInt32) -> kern_return_t

A request to rescan a bus for device changes.