18 #ifndef INCLUDED_UHD_TRANSPORT_NIRIO_NIRIO_DRIVER_IFACE_H
19 #define INCLUDED_UHD_TRANSPORT_NIRIO_NIRIO_DRIVER_IFACE_H
26 #if defined(UHD_PLATFORM_WIN32)
28 #pragma warning(disable:4201) // nonstandard extension used : nameless struct/union
30 #pragma warning(default:4201)
31 #elif !defined(UHD_PLATFORM_LINUX)
32 #include <IOKit/IOKitLib.h>
36 #ifndef UHD_PLATFORM_WIN32
37 #define CTL_CODE(a,controlCode,b,c) (controlCode)
40 namespace nirio_driver_iface {
48 FILE_READ_DATA | FILE_WRITE_DATA);
80 #if defined(UHD_PLATFORM_LINUX)
82 #elif defined(UHD_PLATFORM_WIN32)
90 #if defined(UHD_PLATFORM_LINUX)
96 bool is_null() {
return (size == 0 ||
addr == NULL); }
98 #elif defined(UHD_PLATFORM_WIN32)
104 struct rio_mmap_params_t
106 uint64_t mapped_va_ptr;
107 uint64_t map_ready_event_handle;
113 struct rio_mmap_threadargs_t
116 rio_mmap_params_t params;
124 HANDLE map_thread_handle;
125 rio_mmap_threadargs_t map_thread_args;
139 const std::string& device_path,
151 const void *write_buf,
152 size_t write_buf_len,
154 size_t read_buf_len);
158 uint16_t memory_type,
rio_mmap_t()
Definition: nirio_driver_iface.h:131
nirio_status rio_mmap(rio_dev_handle_t device_handle, uint16_t memory_type, size_t size, bool writable, rio_mmap_t &map)
const uint32_t NIRIO_IOCTL_GET_IFACE_NUM
Get the interface number for a device.
Definition: nirio_driver_iface.h:54
nirio_status rio_munmap(rio_mmap_t &map)
const uint32_t NIRIO_IOCTL_GET_SESSION
Gets a previously opened session to a device.
Definition: nirio_driver_iface.h:60
bool is_null()
Definition: nirio_driver_iface.h:134
const uint32_t NIRIO_IOCTL_POST_OPEN
Called after opening a session.
Definition: nirio_driver_iface.h:66
io_connect_t rio_dev_handle_t
Definition: nirio_driver_iface.h:85
nirio_status rio_open(const std::string &device_path, rio_dev_handle_t &device_handle)
#define CTL_CODE(a, controlCode, b, c)
Definition: nirio_driver_iface.h:37
Definition: nirio_driver_iface.h:130
bool rio_isopen(rio_dev_handle_t device_handle)
int32_t nirio_status
Definition: status.h:30
const uint32_t NIRIO_IOCTL_SYNCOP
Definition: nirio_driver_iface.h:44
const uint32_t NIRIO_IOCTL_PRE_CLOSE
Called before closing a session.
Definition: nirio_driver_iface.h:72
nirio_status rio_ioctl(rio_dev_handle_t device_handle, uint32_t ioctl_code, const void *write_buf, size_t write_buf_len, void *read_buf, size_t read_buf_len)
const uint32_t NIRIO_IOCTL_BASE
Definition: nirio_driver_iface.h:42
void rio_close(rio_dev_handle_t &device_handle)
void * addr
Definition: nirio_driver_iface.h:132