31 #ifndef __RTCAN_SOCKET_H_ 32 #define __RTCAN_SOCKET_H_ 41 #define RTCAN_RXBUF_SIZE CONFIG_XENO_DRIVERS_CAN_RXBUF_SIZE 44 #define RTCAN_TIMESTAMP_SIZE sizeof(nanosecs_abs_t) 48 #define RTCAN_HAS_TIMESTAMP 0x80 51 #define RTCAN_HAS_NO_TIMESTAMP 0x7F 53 #define RTCAN_SOCK_UNBOUND -1 54 #define RTCAN_FLIST_NO_FILTER (struct rtcan_filter_list *)-1 55 #define rtcan_flist_no_filter(f) ((f) == RTCAN_FLIST_NO_FILTER) 56 #define rtcan_sock_has_filter(s) ((s)->flistlen > 0) 57 #define rtcan_sock_is_bound(s) ((s)->flistlen >= 0) 68 struct rtcan_rb_frame {
74 unsigned char can_ifindex;
79 unsigned char can_dlc;
92 #define EMPTY_RB_FRAME_SIZE \ 93 sizeof(struct rtcan_rb_frame) - 8 - RTCAN_TIMESTAMP_SIZE 107 size_t rb_frame_size;
109 struct rtcan_rb_frame rb_frame;
112 struct rtcan_filter_list {
125 struct rtcan_socket {
127 struct list_head socket_list;
151 unsigned char recv_buf[RTCAN_RXBUF_SIZE];
159 struct list_head tx_wait_head;
173 uint32_t rx_buf_full;
175 struct rtcan_filter_list *flist;
177 #ifdef CONFIG_XENO_DRIVERS_CAN_LOOPBACK 193 static inline struct rtdm_fd *rtcan_socket_to_fd(
struct rtcan_socket *sock)
201 extern struct list_head rtcan_socket_list;
203 extern void rtcan_socket_init(
struct rtdm_fd *fd);
204 extern void rtcan_socket_cleanup(
struct rtdm_fd *fd);
ipipe_spinlock_t rtdm_lock_t
Lock variable.
Definition: driver.h:551
int64_t nanosecs_rel_t
RTDM type for representing relative intervals.
Definition: rtdm.h:49
Real-Time Driver Model for Xenomai, driver API header.
uint64_t nanosecs_abs_t
RTDM type for representing absolute dates.
Definition: rtdm.h:43
Copyright © 2011 Gilles Chanteperdrix gilles.chanteperdrix@xenomai.org.
Definition: atomic.h:24
Filter for reception of CAN messages.
Definition: can.h:287
static int __attribute__((cold))
Test if a mutex structure contains a valid autoinitializer.
Definition: mutex.c:177
static struct rtdm_fd * rtdm_private_to_fd(void *dev_private)
Locate a device file descriptor structure from its driver private area.
Definition: driver.h:174