dxd - dynax driver framework  2675
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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

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
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:

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

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:

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:

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

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 Tue Dec 4 2018

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.