dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::memory< scope_t, io_memory_descriptor_t > Class Template Reference

virtual DriverKit memory description More...

#include <dxd_memory.h>

Inheritance diagram for dxd::memory< scope_t, io_memory_descriptor_t >:

Public Types

enum  direction : uint64_t { in = ::kIOMemoryDirectionIn , out = ::kIOMemoryDirectionOut , both = ::kIOMemoryDirectionIn| ::kIOMemoryDirectionOut }
 direction of memory operation More...

Public Member Functions

void free ()
 DriverKit memory free.
void free ()
void free ()
void free ()
os_result initialize (::IOMemoryDescriptor *io_memory_descriptor)
 DriverKit memory initializer.
os_result initialize (::IOMemoryDescriptor *io_memory_descriptor, size_t offset, size_t size, direction direction)
 DriverKit memory initializer.
os_result initialize (const ::MDL *mdl)
os_result initialize (const ::MDL *mdl, size_t offset, 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 void *data, size_t size)
 memory ()=default
 DriverKit default constructor.
 memory ()=default
 memory (const ::MDL *mdl)
 memory (const memory &memory)
 memory (const void *data, size_t size)
 WDK memory constructor.
 operator const ::IOMemoryDescriptor * () const
 DriverKit IOMemoryDescriptor* implicit cast.
 operator::IOMemoryDescriptor * ()
 operator::MDL * () const
::IOMemoryDescriptor * retain ()
uint64_t size () const
 DriverKit memory size.
 ~memory ()
 DriverKit memory destructor.
virtual ~memory ()
 WDK: memory destructor.

Public Attributes

os_result status = not_initialized
 DriverKit memory status.

Detailed Description

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
class dxd::memory< scope_t, io_memory_descriptor_t >

virtual DriverKit memory description

WDK: virtual kernel memory description.

The dxd::memory is the DriverKit memory representation of the DriverKit virtual memory description. It is an internally used wrapper to generate virtual DriverKit memory representation from a platform independent pointer:size 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.

Member Enumeration Documentation

◆ direction

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
enum dxd::memory::direction : uint64_t

direction of memory operation

Enumerator
in 
out 
both 

Constructor & Destructor Documentation

◆ memory() [1/5]

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
dxd::memory< scope_t, io_memory_descriptor_t >::memory ( )
default

DriverKit default constructor.

Use this in conjunction with initialize()

Here is the caller graph for this function:

◆ memory() [2/5]

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
dxd::memory< scope_t, io_memory_descriptor_t >::memory ( const memory< scope_t, io_memory_descriptor_t > & memory)
inline
Here is the call graph for this function:

◆ ~memory() [1/2]

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
dxd::memory< scope_t, io_memory_descriptor_t >::~memory ( )
inline

DriverKit memory destructor.

Here is the call graph for this function:

◆ memory() [3/5]

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
dxd::memory< scope_t, io_memory_descriptor_t >::memory ( )
default

◆ memory() [4/5]

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
dxd::memory< scope_t, io_memory_descriptor_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, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
dxd::memory< scope_t, io_memory_descriptor_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, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
virtual dxd::memory< scope_t, io_memory_descriptor_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, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
void dxd::memory< scope_t, io_memory_descriptor_t >::free ( )
inline

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

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

◆ free() [3/4]

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

◆ free() [4/4]

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
void dxd::memory< scope_t, io_memory_descriptor_t >::free ( )

◆ initialize() [1/7]

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
os_result dxd::memory< scope_t, io_memory_descriptor_t >::initialize ( ::IOMemoryDescriptor * io_memory_descriptor)
inline

DriverKit memory initializer.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize() [2/7]

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

DriverKit memory initializer.

Here is the call graph for this function:

◆ initialize() [3/7]

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
os_result dxd::memory< scope_t, io_memory_descriptor_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() [4/7]

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

◆ initialize() [5/7]

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

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

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
os_result dxd::memory< scope_t, io_memory_descriptor_t >::initialize ( const void * data,
size_t size )
Here is the call graph for this function:

◆ operator const ::IOMemoryDescriptor *()

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

DriverKit IOMemoryDescriptor* implicit cast.

◆ operator::IOMemoryDescriptor *()

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

◆ operator::MDL *()

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

◆ retain()

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
::IOMemoryDescriptor * dxd::memory< scope_t, io_memory_descriptor_t >::retain ( )
inline

◆ size()

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
uint64_t dxd::memory< scope_t, io_memory_descriptor_t >::size ( ) const
inline

DriverKit memory size.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ status

template<dx::scope scope_t = dx::kernel, typename io_memory_descriptor_t = ::IOMemoryDescriptor>
os_result dxd::memory< scope_t, io_memory_descriptor_t >::status = not_initialized

DriverKit 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

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.