#include <fusb_darwin.h>


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 |
This is currently identical to the generic implementation and is intended as a starting point for whatever magic is required to make usb fly.
| 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] |
| void fusb_ephandle_darwin::abort | ( | ) |
References d_interface, d_interfaceRef, d_pipeRef, usb_debug, and USB_ERROR_STR_NO_RET.
Referenced by stop().
| int fusb_ephandle_darwin::read | ( | void * | buffer, | |
| int | nbytes | |||
| ) | [virtual] |
Implements fusb_ephandle.
References d_buffer, circular_buffer< T >::dequeue(), and usb_debug.
| bool fusb_ephandle_darwin::start | ( | ) | [virtual] |
begin streaming i/o
Implements fusb_ephandle.
References s_node< T >::both(), d_buffer, fusb_ephandle::d_endpoint, fusb_ephandle::d_input_p, d_interface, d_interfaceRef, d_pipeRef, d_queue, d_runBlock, fusb_ephandle::d_started, d_transferType, fusb_devhandle::get_usb_dev_handle(), usb_dev_handle::impl_info, darwin_dev_handle::interface, circular_linked_list< T >::iterate_next(), circular_linked_list< T >::iterate_start(), mld_mutex_t::lock(), mld_condition_t::mutex(), circular_linked_list< T >::num_used(), s_node< T >::object(), s_buffer::reset(), circular_buffer< T >::reset(), s_both< T >::set(), s_node< T >::set_available(), usb_debug, USB_ERROR_STR, and mld_condition_t::wait().
| bool fusb_ephandle_darwin::stop | ( | ) | [virtual] |
stop streaming i/o
Implements fusb_ephandle.
References circular_buffer< T >::abort(), abort(), d_buffer, fusb_ephandle::d_input_p, fusb_ephandle::d_started, mld_mutex_t::lock(), mld_mutex_t::unlock(), usb_debug, and wait_for_completion().
Referenced by ~fusb_ephandle_darwin().
| void fusb_ephandle_darwin::wait_for_completion | ( | ) | [virtual] |
Implements fusb_ephandle.
References d_queue, and circular_linked_list< T >::in_use().
Referenced by stop().
| int fusb_ephandle_darwin::write | ( | const void * | buffer, | |
| int | nbytes | |||
| ) | [virtual] |
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(), usb_debug, and USB_ERROR_STR.
Referenced by fusb_ephandle_darwin(), read(), start(), stop(), and ~fusb_ephandle_darwin().
Referenced by fusb_ephandle_darwin(), and write().
| usb_interface_t* fusb_ephandle_darwin::d_interface |
| usb_interface_t** fusb_ephandle_darwin::d_interfaceRef |
Referenced by fusb_ephandle_darwin(), start(), wait_for_completion(), write(), and ~fusb_ephandle_darwin().
Referenced by fusb_ephandle_darwin(), and ~fusb_ephandle_darwin().
Referenced by fusb_ephandle_darwin(), and ~fusb_ephandle_darwin().
Referenced by fusb_ephandle_darwin(), start(), and ~fusb_ephandle_darwin().
1.5.8