]> rtime.felk.cvut.cz Git - lincan.git/blob - lincan/include/can.h
e31073283e3a5abf4a3f1a4716b4a2c3582e8b10
[lincan.git] / lincan / include / can.h
1 #ifndef _CANMSG_T_H
2 #define _CANMSG_T_H
3
4 #include <linux/types.h>
5 #include <linux/ioctl.h>
6
7 #ifndef PACKED
8 #define PACKED __attribute__((packed))
9 #endif
10
11 #define CAN_MSG_LENGTH 8
12
13 struct canmsg_t {
14         short           flags;
15         int             cob;
16         unsigned long   id;
17         unsigned long   timestamp;
18         unsigned int    length;
19         unsigned char   data[CAN_MSG_LENGTH];
20 } PACKED;
21
22 struct canfilt_t {
23         int             flags;
24         int             cob;
25         unsigned long   id;
26         unsigned long   mask;
27 };
28
29 /* Definitions to use for canmsg_t flags */
30 #define MSG_RTR (1<<0)
31 #define MSG_OVR (1<<1)
32 #define MSG_EXT (1<<2)
33
34 /* CAN ioctl magic number */
35 #define CAN_IOC_MAGIC 'd'
36
37 typedef unsigned long bittiming_t;
38 typedef unsigned short channel_t;
39
40 /* CAN ioctl functions */
41 #define CMD_START _IOW(CAN_IOC_MAGIC, 1, channel_t)
42 #define CMD_STOP _IOW(CAN_IOC_MAGIC, 2, channel_t)
43 //#define CMD_RESET 3
44
45 #define CONF_BAUD _IOW(CAN_IOC_MAGIC, 4, bittiming_t)
46 //#define CONF_ACCM
47 //#define CONF_XTDACCM
48 //#define CONF_TIMING
49 //#define CONF_OMODE
50 #define CONF_FILTER _IOW(CAN_IOC_MAGIC, 8, unsigned char)
51
52 //#define CONF_FENABLE
53 //#define CONF_FDISABLE
54
55 #define STAT _IO(CAN_IOC_MAGIC, 9)
56 #define CONF_FILTER_QUE0 _IOW(CAN_IOC_MAGIC, 10, struct canfilt_t)
57
58 #endif /*_CANMSG_T_H*/