dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::circular::channel< dst_t, src_t > Struct Template Reference

#include <dx_circular.h>

Static Public Member Functions

static void add (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap, uint32_t src_gap, uint32_t interleaved)
static void add (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap, uint32_t src_gap, uint32_t interleaved)
static void add (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap, uint32_t src_gap, uint32_t interleaved)
static void add (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap, uint32_t src_gap, uint32_t interleaved)
static void add (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap=0, uint32_t src_gap=0, uint32_t interleaved=1)
static void copy (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap, uint32_t src_gap, uint32_t interleaved)
static void copy (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap, uint32_t src_gap, uint32_t interleaved)
static void copy (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap, uint32_t src_gap, uint32_t interleaved)
static void copy (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap, uint32_t src_gap, uint32_t interleaved)
static void copy (dst_t *dst, const src_t *src, uint64_t bulk, uint32_t dst_gap=0, uint32_t src_gap=0, uint32_t interleaved=1)
static void mix (dst_t *dst, src_t *const *const *src, uint32_t clients, uint32_t channels, uint64_t offset, uint64_t bulk)

Detailed Description

template<typename dst_t, typename src_t>
requires (is_floating_point<dst_t> == is_floating_point<src_t> && (is_floating_point<dst_t> || sizeof(dst_t)==sizeof(src_t)))
struct dx::circular::channel< dst_t, src_t >

the converting pairs below are the only ones touching floating point: a kernel module instantiating them defines _fltused itself and stays at IRQL <= DISPATCH_LEVEL, where the legacy FP/SSE state is preserved - anything wider needs KeSaveExtendedProcessorState

Member Function Documentation

◆ add() [1/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::add ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap,
uint32_t src_gap,
uint32_t interleaved )
inlinestatic

◆ add() [2/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::add ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap,
uint32_t src_gap,
uint32_t interleaved )
inlinestatic

◆ add() [3/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::add ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap,
uint32_t src_gap,
uint32_t interleaved )
inlinestatic
Here is the call graph for this function:

◆ add() [4/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::add ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap,
uint32_t src_gap,
uint32_t interleaved )
inlinestatic
Here is the call graph for this function:

◆ add() [5/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::add ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap = 0,
uint32_t src_gap = 0,
uint32_t interleaved = 1 )
inlinestatic
Todo
floating-point circular formats: not yet made atomic, no concurrent writer needs it today
Here is the call graph for this function:

◆ copy() [1/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::copy ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap,
uint32_t src_gap,
uint32_t interleaved )
inlinestatic

◆ copy() [2/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::copy ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap,
uint32_t src_gap,
uint32_t interleaved )
inlinestatic

◆ copy() [3/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::copy ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap,
uint32_t src_gap,
uint32_t interleaved )
inlinestatic

◆ copy() [4/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::copy ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap,
uint32_t src_gap,
uint32_t interleaved )
inlinestatic

◆ copy() [5/5]

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::copy ( dst_t * dst,
const src_t * src,
uint64_t bulk,
uint32_t dst_gap = 0,
uint32_t src_gap = 0,
uint32_t interleaved = 1 )
inlinestatic

◆ mix()

template<typename dst_t, typename src_t>
void dx::circular::channel< dst_t, src_t >::mix ( dst_t * dst,
src_t *const *const * src,
uint32_t clients,
uint32_t channels,
uint64_t offset,
uint64_t bulk )
inlinestatic

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

(c) copyright 2009 dynamic acoustics e.U. generated on

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.