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>
|
| void | free () |
| | kernel map free
|
| |
| void | free () |
| |
| dxd::os_result | initialize () |
| |
| 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 (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 |
| |
| size_t | size () const |
| | IOKit memory size.
|
| |
| size_t | size () const |
| | kernel mapping size
|
| |
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)
◆ free() [1/2]
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| void dxd::map< scope_t, vm_t >::free |
( |
| ) |
|
|
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.
◆ free() [2/2]
template<
dx::scope scope_t = dx::kernel, unsigned int limit_t = 64, unsigned int alignment_t = 0, bool contigous_t = false>
| void dxd::buffer< scope_t, limit_t, alignment_t, contigous_t >::free |
( |
| ) |
|
|
inlineinherited |
◆ initialize() [1/9]
template<typename channel_t = int>
◆ initialize() [2/9]
IOKit memory initializer.
◆ initialize() [3/9]
| os_result dxd::memory< scope_t >::initialize |
( |
::IOMemoryDescriptor * | iokit_memory_descriptor, |
|
|
size_t | offset, |
|
|
size_t | size ) |
|
inlineinherited |
IOKit memory initializer.
◆ initialize() [4/9]
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| os_result dxd::map< scope_t, vm_t >::initialize |
( |
::IOMemoryDescriptor * | iokit_memory_descriptor, |
|
|
size_t | offset = 0 ) |
|
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).
- Parameters
-
| iokit_memory_descriptor | IOMemoryDescriptor to be mapped into the kernel address space |
| offset | offset into memory descriptor to create mapping |
◆ initialize() [5/9]
IOKit memory initializer.
- Parameters
-
| data | virtual base address of range to create memory descriptor from |
| size | size of range to create memory descriptor from |
◆ initialize() [6/9]
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() [7/9]
◆ initialize() [8/9]
template<
dx::scope scope_t = dx::kernel, unsigned int limit_t = 64, unsigned int alignment_t = 0, bool contigous_t = false>
| 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
-
| size | size to be alloced by buffer object |
| limit | limit physical memory address space |
| alignment | enforce physical memory alignment |
| contigous | enforce contiguos physical memory |
◆ initialize() [9/9]
IOKit memory initializer.
- Parameters
-
| data | virtual base address of range to create memory descriptor from |
| size | size of range to create memory descriptor from |
◆ operator const vm_t *()
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| dxd::map< scope_t, vm_t >::operator const vm_t * |
( |
| ) |
const |
|
inlineinherited |
◆ operator const::IOMemoryDescriptor *()
| dxd::memory< scope_t >::operator const::IOMemoryDescriptor * |
( |
| ) |
const |
|
inlineinherited |
IOKit IOMemoryDescriptor* implicit cast.
◆ operator const::IOMemoryMap *()
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| dxd::map< scope_t, vm_t >::operator const::IOMemoryMap * |
( |
| ) |
const |
|
inlineinherited |
◆ operator uint64_t()
IOKit physical address (only relevant for contigous memory)
◆ operator vm_t *()
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| dxd::map< scope_t, vm_t >::operator vm_t * |
( |
| ) |
const |
|
inlineinherited |
◆ operator->() [1/2]
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| vm_t * dxd::map< scope_t, vm_t >::operator-> |
( |
| ) |
|
|
inlineinherited |
◆ operator->() [2/2]
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| const vm_t * dxd::map< scope_t, vm_t >::operator-> |
( |
| ) |
const |
|
inlineinherited |
operator to use mapping like pointer
◆ operator::IOMemoryDescriptor *()
| dxd::memory< scope_t >::operator::IOMemoryDescriptor * |
( |
| ) |
|
|
inlineinherited |
◆ operator::IOMemoryMap *()
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| dxd::map< scope_t, vm_t >::operator::IOMemoryMap * |
( |
| ) |
|
|
inlineinherited |
◆ operator::MDL *()
◆ size() [1/2]
◆ size() [2/2]
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| size_t dxd::map< scope_t, vm_t >::size |
( |
| ) |
const |
|
inlineinherited |
◆ _vm
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| vm_t* dxd::map< scope_t, vm_t >::_vm =nullptr |
|
protectedinherited |
kernel virtual address mapping
◆ cache
template<typename channel_t = int>
◆ iokit_memory_map
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
| ::IOMemoryMap* dxd::map< scope_t, vm_t >::iokit_memory_map =nullptr |
|
protectedinherited |
◆ status [1/2]
IOKit memory status.
status of memory object
◆ status [2/2]
template<
dx::scope scope_t = dx::kernel, typename vm_t = unsigned int>
The documentation for this class was generated from the following file: