dxd - dynax driver framework 2.1.0d73
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::memory< scope_t > Class Template Reference

virtual kernel memory description More...

#include <dxd_memory.h>

+ Inheritance diagram for dxd::memory< scope_t >:

Public Member Functions

void free ()
 IOKit memory free.
 
void free ()
 
void free ()
 
void free ()
 
os_result initialize (::IOMemoryDescriptor *iokit_memory_descriptor)
 IOKit memory initializer.
 
os_result initialize (::IOMemoryDescriptor *iokit_memory_descriptor, size_t offset, size_t size)
 IOKit memory initializer.
 
os_result initialize (const void *data, size_t size)
 IOKit memory initializer.
 
os_result initialize (const void *data, size_t size)
 IOKit memory initializer from kernel virtual addresses.
 
os_result initialize (const void *data, size_t size)
 IOKit memory initializer from user space virtual addresses.
 
os_result initialize (const void *data, size_t size)
 
os_result initialize (const void *data, size_t size)
 
os_result initialize (const void *data, size_t size)
 
os_result initialize (const::MDL *mdl)
 
os_result initialize (const::MDL *mdl, size_t offset, size_t size)
 
os_result initialize (void *data, size_t size)
 IOKit memory initializer.
 
os_result initialize (void *data, size_t size)
 IOKit memory initializer from kernel virtual addresses.
 
os_result initialize (void *data, size_t size)
 IOKit memory initializer from user space virtual addresses.
 
 memory ()=default
 IOKit default constructor.
 
 memory ()=default
 
 memory (const void *data, size_t size)
 IOKit class constructor.
 
 memory (const void *data, size_t size)
 WDK memory constructor.
 
 memory (const::MDL *mdl)
 
 operator const::IOMemoryDescriptor * () const
 IOKit IOMemoryDescriptor* implicit cast.
 
 operator uint64_t () const
 IOKit physical address (only relevant for contigous memory)
 
 operator::IOMemoryDescriptor * ()
 
 operator::MDL * () const
 
size_t size () const
 IOKit memory size.
 
 ~memory ()
 IOKit memory destructor.
 
virtual ~memory ()
 WDK: memory destructor.
 

Public Attributes

os_result status =not_initialized
 IOKit memory status.
 

Detailed Description

template<dx::scope scope_t = dx::kernel>
class dxd::memory< scope_t >

virtual kernel memory description

WDK: virtual kernel memory description.

The dxd::memory is a kernel memory representation of the kernels virtual memory description. It is an internally used wrapper to generate a virtual kernel memory representation from a platform independent pointer:size description.

Constructor & Destructor Documentation

◆ memory() [1/5]

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::memory ( )
default

IOKit default constructor.

Use this in conjunction with initialize()

◆ memory() [2/5]

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::memory ( const void * data,
size_t size )
inline

IOKit class constructor.

Calls initialize() member.

Parameters
datavirtual base address of range to create memory descriptor from
sizesize of range to create memory descriptor from
+ Here is the call graph for this function:

◆ ~memory() [1/2]

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::~memory ( )
inline

IOKit memory destructor.

Calls free() member.

+ Here is the call graph for this function:

◆ memory() [3/5]

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::memory ( )
default

◆ memory() [4/5]

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::memory ( const void * data,
size_t size )
inline

WDK memory constructor.

Parameters
datasource data pointer
sizesource data size
+ Here is the call graph for this function:

◆ memory() [5/5]

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::memory ( const::MDL * mdl)
inline
Parameters
mdlsource MDL
+ Here is the call graph for this function:

◆ ~memory() [2/2]

template<dx::scope scope_t = dx::kernel>
virtual dxd::memory< scope_t >::~memory ( )
inlinevirtual

WDK: memory destructor.

+ Here is the call graph for this function:

Member Function Documentation

◆ free() [1/4]

template<dx::scope scope_t = dx::kernel>
void dxd::memory< scope_t >::free ( )
inline

IOKit memory free.

Checks the underlaying OS memory descriptor,

synchronizes and unwires it from memory and

releases the memory descriptor.

+ Here is the caller graph for this function:

◆ free() [2/4]

template<dx::scope scope_t = dx::kernel>
void dxd::memory< scope_t >::free ( )

◆ free() [3/4]

void dxd::memory< dx::kernel >::free ( )

◆ free() [4/4]

void dxd::memory< dx::user >::free ( )

◆ initialize() [1/13]

template<dx::scope scope_t = dx::kernel>
os_result dxd::memory< scope_t >::initialize ( ::IOMemoryDescriptor * iokit_memory_descriptor)
inline

IOKit memory initializer.

+ Here is the call graph for this function:

◆ initialize() [2/13]

template<dx::scope scope_t = dx::kernel>
os_result dxd::memory< scope_t >::initialize ( ::IOMemoryDescriptor * iokit_memory_descriptor,
size_t offset,
size_t size )
inline

IOKit memory initializer.

+ Here is the call graph for this function:

◆ initialize() [3/13]

template<dx::scope scope_t = dx::kernel>
os_result dxd::memory< scope_t >::initialize ( const void * data,
size_t size )

IOKit memory initializer.

Parameters
datavirtual base address of range to create memory descriptor from
sizesize of range to create memory descriptor from
+ Here is the caller graph for this function:

◆ initialize() [4/13]

os_result dxd::memory< dx::kernel >::initialize ( const void * data,
size_t size )

IOKit memory initializer from kernel virtual addresses.

Allows re-initialization.

Creates OS memory descriptor from kernel space data,size and

wires it down and synchronizes it.

Parameters
datavirtual read only kernel base address of range to create memory descriptor from
sizesize of range to create memory descriptor from

◆ initialize() [5/13]

os_result dxd::memory< dx::user >::initialize ( const void * data,
size_t size )

IOKit memory initializer from user space virtual addresses.

Allows re-initialization.

Creates OS memory descriptor from user space data,size and

wires it down and syschronizes it.

Parameters
datavirtual read only user space base address of range to create memory descriptor from
sizesize of range to create memory descriptor from

◆ initialize() [6/13]

template<dx::scope scope_t = dx::kernel>
os_result dxd::memory< scope_t >::initialize ( const void * data,
size_t size )

◆ initialize() [7/13]

os_result dxd::memory< dx::kernel >::initialize ( const void * data,
size_t size )

Allows re-initialization

Parameters
datavirtual read only kernel base address of range to create memory descriptor from
sizesize of range to create memory descriptor from

◆ initialize() [8/13]

os_result dxd::memory< dx::user >::initialize ( const void * data,
size_t size )

Allows re-initialization

Parameters
datavirtual read only user base address of range to create memory descriptor from
sizesize of range to create memory descriptor from

◆ initialize() [9/13]

template<dx::scope scope_t = dx::kernel>
os_result dxd::memory< scope_t >::initialize ( const::MDL * mdl)
inline

in contrast to an IOKit MemoryDescriptor MDLs do not support reference counting. take care when creating a dxd::memory from a dxd::buffer: although the dxd::memory holds an MDL to the buffer the buffer itself is not retained after the dxd::buffer is released!

+ Here is the call graph for this function:

◆ initialize() [10/13]

template<dx::scope scope_t = dx::kernel>
os_result dxd::memory< scope_t >::initialize ( const::MDL * mdl,
size_t offset,
size_t size )
inline
+ Here is the call graph for this function:

◆ initialize() [11/13]

template<dx::scope scope_t = dx::kernel>
os_result dxd::memory< scope_t >::initialize ( void * data,
size_t size )

IOKit memory initializer.

Parameters
datavirtual base address of range to create memory descriptor from
sizesize of range to create memory descriptor from

◆ initialize() [12/13]

os_result dxd::memory< dx::kernel >::initialize ( void * data,
size_t size )

IOKit memory initializer from kernel virtual addresses.

Allows re-initialization.

Creates OS memory descriptor from kernel space data,size and

wires it down and synchronizes it.

Parameters
datavirtual kernel base address of range to create memory descriptor from
sizesize of range to create memory descriptor from

◆ initialize() [13/13]

os_result dxd::memory< dx::user >::initialize ( void * data,
size_t size )

IOKit memory initializer from user space virtual addresses.

Allows re-initialization.

Creates OS memory descriptor from user space data,size and

wires it down and syschronizes it.

Parameters
datavirtual user space base address of range to create memory descriptor from
sizesize of range to create memory descriptor from

◆ operator const::IOMemoryDescriptor *()

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::operator const::IOMemoryDescriptor * ( ) const
inline

IOKit IOMemoryDescriptor* implicit cast.

◆ operator uint64_t()

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::operator uint64_t ( ) const
inline

IOKit physical address (only relevant for contigous memory)

◆ operator::IOMemoryDescriptor *()

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::operator::IOMemoryDescriptor * ( )
inline

◆ operator::MDL *()

template<dx::scope scope_t = dx::kernel>
dxd::memory< scope_t >::operator::MDL * ( ) const
inline

◆ size()

template<dx::scope scope_t = dx::kernel>
size_t dxd::memory< scope_t >::size ( ) const
inline

IOKit memory size.

+ Here is the caller graph for this function:

Member Data Documentation

◆ status

template<dx::scope scope_t = dx::kernel>
os_result dxd::memory< scope_t >::status =not_initialized

IOKit memory status.

status of memory object


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

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Nov 15 2024

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.