Xenomai  3.0-rc7
rtdm.h
Go to the documentation of this file.
1 
23 #ifndef _RTDM_UAPI_RTDM_H
24 #define _RTDM_UAPI_RTDM_H
25 
35 #define RTDM_API_VER 9
36 
38 #define RTDM_API_MIN_COMPAT_VER 9
39 
43 typedef uint64_t nanosecs_abs_t;
44 
49 typedef int64_t nanosecs_rel_t;
50 
56 #define RTDM_TIMEOUT_INFINITE 0
57 
59 #define RTDM_TIMEOUT_NONE (-1)
60 
72 #define RTDM_CLASS_PARPORT 1
73 #define RTDM_CLASS_SERIAL 2
74 #define RTDM_CLASS_CAN 3
75 #define RTDM_CLASS_NETWORK 4
76 #define RTDM_CLASS_RTMAC 5
77 #define RTDM_CLASS_TESTING 6
78 #define RTDM_CLASS_RTIPC 7
79 #define RTDM_CLASS_COBALT 8
80 #define RTDM_CLASS_UDD 9
81 #define RTDM_CLASS_MEMORY 10
82 /*
83 #define RTDM_CLASS_USB ?
84 #define RTDM_CLASS_FIREWIRE ?
85 #define RTDM_CLASS_INTERBUS ?
86 #define RTDM_CLASS_PROFIBUS ?
87 #define ...
88 */
89 #define RTDM_CLASS_MISC 223
90 #define RTDM_CLASS_EXPERIMENTAL 224
91 #define RTDM_CLASS_MAX 255
92 
94 #define RTDM_SUBCLASS_GENERIC (-1)
95 
96 #define RTIOC_TYPE_COMMON 0
97 
103 #define RTDM_MAX_DEVNAME_LEN 31
104 
109 typedef struct rtdm_device_info {
112 
115 
120 
124 
129 #define RTDM_PURGE_RX_BUFFER 0x0001
130 #define RTDM_PURGE_TX_BUFFER 0x0002
131 
143 #define RTIOC_DEVICE_INFO \
144  _IOR(RTIOC_TYPE_COMMON, 0x00, struct rtdm_device_info)
145 
150 #define RTIOC_PURGE _IOW(RTIOC_TYPE_COMMON, 0x10, int)
151 
154 /* Internally used for mapping socket functions on IOCTLs */
155 struct _rtdm_getsockopt_args {
156  int level;
157  int optname;
158  void *optval;
159  socklen_t *optlen;
160 };
161 
162 struct _rtdm_setsockopt_args {
163  int level;
164  int optname;
165  const void *optval;
166  socklen_t optlen;
167 };
168 
169 struct _rtdm_getsockaddr_args {
170  struct sockaddr *addr;
171  socklen_t *addrlen;
172 };
173 
174 struct _rtdm_setsockaddr_args {
175  const struct sockaddr *addr;
176  socklen_t addrlen;
177 };
178 
179 #define _RTIOC_GETSOCKOPT _IOW(RTIOC_TYPE_COMMON, 0x20, \
180  struct _rtdm_getsockopt_args)
181 #define _RTIOC_SETSOCKOPT _IOW(RTIOC_TYPE_COMMON, 0x21, \
182  struct _rtdm_setsockopt_args)
183 #define _RTIOC_BIND _IOW(RTIOC_TYPE_COMMON, 0x22, \
184  struct _rtdm_setsockaddr_args)
185 #define _RTIOC_CONNECT _IOW(RTIOC_TYPE_COMMON, 0x23, \
186  struct _rtdm_setsockaddr_args)
187 #define _RTIOC_LISTEN _IOW(RTIOC_TYPE_COMMON, 0x24, \
188  int)
189 #define _RTIOC_ACCEPT _IOW(RTIOC_TYPE_COMMON, 0x25, \
190  struct _rtdm_getsockaddr_args)
191 #define _RTIOC_GETSOCKNAME _IOW(RTIOC_TYPE_COMMON, 0x26, \
192  struct _rtdm_getsockaddr_args)
193 #define _RTIOC_GETPEERNAME _IOW(RTIOC_TYPE_COMMON, 0x27, \
194  struct _rtdm_getsockaddr_args)
195 #define _RTIOC_SHUTDOWN _IOW(RTIOC_TYPE_COMMON, 0x28, \
196  int)
197 
198 /* Internally used for mmap() */
199 struct _rtdm_mmap_request {
200  __u64 offset;
201  size_t length;
202  int prot;
203  int flags;
204 };
205 
206 #endif /* !_RTDM_UAPI_RTDM_H */
struct rtdm_device_info rtdm_device_info_t
Device information.
int64_t nanosecs_rel_t
RTDM type for representing relative intervals.
Definition: rtdm.h:49
int device_sub_class
Device sub-class, either RTDM_SUBCLASS_GENERIC or a RTDM_SUBCLASS_xxx definition of the related Devic...
Definition: rtdm.h:119
uint64_t nanosecs_abs_t
RTDM type for representing absolute dates.
Definition: rtdm.h:43
int profile_version
Supported device profile version.
Definition: rtdm.h:122
int device_flags
Device flags, see Device Flags for details.
Definition: rtdm.h:111
Device information.
Definition: rtdm.h:109
int device_class
Device class ID, see RTDM_CLASS_xxx.
Definition: rtdm.h:114