|
dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
|
generic kernel multichannel stream More...
#include <dxd_stream.h>
Classes | |
| struct | [struct].control |
| class | clock |
| a clock domain in the kernel: its sample rate in a buffer the clients map, and the broadcast every registered client is signalled through. references counts the starts, so the domain runs while any client holds it More... | |
| class | in |
| kernel stream mapped client reference counted in channel buffers More... | |
| class | umap |
| stream user mapping More... | |
Public Types | |
| enum | direction |
| direction of memory operation More... | |
| enum | direction |
| direction of memory operation More... | |
Public Member Functions | |
| os_result | attach (unsigned int iosize, channel_t **channel[2]) |
| attach user client owned out channels | |
| os_result | attach (unsigned int iosize, const uint64_t *channel_map) |
| create stream local in channels | |
| bool | claim (dx::stream::direction::direction directiondirection) |
| taken while there is none | |
| void | detach (channel_t **channel[2]) |
| void | detach (const uint64_t *channel_map) |
| 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 (const void *data, size_t size) |
| os_result | initialize (size_t size, unsigned int limit=64, unsigned int alignment=0, bool contigous=false) |
| 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. | |
| operator const ::IOMemoryDescriptor * () const | |
| DriverKit IOMemoryDescriptor* implicit cast. | |
| operator const ::IOMemoryDescriptor * () const | |
| DriverKit IOMemoryDescriptor* implicit cast. | |
| operator const dx::circular * () const | |
| operator const::IOMemoryMap * () const | |
| operator dx::circular * () const | |
| operator void * () const | |
| the allocation's kernel address | |
| const dx::circular * | operator-> () const |
| operator to use mapping like pointer | |
| operator::IOMemoryDescriptor * () | |
| operator::IOMemoryDescriptor * () | |
| operator::IOMemoryMap * () | |
| operator::MDL * () const | |
| operator::MDL * () const | |
| void | pop (abstract::event &event) |
| a participant's event leaves: no tick signals it once this returns | |
| void | push (abstract::event &event) |
| a participant's event joins the ring's signal | |
| template<typename reference_t> | |
| int | release (reference_t &reference) |
| ::IOMemoryDescriptor * | retain () |
| ::IOMemoryDescriptor * | retain () |
| void | retain () |
| void | rx (int64_t timestamp) |
| void | signal () |
| uint64_t | size () const |
| DriverKit memory size. | |
| uint64_t | size () const |
| DriverKit memory size. | |
| size_t | size () const |
| DriverKit mapping size. | |
| virtual os_result | start (bool force=false)=0 |
| virtual os_result | stop (bool force=false)=0 |
| stream ()=default | |
| stream (size_t size, unsigned int limit=64, unsigned int align=0, bool contigous=false) | |
| void | tx (int64_t timestamp) |
Public Attributes | |
| struct | control |
| atomic< int > | references {} |
| os_result | status |
| DriverKit memory status. | |
| os_result | status |
| DriverKit memory status. | |
| os_result | status |
| status of mapping object | |
| volatile int64_t | transport {dx::stream::direction::none} |
Protected Member Functions | |
| void | __lock () |
| void | __unlock () |
| operator const ::KSPIN_LOCK & () const | |
| operator const ::KSPIN_LOCK * () const | |
| operator::KSPIN_LOCK & () | |
| operator::KSPIN_LOCK * () | |
| ~stream () | |
Protected Attributes | |
| dx::circular * | _vm |
| DriverKit virtual address mapping. | |
| union dxd::multichannel::stream:: { ... } | cache |
| unsigned int | channels {} |
| stream channels | |
| dxd::multichannel::stream::in * | in [2] |
| ::IOMemoryMap * | io_memory_map |
| atomic< int > | out {} |
| client outs atached | |
| os_result | status {ok} |
generic kernel multichannel stream
|
inherited |
direction of memory operation
|
inherited |
direction of memory operation
|
inlineprotectedvirtual |
Reimplemented from dxd::stream.
|
default |
|
inline |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inline |
attach user client owned out channels
|
inline |
create stream local in channels
|
inlineinherited |
taken while there is none
|
inline |
|
inline |
|
inlineinherited |
|
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.
|
inlineinherited |
DriverKit memory initializer.
|
inlineinherited |
DriverKit memory initializer.
|
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!
|
inlineinherited |
|
inherited |
Allows re-initialization
| data | virtual read only kernel base address of range to create memory descriptor from |
| size | size of range to create memory descriptor from |
|
inherited |
|
inlineinherited |
Allows re-initialization
| size | size to be alloced by buffer object |
| limit | limit physical memory address space |
| alignment | enforce physical memory alignment |
| contigous | enforce contiguos physical memory |
|
inlineinherited |
DriverKit buffer initializer.
Allows re-initialization.
Creates a buffer and associated memory descriptor.
| size | size to be alloced by buffer object |
| - | limit physical memory address space |
| alignment | enforce physical memory alignment |
| - | enforce contiguos physical memory |
|
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).
| io_memory_descriptor | IOMemoryDescriptor to be mapped into the DriverKit address space |
| offset | offset into memory descriptor to create mapping |
| size | size of mapping |
|
inlineinherited |
DriverKit memory initializer.
|
inlineinherited |
DriverKit IOMemoryDescriptor* implicit cast.
|
inlineinherited |
DriverKit IOMemoryDescriptor* implicit cast.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
the allocation's kernel address
|
inlineinherited |
operator to use mapping like pointer
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
a participant's event leaves: no tick signals it once this returns
|
inlineinherited |
a participant's event joins the ring's signal
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inlineinherited |
|
inlineinherited |
DriverKit memory size.
|
inlineinherited |
DriverKit memory size.
|
inlineinherited |
DriverKit mapping size.
|
pure virtualinherited |
|
pure virtualinherited |
|
inline |
|
protectedinherited |
DriverKit virtual address mapping.
| union { ... } dxd::multichannel::stream< channel_t >::cache |
|
protected |
stream channels
| struct dxd::multichannel::stream::[struct].control dxd::multichannel::stream< channel_t >::control |
|
protected |
|
protectedinherited |
|
protected |
client outs atached
|
inherited |
|
inherited |
DriverKit memory status.
status of memory object
|
inherited |
DriverKit memory status.
status of memory object
|
inherited |
status of mapping object
|
inherited |
the ring's one transport, of its stream's direction: the kernel's participants meet here, its holder and the host's session start set it none
| (c) copyright 2009 dynamic acoustics e.U. | generated on |