fusb_ephandle_darwin Class Reference

#include <fusb_darwin.h>

Inheritance diagram for fusb_ephandle_darwin:

fusb_ephandle

List of all members.


Detailed Description

darwin implementation of fusb_ephandle

This is currently identical to the generic implementation and is intended as a starting point for whatever magic is required to make usb fly.

Public Member Functions

 fusb_ephandle_darwin (fusb_devhandle_darwin *dh, int endpoint, bool input_p, int block_size=0, int nblocks=0)
virtual ~fusb_ephandle_darwin ()
virtual bool start ()
 begin streaming i/o
virtual bool stop ()
 stop streaming i/o
virtual int write (const void *buffer, int nbytes)
virtual int read (void *buffer, int nbytes)
void abort ()
virtual void wait_for_completion ()

Public Attributes

UInt8 d_pipeRef
UInt8 d_transferType
usb_interface_t ** d_interfaceRef
usb_interface_t * d_interface
s_queue_ptr d_queue
circular_buffer< char > * d_buffer
UInt32 d_bufLenBytes
mld_mutex_ptr d_readRunning
mld_condition_ptr d_runBlock
mld_condition_ptr d_readBlock


Constructor & Destructor Documentation

fusb_ephandle_darwin::fusb_ephandle_darwin ( fusb_devhandle_darwin dh,
int  endpoint,
bool  input_p,
int  block_size = 0,
int  nblocks = 0 
)

fusb_ephandle_darwin::~fusb_ephandle_darwin (  )  [virtual]


Member Function Documentation

bool fusb_ephandle_darwin::start (  )  [virtual]

bool fusb_ephandle_darwin::stop (  )  [virtual]

int fusb_ephandle_darwin::write ( const void *  buffer,
int  nbytes 
) [virtual]

Returns:
nbytes if write was successfully enqueued, else -1. Will block if no free buffers available.

Implements fusb_ephandle.

References s_node< T >::both(), s_buffer::buffer(), d_bufLenBytes, d_interface, d_interfaceRef, d_pipeRef, d_queue, fusb_ephandle::d_started, d_transferType, circular_linked_list< T >::find_next_available_node(), s_node< T >::object(), and USB_ERROR_STR.

int fusb_ephandle_darwin::read ( void *  buffer,
int  nbytes 
) [virtual]

Returns:
number of bytes read or -1 if error. number of bytes read will be <= nbytes. Will block if no input available.

Implements fusb_ephandle.

References d_buffer, and circular_buffer< T >::dequeue().

void fusb_ephandle_darwin::abort (  ) 

void fusb_ephandle_darwin::wait_for_completion (  )  [virtual]

Implements fusb_ephandle.

References d_queue, and circular_linked_list< T >::in_use().

Referenced by stop().


Member Data Documentation

Referenced by abort(), start(), and write().

Referenced by start(), and write().

Referenced by abort(), start(), and write().

Referenced by abort(), start(), and write().

Referenced by fusb_ephandle_darwin(), and write().


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

Generated on Wed Oct 8 09:09:42 2008 for Universal Software Radio Peripheral by  doxygen 1.5.6