dxd - dynax driver framework 2.6.0d205
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::map< scope_t, vm_t > Class Template Reference

WDK memory mapping. More...

#include <dxd_memory.h>

Public Member Functions

void free ()
 kernel map free
os_result initialize (::IOMemoryDescriptor *iokit_memory_descriptor, size_t offset=0)
 IOKit kernel map initializer.
 map ()=default
 IOKit default mapping constructor.
 map (::IOMemoryDescriptor *iokit_memory_descriptor, size_t offset=0)
 IOKit mapping constructor.
 operator const vm_t * () const
 operator const::IOMemoryMap * () const
 operator vm_t * () const
vm_t * operator-> ()
const vm_t * operator-> () const
 operator to use mapping like pointer
 operator::IOMemoryMap * ()
size_t size () const
 kernel mapping size
 ~map ()

Public Attributes

os_result status =not_initialized
 status of mapping object

Protected Attributes

vm_t * _vm =nullptr
 kernel virtual address mapping
::IOMemoryMap * iokit_memory_map =nullptr

Detailed Description

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
class dxd::map< scope_t, vm_t >

WDK memory mapping.

Constructor & Destructor Documentation

◆ map() [1/2]

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
dxd::map< scope_t, vm_t >::map ( )
default

IOKit default mapping constructor.

◆ map() [2/2]

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
dxd::map< scope_t, vm_t >::map ( ::IOMemoryDescriptor * iokit_memory_descriptor,
size_t offset = 0 )
inline

IOKit mapping constructor.

Parameters
iokit_memory_descriptorIOMemoryDescriptor to be mapped into the kernel address space
offsetoffset into memory descriptor to create mapping
Here is the call graph for this function:

◆ ~map()

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
dxd::map< scope_t, vm_t >::~map ( )
inline
Here is the call graph for this function:

Member Function Documentation

◆ free()

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
void dxd::map< scope_t, vm_t >::free ( )
inline

kernel map free

Checks if kernel mapping already exists and

does not call unmap(): IOMemoryMap instances will unmap themselves upon free, ie. when the last client with a reference calls release. unmap() forces the IOMemoryMap to destroy the mapping it represents, regardless of the number of clients. releases the map object.

Here is the caller graph for this function:

◆ initialize()

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
os_result dxd::map< scope_t, vm_t >::initialize ( ::IOMemoryDescriptor * iokit_memory_descriptor,
size_t offset = 0 )
inline

IOKit kernel map initializer.

map<kernel> maps an IOMemoryDescriptor (typically cast of a dxd::memory or buffer class) into the kernel address space.

https://developer.apple.com/library/content/qa/qa1197/_index.html

Allows re-initialization.

Checks buffer object,

maps the buffer into the kernel (will fail if offset is given)

and obtains a kernel virtual address (apply offset here instead).

Parameters
iokit_memory_descriptorIOMemoryDescriptor to be mapped into the kernel address space
offsetoffset into memory descriptor to create mapping
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator const vm_t *()

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
dxd::map< scope_t, vm_t >::operator const vm_t * ( ) const
inline

◆ operator const::IOMemoryMap *()

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
dxd::map< scope_t, vm_t >::operator const::IOMemoryMap * ( ) const
inline

◆ operator vm_t *()

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
dxd::map< scope_t, vm_t >::operator vm_t * ( ) const
inline

◆ operator->() [1/2]

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
vm_t * dxd::map< scope_t, vm_t >::operator-> ( )
inline

◆ operator->() [2/2]

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
const vm_t * dxd::map< scope_t, vm_t >::operator-> ( ) const
inline

operator to use mapping like pointer

◆ operator::IOMemoryMap *()

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
dxd::map< scope_t, vm_t >::operator::IOMemoryMap * ( )
inline

◆ size()

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
size_t dxd::map< scope_t, vm_t >::size ( ) const
inline

kernel mapping size

Member Data Documentation

◆ _vm

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
vm_t* dxd::map< scope_t, vm_t >::_vm =nullptr
protected

kernel virtual address mapping

◆ iokit_memory_map

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
::IOMemoryMap* dxd::map< scope_t, vm_t >::iokit_memory_map =nullptr
protected

◆ status

template<dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
os_result dxd::map< scope_t, vm_t >::status =not_initialized

status of mapping object


The documentation for this class was generated from the following file:

(c) copyright 2009 dynamic acoustics e.U. generated on

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.