dxd - dynax driver framework  2675
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dxd::multichannel::stream< channel_t >::clock Class Reference

#include <dxd_stream.h>

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

Classes

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

Public Member Functions

 clock ()
 
return_t each (exec_t exec)
 
void free ()
 
os_result initialize (const void *data, size_t size)
 IOKit memory initializer. More...
 
os_result initialize (const void *data, size_t size)
 IOKit memory initializer. More...
 
os_result initialize (const ::MDL *mdl)
 
os_result initialize (const ::MDL *mdl)
 
os_result initialize (void *data, size_t size)
 IOKit memory initializer. More...
 
os_result initialize (void *data, size_t size)
 IOKit memory initializer. More...
 
os_result initialize (const ::MDL *mdl, size_t offset, size_t size)
 
os_result initialize (const ::MDL *mdl, size_t offset, size_t size)
 
os_result initialize (::IOMemoryDescriptor *iokit_memory_descriptor)
 IOKit memory initializer. More...
 
os_result initialize (::IOMemoryDescriptor *iokit_memory_descriptor)
 IOKit memory initializer. More...
 
os_result initialize (::IOMemoryDescriptor *iokit_memory_descriptor, size_t offset, size_t size)
 IOKit memory initializer. More...
 
os_result initialize (::IOMemoryDescriptor *iokit_memory_descriptor, size_t offset, size_t size)
 IOKit memory initializer. More...
 
os_result initialize (size_t size, unsigned int limit=limit_t, unsigned int alignment=alignment_t, bool contigous=contigous_t)
 
os_result initialize (size_t size, unsigned int limit=limit_t, unsigned int alignment=alignment_t, bool contigous=contigous_t)
 IOKit buffer initializer. More...
 
 operator const ::IOMemoryDescriptor * () const
 IOKit IOMemoryDescriptor* implicit cast. More...
 
 operator const ::IOMemoryDescriptor * () const
 IOKit IOMemoryDescriptor* implicit cast. More...
 
 operator uint64_t () const
 IOKit physical address (only relevant for contigous memory) More...
 
 operator uint64_t () const
 IOKit physical address (only relevant for contigous memory) More...
 
 operator::IOMemoryDescriptor * ()
 
 operator::IOMemoryDescriptor * ()
 
 operator::MDL * () const
 
 operator::MDL * () const
 
doubly::linked::event< scope_t > * pop ()
 pop item from head More...
 
doubly::linked::event< scope_t > * pop (doubly::linked::event< scope_t > *item)
 pop item More...
 
listprint ()
 
doubly::linked::event< scope_t > * push (doubly::linked::event< scope_t > *item)
 push item to head More...
 
os_result signal ()
 
size_t size () const
 IOKit memory size. More...
 
size_t size () const
 IOKit memory size. More...
 

Public Attributes

dxd::multichannel::stream::clock::monitor monitor
 
atomic< int > references =0
 clock domain start count - counts how often the domain was started More...
 
unsigned int & samplerate
 
os_result status
 IOKit memory status. More...
 
os_result status
 IOKit memory status. More...
 

Private Member Functions

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

Private Attributes

unsigned int * _vm
 kernel virtual address mapping More...
 
::IOMemoryMap * iokit_memory_map
 
os_result status
 status of mapping object More...
 

Constructor & Destructor Documentation

template<typename channel_t = int>
dxd::multichannel::stream< channel_t >::clock::clock ( )
inline

Member Function Documentation

return_t dxd::linked::list< doubly::linked::event< scope_t > >::each ( exec_t  exec)
inlineinherited

+ Here is the caller graph for this function:

void dxd::buffer< scope_t, limit_t, alignment_t, contigous_t >::free ( )
inlineinherited
os_result dxd::memory< scope_t >::initialize ( const void *  data,
size_t  size 
)
inherited

IOKit memory initializer.

Parameters
datavirtual base address of range to create memory descriptor from
sizesize of range to create memory descriptor from
os_result dxd::memory< scope_t >::initialize ( const void *  data,
size_t  size 
)
inherited

IOKit memory initializer.

Parameters
datavirtual base address of range to create memory descriptor from
sizesize of range to create memory descriptor from
os_result dxd::memory< scope_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!

+ Here is the call graph for this function:

os_result dxd::memory< scope_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!

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

IOKit memory initializer.

Parameters
datavirtual base address of range to create memory descriptor from
sizesize of range to create memory descriptor from
os_result dxd::memory< scope_t >::initialize ( void *  data,
size_t  size 
)
inherited

IOKit memory initializer.

Parameters
datavirtual base address of range to create memory descriptor from
sizesize of range to create memory descriptor from
os_result dxd::memory< scope_t >::initialize ( const ::MDL *  mdl,
size_t  offset,
size_t  size 
)
inlineinherited
os_result dxd::memory< scope_t >::initialize ( const ::MDL *  mdl,
size_t  offset,
size_t  size 
)
inlineinherited

+ Here is the call graph for this function:

os_result dxd::memory< scope_t >::initialize ( ::IOMemoryDescriptor *  iokit_memory_descriptor)
inlineinherited

IOKit memory initializer.

os_result dxd::memory< scope_t >::initialize ( ::IOMemoryDescriptor *  iokit_memory_descriptor)
inlineinherited

IOKit memory initializer.

+ Here is the call graph for this function:

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

IOKit memory initializer.

+ Here is the call graph for this function:

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

IOKit memory initializer.

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

Allows re-initialization

Parameters
sizesize to be alloced by buffer object
limitlimit physical memory address space
alignmentenforce physical memory alignment
contigousenforce contiguos physical memory
os_result dxd::buffer< scope_t, limit_t, alignment_t, contigous_t >::initialize ( size_t  size,
unsigned int  limit = limit_t,
unsigned int  alignment = alignment_t,
bool  contigous = contigous_t 
)
inlineinherited

IOKit buffer initializer.

Allows re-initialization.

Creates a buffer and associated memory descriptor.

Wires down the backing store memory.

Parameters
sizesize to be alloced by buffer object
limitlimit physical memory address space
alignmentenforce physical memory alignment
contigousenforce contiguos physical memory
dxd::memory< scope_t >::operator const ::IOMemoryDescriptor * ( ) const
inlineinherited

IOKit IOMemoryDescriptor* implicit cast.

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

IOKit IOMemoryDescriptor* implicit cast.

dxd::memory< scope_t >::operator uint64_t ( ) const
inlineinherited

IOKit physical address (only relevant for contigous memory)

dxd::memory< scope_t >::operator uint64_t ( ) const
inlineinherited

IOKit physical address (only relevant for contigous memory)

dxd::memory< scope_t >::operator::IOMemoryDescriptor * ( )
inlineinherited
dxd::memory< scope_t >::operator::IOMemoryDescriptor * ( )
inlineinherited
dxd::memory< scope_t >::operator::MDL * ( ) const
inlineinherited
dxd::memory< scope_t >::operator::MDL * ( ) const
inlineinherited
doubly::linked::event< scope_t > * dxd::linked::list< doubly::linked::event< scope_t > >::pop ( )
inlineinherited

pop item from head

doubly::linked::event< scope_t > * dxd::doubly::linked::list< doubly::linked::event< scope_t > >::pop ( doubly::linked::event< scope_t > *  item)
inlineinherited

pop item

list& dxd::doubly::linked::list< doubly::linked::event< scope_t > >::print ( )
inlineinherited
doubly::linked::event< scope_t > * dxd::doubly::linked::list< doubly::linked::event< scope_t > >::push ( doubly::linked::event< scope_t > *  item)
inlineinherited

push item to head

os_result dxd::broadcast< scope_t >::signal ( )
inlineinherited

+ Here is the call graph for this function:

size_t dxd::memory< scope_t >::size ( ) const
inlineinherited

IOKit memory size.

size_t dxd::memory< scope_t >::size ( ) const
inlineinherited

IOKit memory size.

Member Data Documentation

template<typename channel_t = int>
atomic<int> dxd::multichannel::stream< channel_t >::clock::references =0

clock domain start count - counts how often the domain was started

template<typename channel_t = int>
unsigned int& dxd::multichannel::stream< channel_t >::clock::samplerate
os_result dxd::memory< scope_t >::status
inherited

IOKit memory status.

status of memory object

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

IOKit memory status.

status of memory object


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

(c) copyright 2009 dynamic acoustics e.U. generated on Tue Dec 4 2018

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.