dxd - dynax driver framework 2.6.0d205
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::fw Class Reference

WDK: FireWire device. More...

#include <dxd_fw.h>

Inheritance diagram for dxd::fw:
Collaboration diagram for dxd::fw:

Classes

class  address
 IOKit: FireWire address space. More...
class  phy
 IOKit: FireWire physical address space. More...

Public Types

enum  host_property_key { wwuid =::kConfigNodeUniqueIdKey , wwuid =::kConfigNodeUniqueIdKey }
 IOKit: IOFireWireUnit* implicit cast. More...
enum  host_property_key { wwuid =::kConfigNodeUniqueIdKey , wwuid =::kConfigNodeUniqueIdKey }

Public Member Functions

 fw (::WDFDEVICE_INIT *wdf_device_init, const::GUID &guid)
template<>
os_result host_property (host_property_key key, uint64_t &value)
template<>
os_result host_property (host_property_key key, uint64_t &value)
template<typename value_t>
os_result host_property (host_property_key, value_t &value)
template<typename value_t>
os_result host_property (host_property_key, value_t &value)
template<endian endian_t>
os_result lock_compare_swap (unsigned int src, unsigned int compare, uint64_t space, int64_t timeout=msec)
 submit a synchrous FW lock request
template<endian endian_t>
os_result lock_compare_swap (unsigned int src, unsigned int compare, uint64_t space, int64_t timeout=msec)
 WDK: submit a synchrous FW lock_compare_swap request.
 operator const ::HANDLE () const
 operator::IOFireWireUnit * () const
 IOKit: IOFireWireUnit* implicit cast.
 OSDeclareDefaultStructors (fw)
template<typename type_t>
os_result query (const ::UNICODE_STRING &key, type_t &value)
template<typename key_t, typename type_t>
os_result query (key_t *key, type_t &value)
template<endian endian_t>
os_result read32 (unsigned int &dst, uint64_t space, int64_t timeout=msec)
template<endian endian_t>
os_result read32 (unsigned int &dst, uint64_t space, int64_t timeout=msec)
template<dx::scope scope_t, endian endian_t>
os_result read32 (unsigned int *dst, size_t size32, uint64_t space, int64_t timeout=msec)
template<dx::scope scope_t, endian endian_t>
os_result read32 (unsigned int *dst, size_t size32, uint64_t space, int64_t timeout=msec)
os_result remove ()
os_result set (const ::UNICODE_STRING &key, const ::GUID &value)
os_result set (const ::UNICODE_STRING &key, const ::UNICODE_STRING &value)
os_result set (const ::UNICODE_STRING &key, const char *value)
os_result set (const ::UNICODE_STRING &key, const wchar_t *value)
os_result set (const ::UNICODE_STRING &key, unsigned int value)
template<typename key_t, typename type_t>
os_result set (key_t *key, const type_t &value)
template<typename type_t>
unsigned long type ()
template<dx::scope scope_t, endian endian_t>
os_result write32 (const unsigned int *src, size_t size32, uint64_t space, int64_t timeout=msec)
template<dx::scope scope_t, endian endian_t>
os_result write32 (const unsigned int *src, size_t size32, uint64_t space, int64_t timeout=msec)
template<endian endian_t>
os_result write32 (unsigned int src, uint64_t space, int64_t timeout=msec)
template<endian endian_t>
os_result write32 (unsigned int src, uint64_t space, int64_t timeout=msec)

Public Attributes

os_result status = not_initialized

Protected Member Functions

virtual os_result busreset ()
 WDK: virtual bus reset indication.
virtual os_result launch ()
 WDK: Main driver entry.
os_result launch () override
 IOKit: Main driver entry.
virtual os_result sleep ()
 WDK: firewire device deinitialization virtual method.
virtual os_result wake ()
 WDK: firewire device PNP wake virtual method.

Detailed Description

WDK: FireWire device.

IOKit: FireWire device.

Member Enumeration Documentation

◆ host_property_key [1/2]

enum dxd::fw::host_property_key

IOKit: IOFireWireUnit* implicit cast.

Enumerator
wwuid 
wwuid 

◆ host_property_key [2/2]

enum dxd::fw::host_property_key
Enumerator
wwuid 
wwuid 

Constructor & Destructor Documentation

◆ fw()

dxd::fw::fw ( ::WDFDEVICE_INIT * wdf_device_init,
const::GUID & guid )
inline

Registers PNP capabilities

Here is the caller graph for this function:

Member Function Documentation

◆ busreset()

virtual os_result dxd::fw::busreset ( )
inlineprotectedvirtual

WDK: virtual bus reset indication.

◆ host_property() [1/4]

template<>
os_result dxd::fw::host_property ( host_property_key key,
uint64_t & value )

Checks for valid fw unit object,

Here is the call graph for this function:

◆ host_property() [2/4]

template<>
os_result dxd::fw::host_property ( host_property_key key,
uint64_t & value )
inline
Here is the call graph for this function:

◆ host_property() [3/4]

template<typename value_t>
os_result dxd::fw::host_property ( host_property_key ,
value_t & value )
Here is the caller graph for this function:

◆ host_property() [4/4]

template<typename value_t>
os_result dxd::fw::host_property ( host_property_key ,
value_t & value )

◆ launch() [1/2]

virtual os_result dxd::fw::launch ( )
inlineprotectedvirtual

WDK: Main driver entry.

Creates the underlaying WDK IO target and

obtains the current generation count (workaround for device access during launch)

◆ launch() [2/2]

os_result dxd::fw::launch ( )
inlineoverrideprotected

IOKit: Main driver entry.

launch() is one of the dynax driver frameword-supplied routines that is called after this driver is loaded. It is responsible for initializing the driver.

creates a bus reset timer event source and

attaches the timer event to workloop.

◆ lock_compare_swap() [1/2]

template<endian endian_t>
os_result dxd::fw::lock_compare_swap ( unsigned int src,
unsigned int compare,
uint64_t space,
int64_t timeout = msec )
inline

submit a synchrous FW lock request

Checks for valid fw unit object,

Template Parameters
endian_tindicates the endianism of the firewire device
Here is the call graph for this function:

◆ lock_compare_swap() [2/2]

template<endian endian_t>
os_result dxd::fw::lock_compare_swap ( unsigned int src,
unsigned int compare,
uint64_t space,
int64_t timeout = msec )
inline

WDK: submit a synchrous FW lock_compare_swap request.

constructs the appropriate irb and submits it to the lower device

Todo
swap template
Template Parameters
endian_tindicates the endianism of the firewire device
Here is the call graph for this function:

◆ operator const ::HANDLE()

dxd::wdm::registry::operator const ::HANDLE ( ) const
inlineinherited
Here is the caller graph for this function:

◆ operator::IOFireWireUnit *()

dxd::fw::operator::IOFireWireUnit * ( ) const
inline

IOKit: IOFireWireUnit* implicit cast.

◆ OSDeclareDefaultStructors()

dxd::fw::OSDeclareDefaultStructors ( fw )
Here is the call graph for this function:

◆ query() [1/2]

template<typename type_t>
os_result dxd::wdm::registry::query ( const ::UNICODE_STRING & key,
type_t & value )
inlineinherited

◆ query() [2/2]

template<typename key_t, typename type_t>
os_result dxd::wdm::registry::query ( key_t * key,
type_t & value )
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read32() [1/4]

template<endian endian_t>
os_result dxd::fw::read32 ( unsigned int & dst,
uint64_t space,
int64_t timeout = msec )
inline

Checks for valid fw unit object,

Template Parameters
endian_tindicates the endianism of the firewire device
Here is the call graph for this function:
Here is the caller graph for this function:

◆ read32() [2/4]

template<endian endian_t>
os_result dxd::fw::read32 ( unsigned int & dst,
uint64_t space,
int64_t timeout = msec )
inline

creates a memory object from kernel stack,

checks the kernel buffer memory object,

constructs the appropriate irb and submits it to the lower device

and swaps the returned data.

Template Parameters
endian_tindicates the endianism of the firewire device
Here is the call graph for this function:

◆ read32() [3/4]

template<dx::scope scope_t, endian endian_t>
os_result dxd::fw::read32 ( unsigned int * dst,
size_t size32,
uint64_t space,
int64_t timeout = msec )
Template Parameters
endian_tindicates the origin of the pointer indicates the endianism of the firewire device

◆ read32() [4/4]

template<dx::scope scope_t, endian endian_t>
os_result dxd::fw::read32 ( unsigned int * dst,
size_t size32,
uint64_t space,
int64_t timeout = msec )
Template Parameters
endian_tindicates the origin of the destination pointer indicates the endianism of the firewire device

◆ remove()

os_result dxd::wdm::registry::remove ( )
inlineinherited

◆ set() [1/6]

os_result dxd::wdm::registry::set ( const ::UNICODE_STRING & key,
const ::GUID & value )
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set() [2/6]

os_result dxd::wdm::registry::set ( const ::UNICODE_STRING & key,
const ::UNICODE_STRING & value )
inlineinherited

◆ set() [3/6]

os_result dxd::wdm::registry::set ( const ::UNICODE_STRING & key,
const char * value )
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set() [4/6]

os_result dxd::wdm::registry::set ( const ::UNICODE_STRING & key,
const wchar_t * value )
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set() [5/6]

os_result dxd::wdm::registry::set ( const ::UNICODE_STRING & key,
unsigned int value )
inlineinherited

◆ set() [6/6]

template<typename key_t, typename type_t>
os_result dxd::wdm::registry::set ( key_t * key,
const type_t & value )
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sleep()

virtual os_result dxd::fw::sleep ( )
inlineprotectedvirtual

WDK: firewire device deinitialization virtual method.

Deregisters the bus reset notification handler.

◆ type()

template<typename type_t>
unsigned long dxd::wdm::registry::type ( )
inherited
Here is the caller graph for this function:

◆ wake()

virtual os_result dxd::fw::wake ( )
inlineprotectedvirtual

WDK: firewire device PNP wake virtual method.

Obtains the current generation count and

registers the bus reset notification handler.

◆ write32() [1/4]

template<dx::scope scope_t, endian endian_t>
os_result dxd::fw::write32 ( const unsigned int * src,
size_t size32,
uint64_t space,
int64_t timeout = msec )
Template Parameters
endian_tindicates the origin of the pointer indicates the endianism of the firewire device

◆ write32() [2/4]

template<dx::scope scope_t, endian endian_t>
os_result dxd::fw::write32 ( const unsigned int * src,
size_t size32,
uint64_t space,
int64_t timeout = msec )
Template Parameters
endian_tindicates the origin of the pointer indicates the endianism of the firewire device

◆ write32() [3/4]

template<endian endian_t>
os_result dxd::fw::write32 ( unsigned int src,
uint64_t space,
int64_t timeout = msec )
inline

Checks for valid fw unit object,

Template Parameters
endian_tindicates the endianism of the firewire device
Here is the call graph for this function:
Here is the caller graph for this function:

◆ write32() [4/4]

template<endian endian_t>
os_result dxd::fw::write32 ( unsigned int src,
uint64_t space,
int64_t timeout = msec )
inline

create a memory object from kernel stack location

check kernel buffer memory object

swap value

constructs the appropriate irb and submits it to the lower device

Template Parameters
endian_tindicates the endianism of the firewire device
Here is the call graph for this function:

Member Data Documentation

◆ status

os_result dxd::wdm::registry::status = not_initialized
inherited

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

(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.