52#include <sys/ioccom.h>
59#define CAN_IOC_MAGIC 'd'
79#define RTEMS_CAN_CHIP_CONFIGURED ( 0 )
84#define RTEMS_CAN_CHIP_RUNNING ( 1 )
96#define RTEMS_CAN_CHIP_CAPABILITIES_FD ( 1 << 0 )
101#define RTEMS_CAN_CHIP_CAPABILITIES_TX_TIMESTAMP ( 1 << 1 )
106#define RTEMS_CAN_CHIP_CAPABILITIES_RX_TIMESTAMP ( 1 << 2 )
122#define RTEMS_CAN_CHIP_BITRATE ( 1 )
127#define RTEMS_CAN_CHIP_DBITRATE ( 2 )
132#define RTEMS_CAN_CHIP_NUSERS ( 3 )
138#define RTEMS_CAN_CHIP_FLAGS ( 4 )
143#define RTEMS_CAN_CHIP_MODE ( 5 )
148#define RTEMS_CAN_CHIP_MODE_SUPPORTED ( 6 )
163#define RTEMS_CAN_QUEUE_RX ( 1 << 0 )
168#define RTEMS_CAN_QUEUE_TX ( 1 << 1 )
184#define CAN_CTRLMODE_LOOPBACK ( 1 << 0 )
189#define CAN_CTRLMODE_LISTENONLY ( 1 << 1 )
194#define CAN_CTRLMODE_3_SAMPLES ( 1 << 2 )
199#define CAN_CTRLMODE_ONE_SHOT ( 1 << 3 )
204#define CAN_CTRLMODE_BERR_REPORTING ( 1 << 4 )
209#define CAN_CTRLMODE_FD ( 1 << 5 )
214#define CAN_CTRLMODE_PRESUME_ACK ( 1 << 6 )
219#define CAN_CTRLMODE_FD_NON_ISO ( 1 << 7 )
224#define CAN_CTRLMODE_CC_LEN8_DLC ( 1 << 8 )
229#define CAN_CTRLMODE_TDC_AUTO ( 1 << 9 )
234#define CAN_CTRLMODE_TDC_MANUAL ( 1 << 10 )
235#define CAN_CTRLMODE_MASK ( CAN_CTRLMODE_LOOPBACK | CAN_CTRLMODE_LISTENONLY | \
236 CAN_CTRLMODE_3_SAMPLES | CAN_CTRLMODE_ONE_SHOT | \
237 CAN_CTRLMODE_BERR_REPORTING | CAN_CTRLMODE_FD | \
238 CAN_CTRLMODE_PRESUME_ACK | CAN_CTRLMODE_FD_NON_ISO | \
239 CAN_CTRLMODE_CC_LEN8_DLC | CAN_CTRLMODE_TDC_AUTO | \
240 CAN_CTRLMODE_TDC_MANUAL)
263#define RTEMS_CAN_CHIP_START _IO( CAN_IOC_MAGIC, 1 )
268#define RTEMS_CAN_CHIP_STOP _IOW( CAN_IOC_MAGIC, 2, struct timespec )
273#define RTEMS_CAN_CLOSE_NONBLOCK _IO( CAN_IOC_MAGIC, 3 )
279#define RTEMS_CAN_DISCARD_QUEUES _IO( CAN_IOC_MAGIC, 4 )
285#define RTEMS_CAN_FLUSH_QUEUES _IO( CAN_IOC_MAGIC, 5 )
291#define RTEMS_CAN_CHIP_SET_MODE _IO( CAN_IOC_MAGIC, 6 )
296#define RTEMS_CAN_CHIP_GET_INFO _IO( CAN_IOC_MAGIC, 7 )
303#define RTEMS_CAN_WAIT_TX_DONE _IOW( CAN_IOC_MAGIC, 8, struct timespec )
310#define RTEMS_CAN_POLL_TX_READY _IOW( CAN_IOC_MAGIC, 9, struct timespec )
317#define RTEMS_CAN_POLL_RX_AVAIL _IOW( CAN_IOC_MAGIC, 10, struct timespec )
322#define RTEMS_CAN_CREATE_QUEUE _IOW( CAN_IOC_MAGIC, 11, struct rtems_can_queue_param )
327#define RTEMS_CAN_SET_BITRATE _IOW( CAN_IOC_MAGIC, 12, struct rtems_can_set_bittiming )
331#define RTEMS_CAN_CHIP_GET_TIMESTAMP _IOR( CAN_IOC_MAGIC, 13, uint64_t )
336#define RTEMS_CAN_CHIP_STATISTICS _IOR( CAN_IOC_MAGIC, 14, struct rtems_can_stats )
341#define RTEMS_CAN_GET_BITTIMING _IOWR( CAN_IOC_MAGIC, 15, struct rtems_can_get_bittiming )
This header file is part of CAN/CAN FD bus common support. It defines structures used for bit timing ...
This header file is part of CAN/CAN FD bus common support. It implements structure that represents fi...
This header file is part of CAN/CAN FD bus common support. It implements CAN frame structure and rela...
This header file is part of CAN/CAN FD bus common support. It implements controller's statistics.
This header file defines the RTEMS Classic API.
This header file defines macros to set errno and return minus one.
This structure is used to represent CAN ID and flags in one unified structure.
Definition: can-filter.h:50
This structure represents parameters of FIFO queue. It is used to setup new queues via RTEMS_CAN_CREA...
Definition: can.h:349
uint8_t direction
This member specifies queue's direction. Use RTEMS_CAN_QUEUE_RX or RTEMS_CAN_QUEUE_TX.
Definition: can.h:354
struct rtems_can_filter filter
This member holds a queue's filter. Refer to rtems_can_filter for more information.
Definition: can.h:376
uint8_t buffer_size
This member specifies queue's buffer size. Passing 0 applies default RTEMS_CAN_FIFO_SIZE value.
Definition: can.h:371
uint8_t priority
This member specifies queue's priority. Maximum priority value is available from RTEMS_CAN_QUEUE_PRIO...
Definition: can.h:360
uint8_t dlen_max
This member specifies queue's maximum data length. Passing 0 applies default value: CAN_FRAME_STANDAR...
Definition: can.h:366
This header file provides the API of Self-Contained Objects.