| dxd - dynax driver framework 2.6.0d170
    cross platform open source driver development framework | 
generic kernel stream More...
#include <dxd_stream.h>
 Inheritance diagram for dxd::stream:
 Inheritance diagram for dxd::stream: Collaboration diagram for dxd::stream:
 Collaboration diagram for dxd::stream:| Classes | |
| struct | opened | 
| generic streaming interface description  More... | |
| class | umap | 
| stream user mapping  More... | |
| Public Member Functions | |
| template<typename return_t = os_result, typename exec_t > | |
| return_t | each (exec_t exec) | 
| void | free () | 
| kernel map 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 (::IOMemoryDescriptor *iokit_memory_descriptor, size_t offset=0) | 
| IOKit kernel map initializer. | |
| os_result | initialize (const void *data, size_t size) | 
| IOKit memory initializer. | |
| os_result | initialize (const::MDL *mdl) | 
| os_result | initialize (const::MDL *mdl, size_t offset, size_t size) | 
| os_result | initialize (size_t size, unsigned int limit=limit_t, unsigned int alignment=alignment_t, bool contigous=contigous_t) | 
| IOKit buffer initializer. | |
| os_result | initialize (size_t size, unsigned int limit=limit_t, unsigned int alignment=alignment_t, bool contigous=contigous_t) | 
| os_result | initialize (void *data, size_t size) | 
| IOKit memory initializer. | |
| operator const vm_t * () const | |
| operator const::IOMemoryDescriptor * () const | |
| IOKit IOMemoryDescriptor* implicit cast. | |
| operator const::IOMemoryMap * () const | |
| operator uint64_t () const | |
| IOKit physical address (only relevant for contigous memory) | |
| operator vm_t * () const | |
| vm_t * | operator-> () | 
| const vm_t * | operator-> () const | 
| operator to use mapping like pointer | |
| operator::IOMemoryDescriptor * () | |
| operator::IOMemoryMap * () | |
| operator::MDL * () const | |
| item_t * | pop () | 
| pop item from head | |
| item_t * | pop (item_t *item) | 
| pop item | |
| list & | print () | 
| item_t * | push (item_t *item) | 
| push item to head | |
| template<typename reference_t > | |
| int | release (reference_t &reference) | 
| void | retain () | 
| os_result | signal () | 
| size_t | size () const | 
| IOKit memory size. | |
| size_t | size () const | 
| kernel mapping size | |
| virtual os_result | start (bool force=false)=0 | 
| virtual os_result | stop (bool force=false)=0 | 
| stream (size_t size, unsigned int limit=64, unsigned int align=0, bool contigous=false) | |
| Public Attributes | |
| atomic< int > | references {} | 
| os_result | status =not_initialized | 
| IOKit memory status. | |
| os_result | status =not_initialized | 
| status of mapping object | |
| Protected Member Functions | |
| stream ()=default | |
| virtual | ~stream ()=default | 
| Protected Attributes | |
| vm_t * | _vm =nullptr | 
| kernel virtual address mapping | |
| ::IOMemoryMap * | iokit_memory_map =nullptr | 
generic kernel stream
| 
 | protectedvirtualdefault | 
Reimplemented in dxd::multichannel::stream< channel_t >, and dxd::usb_stream_device::stream.
| 
 | protecteddefault | 
| 
 | inline | 
| 
 | inlineinherited | 
| 
 | inlineinherited | 
kernel map free
Checks if kernel 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 | 
| 
 | inlineinherited | 
IOKit memory initializer.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inlineinherited | 
IOKit memory initializer.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inlineinherited | 
IOKit kernel map initializer.
map<kernel> maps an IOMemoryDescriptor (typically cast of a dxd::memory or buffer class) into the kernel address space.
https://developer.apple.com/library/content/qa/qa1197/_index.html
Allows re-initialization.
Checks buffer object,
maps the buffer into the kernel (will fail if offset is given)
and obtains a kernel virtual address (apply offset here instead).
| iokit_memory_descriptor | IOMemoryDescriptor to be mapped into the kernel address space | 
| offset | offset into memory descriptor to create mapping | 
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inherited | 
IOKit memory initializer.
| data | virtual base address of range to create memory descriptor from | 
| size | size of range to create memory descriptor from | 
| 
 | 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:
 Here is the call graph for this function:| 
 | inlineinherited | 
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inlineinherited | 
IOKit buffer initializer.
Allows re-initialization.
Creates a buffer and associated memory descriptor.
Wires down the backing store memory.
| size | size to be alloced by buffer object | 
| limit | limit physical memory address space | 
| alignment | enforce physical memory alignment | 
| contigous | enforce contiguos physical memory | 
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | 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 | 
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inherited | 
IOKit memory initializer.
| data | virtual base address of range to create memory descriptor from | 
| size | size of range to create memory descriptor from | 
| 
 | inlineinherited | 
| 
 | inlineinherited | 
IOKit IOMemoryDescriptor* implicit cast.
| 
 | inlineinherited | 
| 
 | inlineinherited | 
IOKit physical address (only relevant for contigous memory)
| 
 | inlineinherited | 
| 
 | inlineinherited | 
| 
 | inlineinherited | 
operator to use mapping like pointer
| 
 | inlineinherited | 
| 
 | inlineinherited | 
| 
 | inlineinherited | 
| 
 | inlineinherited | 
pop item from head
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inlineinherited | 
pop item
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inlineinherited | 
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inlineinherited | 
push item to head
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inlineinherited | 
| 
 | inlineinherited | 
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inlineinherited | 
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inlineinherited | 
IOKit memory size.
| 
 | inlineinherited | 
kernel mapping size
| 
 | pure virtual | 
| 
 | pure virtual | 
| 
 | protectedinherited | 
kernel virtual address mapping
| 
 | protectedinherited | 
| 
 | inherited | 
IOKit memory status.
status of memory object
| 
 | inherited | 
status of mapping object
| (c) copyright 2009 dynamic acoustics e.U. | generated on Fri Oct 31 2025 |