19 #ifndef INCLUDED_UHD_TRANSPORT_NIRIO_NIRIO_FIFO_H    20 #define INCLUDED_UHD_TRANSPORT_NIRIO_NIRIO_FIFO_H    26 #include <boost/noncopyable.hpp>    27 #include <boost/smart_ptr.hpp>    29 #include <boost/thread/recursive_mutex.hpp>    30 #include <boost/thread/thread.hpp>    32 namespace uhd { 
namespace niusrprio {
    40 template <
typename data_t>
    44     typedef boost::shared_ptr< nirio_fifo<data_t> > 
sptr;
    49         const std::string& name,
    50         uint32_t fifo_instance);
    54         const size_t requested_depth,
    60     inline const std::string& 
get_name()
 const { 
return _name; }
    71         const size_t elements_requested,
    72         const uint32_t timeout,
    73         size_t& elements_acquired,
    74         size_t& elements_remaining);
    80         const uint32_t num_elements,
    83         uint32_t& num_remaining);
    87         const uint32_t num_elements,
    89         uint32_t& num_remaining);
    93     nirio_status _get_transfer_count(uint64_t& transfer_count);
    94     nirio_status _ensure_transfer_completed(uint32_t timeout_ms);
    98         UNMAPPED, MAPPED, STARTED
   103     uint32_t                       _fifo_channel;
   106     size_t                         _acquired_pending;
   108     boost::recursive_mutex         _mutex;
   111     uint64_t                       _expected_xfer_count;
   112     uint32_t                       _dma_base_addr;
   114     static const uint32_t FIFO_LOCK_TIMEOUT_IN_MS = 5000;
 
boost::shared_ptr< niriok_proxy > sptr
Definition: niriok_proxy.h:168
 
Definition: nirio_fifo.h:34
 
const std::string & get_name() const
Definition: nirio_fifo.h:60
 
uint32_t get_scalar_type() const
Definition: nirio_fifo.h:63
 
nirio_scalar_type_t
Definition: niriok_proxy.h:81
 
virtual ~nirio_fifo()
Definition: nirio_fifo.h:51
 
Definition: convert.hpp:28
 
uint32_t get_channel() const
Definition: nirio_fifo.h:61
 
Definition: nirio_driver_iface.h:130
 
int32_t nirio_status
Definition: status.h:30
 
uint32_t width
Definition: nirio_fifo.h:37
 
uint32_t get_direction() const
Definition: nirio_fifo.h:62
 
datatype_info_t(nirio_scalar_type_t t, uint32_t w)
Definition: nirio_fifo.h:35
 
fifo_direction_t
Definition: niriok_proxy.h:108
 
nirio_scalar_type_t scalar_type
Definition: nirio_fifo.h:36
 
Definition: nirio_fifo.h:41
 
boost::shared_ptr< nirio_fifo< data_t > > sptr
Definition: nirio_fifo.h:44