-#ifndef _CANMSG_T_H
-#define _CANMSG_T_H
+#ifndef _CAN_DRVAPI_T_H
+#define _CAN_DRVAPI_T_H
+#ifdef __KERNEL__
+
+#include <linux/time.h>
#include <linux/types.h>
#include <linux/ioctl.h>
-#ifndef PACKED
-#define PACKED __attribute__((packed))
-#endif
+#else /* __KERNEL__ */
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
-#define CAN_MSG_LENGTH 8
-
-struct canmsg_t {
- short flags;
- int cob;
- unsigned long id;
- unsigned long timestamp;
- unsigned int length;
- unsigned char data[CAN_MSG_LENGTH];
-} PACKED;
-
-struct canfilt_t {
- int flags;
- int cob;
- unsigned long id;
- unsigned long mask;
-};
-
-/* Definitions to use for canmsg_t flags */
-#define MSG_RTR (1<<0)
-#define MSG_OVR (1<<1)
-#define MSG_EXT (1<<2)
+#endif /* __KERNEL__ */
+
+#include "./canmsg.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/* CAN ioctl magic number */
#define CAN_IOC_MAGIC 'd'
typedef unsigned short channel_t;
/* CAN ioctl functions */
+#define CAN_DRV_QUERY _IO(CAN_IOC_MAGIC, 0)
+#define CAN_DRV_QRY_BRANCH 0 /* returns driver branch value - "LINC" for LinCAN driver */
+#define CAN_DRV_QRY_VERSION 1 /* returns driver version as (major<<16) | (minor<<8) | patch */
+#define CAN_DRV_QRY_MSGFORMAT 2 /* format of canmsg_t structure */
+
#define CMD_START _IOW(CAN_IOC_MAGIC, 1, channel_t)
#define CMD_STOP _IOW(CAN_IOC_MAGIC, 2, channel_t)
//#define CMD_RESET 3
//#define CONF_FDISABLE
#define STAT _IO(CAN_IOC_MAGIC, 9)
-#define CONF_FILTER_QUE0 _IOW(CAN_IOC_MAGIC, 10, struct canfilt_t)
+#define CANQUE_FILTER _IOW(CAN_IOC_MAGIC, 10, struct canfilt_t)
+#define CANQUE_FLUSH _IO(CAN_IOC_MAGIC, 11)
+
+#ifdef __cplusplus
+} /* extern "C"*/
+#endif
-#endif /*_CANMSG_T_H*/
+#endif /*_CAN_DRVAPI_T_H*/