]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/include/can.h
Structured comments updated.
[lincan.git] / lincan / include / can.h
index 344dcf67ed767ae136db5175fd897cf134c16c10..0473dcc393ceb3a854f7a6994f4e56c03038a9ba 100644 (file)
@@ -1,48 +1,25 @@
-#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 - structure representing CAN message
- * @flags:  message flags, %MSG_RTR .. message is Remote Transmission Request,
- *     %MSG_EXT .. message with extended ID, %MSG_OVR indication of queue
- *     overflow condition
- * @cob:    communication object number (not used)
- * @id:     ID of CAN message
- * @timestamp: not used
- * @length: length of used data
- * @data:   data bytes buffer
- *
- * Header: can.h
- */
-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'
@@ -51,6 +28,11 @@ typedef unsigned long bittiming_t;
 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
@@ -66,6 +48,11 @@ typedef unsigned short channel_t;
 //#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*/