dxd - dynax driver framework 2.1.0d58
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t > Class Template Reference

#include <dxd_pci.h>

Public Member Functions

void free ()
 
template<class sgl_t >
os_result initialize (device &, ::IOMemoryDescriptor *iokit_memory_descriptor, unsigned int &pages, sgl_t &sgl, unsigned int limit=limit_t, unsigned int alignment=alignment_t, unsigned int page_size=page_size_t)
 
 scatter_gather ()=default
 
template<class sgl_t >
 scatter_gather (device &device, ::IOMemoryDescriptor *iokit_memory_descriptor, unsigned int &pages, sgl_t &sgl, unsigned int limit=limit_t, unsigned int alignment=alignment_t, unsigned int page_size=page_size_t)
 
os_result synchronize (direction direction=direction::both)
 
 ~scatter_gather ()
 

Public Attributes

os_result status =not_initialized
 

Constructor & Destructor Documentation

◆ scatter_gather() [1/2]

template<unsigned int limit_t = 64, unsigned int alignment_t = 0, unsigned int page_size_t = 0>
dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t >::scatter_gather ( )
default

◆ scatter_gather() [2/2]

template<unsigned int limit_t = 64, unsigned int alignment_t = 0, unsigned int page_size_t = 0>
template<class sgl_t >
dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t >::scatter_gather ( device & device,
::IOMemoryDescriptor * iokit_memory_descriptor,
unsigned int & pages,
sgl_t & sgl,
unsigned int limit = limit_t,
unsigned int alignment = alignment_t,
unsigned int page_size = page_size_t )
inline
+ Here is the call graph for this function:

◆ ~scatter_gather()

template<unsigned int limit_t = 64, unsigned int alignment_t = 0, unsigned int page_size_t = 0>
dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t >::~scatter_gather ( )
inline
+ Here is the call graph for this function:

Member Function Documentation

◆ free()

template<unsigned int limit_t = 64, unsigned int alignment_t = 0, unsigned int page_size_t = 0>
void dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t >::free ( )
inline

completes the DMA command,

+ Here is the caller graph for this function:

◆ initialize()

template<unsigned int limit_t = 64, unsigned int alignment_t = 0, unsigned int page_size_t = 0>
template<class sgl_t >
os_result dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t >::initialize ( device & ,
::IOMemoryDescriptor * iokit_memory_descriptor,
unsigned int & pages,
sgl_t & sgl,
unsigned int limit = limit_t,
unsigned int alignment = alignment_t,
unsigned int page_size = page_size_t )
inline
Todo
templatize endianism!

Allows re-initialization.

Checks memory descriptors,

creates 64bit IODMACommand limited to template specification, maps the IODMACommand if limited below 64bit or PPC,

selects memory descriptor for DMA backing store,

prepares the DMA command,

generates physical segments and

converts it into user supplied structure

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ synchronize()

template<unsigned int limit_t = 64, unsigned int alignment_t = 0, unsigned int page_size_t = 0>
os_result dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t >::synchronize ( direction direction = direction::both)
inline

Member Data Documentation

◆ status

template<unsigned int limit_t = 64, unsigned int alignment_t = 0, unsigned int page_size_t = 0>
os_result dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t >::status =not_initialized

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

(c) copyright 2009 dynamic acoustics e.U. generated on Sun Apr 14 2024

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.