|
Universal Software Radio Peripheral
|
darwin implementation of fusb_ephandle More...
#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 |
| size_t | d_bufLenBytes |
| gruel::mutex * | d_readRunning |
| gruel::mutex * | d_runBlock_mutex |
| gruel::mutex * | d_readBlock_mutex |
| gruel::condition_variable * | d_runBlock |
| gruel::condition_variable * | d_readBlock |
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.
| 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 usb_debug, d_interface, d_interfaceRef, d_pipeRef, 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::dequeue(), and usb_debug.
| bool fusb_ephandle_darwin::start | ( | ) | [virtual] |
begin streaming i/o
Implements fusb_ephandle.
References d_buffer, circular_buffer::reset(), d_queue, circular_linked_list::num_used(), circular_linked_list::iterate_start(), circular_linked_list::iterate_next(), s_node::both(), s_both::set(), s_node::object(), s_node::set_available(), d_pipeRef, d_transferType, fusb_devhandle::get_usb_dev_handle(), USB_ERROR_STR, usb_dev_handle::impl_info, usb_debug, d_interfaceRef, darwin_dev_handle::interface, d_interface, fusb_ephandle::d_endpoint, fusb_ephandle::d_input_p, fusb_ephandle::d_started, d_runBlock_mutex, and d_runBlock.
| bool fusb_ephandle_darwin::stop | ( | ) | [virtual] |
stop streaming i/o
Implements fusb_ephandle.
References fusb_ephandle::d_started, usb_debug, fusb_ephandle::d_input_p, abort(), wait_for_completion(), d_buffer, and circular_buffer::abort().
Referenced by ~fusb_ephandle_darwin().
| void fusb_ephandle_darwin::wait_for_completion | ( | ) | [virtual] |
Implements fusb_ephandle.
References d_queue, and circular_linked_list::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 fusb_ephandle::d_started, usb_debug, d_bufLenBytes, d_queue, circular_linked_list::find_next_available_node(), s_node::object(), s_buffer::buffer(), s_node::both(), d_transferType, d_interface, d_interfaceRef, d_pipeRef, and USB_ERROR_STR.
Referenced by fusb_ephandle_darwin(), ~fusb_ephandle_darwin(), start(), read(), and stop().
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(), ~fusb_ephandle_darwin(), start(), write(), and wait_for_completion().
| gruel::condition_variable* fusb_ephandle_darwin::d_readBlock |
Referenced by fusb_ephandle_darwin(), and ~fusb_ephandle_darwin().
| gruel::mutex* fusb_ephandle_darwin::d_readBlock_mutex |
Referenced by fusb_ephandle_darwin(), and ~fusb_ephandle_darwin().
| gruel::mutex* fusb_ephandle_darwin::d_readRunning |
Referenced by fusb_ephandle_darwin(), and ~fusb_ephandle_darwin().
| gruel::condition_variable* fusb_ephandle_darwin::d_runBlock |
Referenced by fusb_ephandle_darwin(), ~fusb_ephandle_darwin(), and start().
| gruel::mutex* fusb_ephandle_darwin::d_runBlock_mutex |
Referenced by fusb_ephandle_darwin(), ~fusb_ephandle_darwin(), and start().
1.7.5