dxd - dynax driver framework 2.5.0d148
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 ()
 
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)
 
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.
 
 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/2]

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.

◆ free() [2/2]

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

◆ initialize() [1/7]

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/7]

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/7]

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

◆ initialize() [4/7]

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

◆ initialize() [5/7]

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() [6/7]

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() [7/7]

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

◆ 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.

Member Data Documentation

◆ status

template<dx::scope scope_t = dx::kernel>
os_result memory::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 Aug 22 2025

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.