dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::multichannel::stream< channel_t >::clock::monitor Class Reference

clock::monitor buffer to be shared with user client mappings to measure jitter and latencies at various levels(IRQ, DPC, ASIO) More...

#include <dxd_stream.h>

Inheritance diagram for dxd::multichannel::stream< channel_t >::clock::monitor:
Collaboration diagram for dxd::multichannel::stream< channel_t >::clock::monitor:

Public Types

enum  direction
 direction of memory operation More...
enum  direction
 direction of memory operation More...

Public Member Functions

void free ()
void free ()
 DriverKit map free.
os_result initialize (::IOMemoryDescriptor *io_memory_descriptor)
 DriverKit memory initializer.
os_result initialize (::IOMemoryDescriptor *io_memory_descriptor, size_t offset, size_t size, directiondirection directiondirection)
 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 (size_t size, unsigned int=64, unsigned int alignment=0, bool=false)
 DriverKit buffer initializer.
os_result initialize (::IOMemoryDescriptor *io_memory_descriptor, size_t offset=0, size_t size=0, uint64_t alignment=0, void *address=nullptr)
 DriverKit map initializer.
os_result initialize (::IOMemoryDescriptor *io_memory_descriptor, size_t offset, size_t size, directiondirection directiondirection)
 DriverKit memory initializer.
dxd::os_result initialize ()
 operator const ::IOMemoryDescriptor * () const
 DriverKit IOMemoryDescriptor* implicit cast.
 operator const ::IOMemoryDescriptor * () const
 DriverKit IOMemoryDescriptor* implicit cast.
 operator const dx::stream::clock::monitor * () const
 operator const::IOMemoryMap * () const
 operator dx::stream::clock::monitor * () const
 operator void * () const
 the allocation's kernel address
const dx::stream::clock::monitor * operator-> () const
 operator to use mapping like pointer
 operator::IOMemoryDescriptor * ()
 operator::IOMemoryDescriptor * ()
 operator::IOMemoryMap * ()
 operator::MDL * () const
 operator::MDL * () const
::IOMemoryDescriptor * retain ()
::IOMemoryDescriptor * retain ()
uint64_t size () const
 DriverKit memory size.
uint64_t size () const
 DriverKit memory size.
size_t size () const
 DriverKit mapping size.

Public Attributes

dx::stream::clock::monitor * cache {}
os_result status
 DriverKit memory status.
os_result status
 DriverKit memory status.
os_result status
 status of mapping object

Protected Attributes

dx::stream::clock::monitor * _vm
 DriverKit virtual address mapping.
::IOMemoryMap * io_memory_map

Detailed Description

template<typename channel_t = int>
class dxd::multichannel::stream< channel_t >::clock::monitor

clock::monitor buffer to be shared with user client mappings to measure jitter and latencies at various levels(IRQ, DPC, ASIO)

Member Enumeration Documentation

◆ direction [1/2]

enum dxd::memory::direction : uint64_t
inherited

direction of memory operation

◆ direction [2/2]

enum dxd::memory::direction : uint64_t
inherited

direction of memory operation

Member Function Documentation

◆ free() [1/2]

void dxd::buffer< scope_t, 64, 0, false >::free ( )
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ free() [2/2]

void dxd::map< scope_t, dx::stream::clock::monitor >::free ( )
inlineinherited

DriverKit map free.

Checks if DriverKit 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.

◆ initialize() [1/9]

os_result dxd::memory< scope_t, io_memory_descriptor_t >::initialize ( ::IOMemoryDescriptor * io_memory_descriptor)
inlineinherited

DriverKit memory initializer.

◆ initialize() [2/9]

os_result dxd::memory< scope_t, io_memory_descriptor_t >::initialize ( ::IOMemoryDescriptor * io_memory_descriptor,
size_t offset,
size_t size,
direction direction )
inlineinherited

DriverKit memory initializer.

◆ initialize() [3/9]

os_result dxd::memory< scope_t, io_memory_descriptor_t >::initialize ( const ::MDL * mdl)
inlineinherited

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!

◆ initialize() [4/9]

os_result dxd::memory< scope_t, io_memory_descriptor_t >::initialize ( const ::MDL * mdl,
size_t offset,
size_t size )
inlineinherited

◆ initialize() [5/9]

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

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

os_result dxd::buffer< scope_t, 64, 0, false >::initialize ( size_t size,
unsigned int = limit_t,
unsigned int alignment = alignment_t,
bool = contigous_t )
inlineinherited

DriverKit buffer initializer.

Allows re-initialization.

Creates a buffer and associated memory descriptor.

Parameters
sizesize to be alloced by buffer object
-limit physical memory address space
alignmentenforce physical memory alignment
-enforce contiguos physical memory
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize() [7/9]

os_result dxd::map< scope_t, dx::stream::clock::monitor >::initialize ( ::IOMemoryDescriptor * io_memory_descriptor,
size_t offset = 0,
size_t size = 0,
uint64_t alignment = 0,
void * address = nullptr )
inlineinherited

DriverKit map initializer.

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

            kIOMemoryMapFixedAddress map at the address requested
            kIOMemoryMapReadOnly create a read only mapping
            kIOMemoryMapCacheModeDefault default cache mode
            kIOMemoryMapCacheModeInhibit inhibited cache mode
            kIOMemoryMapCacheModeCopyback copyback cache mode
            kIOMemoryMapCacheModeWriteThrough write through cache mode

Allows re-initialization.

Checks buffer object,

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

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

Parameters
io_memory_descriptorIOMemoryDescriptor to be mapped into the DriverKit address space
offsetoffset into memory descriptor to create mapping
sizesize of mapping

◆ initialize() [8/9]

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 )
inlineinherited

DriverKit memory initializer.

Here is the call graph for this function:

◆ initialize() [9/9]

template<typename channel_t = int>
dxd::os_result dxd::multichannel::stream< channel_t >::clock::monitor::initialize ( )
inline
Here is the call graph for this function:

◆ operator const ::IOMemoryDescriptor *() [1/2]

dxd::memory< scope_t, ::IOBufferMemoryDescriptor >::operator const ::IOMemoryDescriptor * ( ) const
inlineinherited

DriverKit IOMemoryDescriptor* implicit cast.

◆ operator const ::IOMemoryDescriptor *() [2/2]

dxd::memory< scope_t, io_memory_descriptor_t >::operator const ::IOMemoryDescriptor * ( ) const
inlineinherited

DriverKit IOMemoryDescriptor* implicit cast.

◆ operator const dx::stream::clock::monitor *()

dxd::map< scope_t, dx::stream::clock::monitor >::operator const dx::stream::clock::monitor * ( ) const
inlineinherited

◆ operator const::IOMemoryMap *()

dxd::map< scope_t, dx::stream::clock::monitor >::operator const::IOMemoryMap * ( ) const
inlineinherited

◆ operator dx::stream::clock::monitor *()

dxd::map< scope_t, dx::stream::clock::monitor >::operator dx::stream::clock::monitor * ( ) const
inlineinherited

◆ operator void *()

dxd::buffer< scope_t, 64, 0, false >::operator void * ( ) const
inlineinherited

the allocation's kernel address

◆ operator->()

const dx::stream::clock::monitor * dxd::map< scope_t, dx::stream::clock::monitor >::operator-> ( ) const
inlineinherited

operator to use mapping like pointer

◆ operator::IOMemoryDescriptor *() [1/2]

dxd::memory< scope_t, ::IOBufferMemoryDescriptor >::operator::IOMemoryDescriptor * ( )
inlineinherited

◆ operator::IOMemoryDescriptor *() [2/2]

dxd::memory< scope_t, io_memory_descriptor_t >::operator::IOMemoryDescriptor * ( )
inlineinherited

◆ operator::IOMemoryMap *()

dxd::map< scope_t, dx::stream::clock::monitor >::operator::IOMemoryMap * ( )
inlineinherited

◆ operator::MDL *() [1/2]

dxd::memory< scope_t, ::IOBufferMemoryDescriptor >::operator::MDL * ( ) const
inlineinherited

◆ operator::MDL *() [2/2]

dxd::memory< scope_t, io_memory_descriptor_t >::operator::MDL * ( ) const
inlineinherited

◆ retain() [1/2]

::IOMemoryDescriptor * dxd::memory< scope_t, ::IOBufferMemoryDescriptor >::retain ( )
inlineinherited

◆ retain() [2/2]

::IOMemoryDescriptor * dxd::memory< scope_t, io_memory_descriptor_t >::retain ( )
inlineinherited

◆ size() [1/3]

uint64_t dxd::memory< scope_t, ::IOBufferMemoryDescriptor >::size ( ) const
inlineinherited

DriverKit memory size.

Here is the caller graph for this function:

◆ size() [2/3]

uint64_t dxd::memory< scope_t, io_memory_descriptor_t >::size ( ) const
inlineinherited

DriverKit memory size.

◆ size() [3/3]

size_t dxd::map< scope_t, dx::stream::clock::monitor >::size ( ) const
inlineinherited

DriverKit mapping size.

Member Data Documentation

◆ _vm

dx::stream::clock::monitor* dxd::map< scope_t, dx::stream::clock::monitor >::_vm
protectedinherited

DriverKit virtual address mapping.

◆ cache

template<typename channel_t = int>
dx::stream::clock::monitor* dxd::multichannel::stream< channel_t >::clock::monitor::cache {}

◆ io_memory_map

::IOMemoryMap* dxd::map< scope_t, dx::stream::clock::monitor >::io_memory_map
protectedinherited

◆ status [1/3]

os_result dxd::memory< scope_t, ::IOBufferMemoryDescriptor >::status
inherited

DriverKit memory status.

status of memory object

◆ status [2/3]

os_result dxd::memory< scope_t, io_memory_descriptor_t >::status
inherited

DriverKit memory status.

status of memory object

◆ status [3/3]

os_result dxd::map< scope_t, dx::stream::clock::monitor >::status
inherited

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.