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: