dxd - dynax driver framework 3.0.1d223
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 (const pci &pci, ::MDL *mdl, 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 (pci &pci, ::MDL *mdl, unsigned int &pages, sgl_t &sgl, unsigned int limit=limit_t, unsigned int alignment=alignment_t, unsigned int page_size=page_size_t)
virtual ~scatter_gather ()

Public Attributes

os_result status =not_initialized

Detailed Description

template<unsigned int limit_t = 64, unsigned int alignment_t = 0, unsigned int page_size_t = 0>
class dxd::pci::scatter_gather< limit_t, alignment_t, page_size_t >
Todo
templatize endianism!

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 ( pci & pci,
::MDL * mdl,
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>
virtual 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
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 ( const pci & pci,
::MDL * mdl,
unsigned int & pages,
sgl_t & sgl,
unsigned int limit = limit_t,
unsigned int alignment = alignment_t,
unsigned int page_size = page_size_t )
inline

Allows re-initialization,

checks backing store,

checks and obtains DMA adapter from PCI device,

checks if DMA adapter operations are initialized,

Todo
iterate GetScatterGatherList over mdl size until map_registers*PAGE_SIZE: http://www.osronline.com/article.cfm?id=55

obtains and returns WDK SGL segments to callers local stack space

Here is the call graph for this function:

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

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.