]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/include/canmsg.h
The LinCAN driver license unified according to DCE FEE CTU head and superiors request.
[lincan.git] / lincan / include / canmsg.h
index 61f327ac2052cd7fb1688de27035dcdd7856735d..063e4ed155212605d77c046d36c7e3c05bd9f145 100644 (file)
@@ -1,10 +1,35 @@
-/* canmsg.h - common kernel-space and user-space CAN message structure
- * Linux CAN-bus device driver.
- * Written by Pavel Pisa - OCERA team member
- * email:pisa@cmp.felk.cvut.cz
- * This software is released under the GPL-License.
- * Version lincan-0.3  17 Jun 2004
- */
+/**************************************************************************/
+/* File: canmsg.h - common kernel-space and user-space CAN message struct */
+/*                                                                        */
+/* LinCAN - (Not only) Linux CAN bus driver                               */
+/* Copyright (C) 2002-2009 DCE FEE CTU Prague <http://dce.felk.cvut.cz>   */
+/* Copyright (C) 2002-2009 Pavel Pisa <pisa@cmp.felk.cvut.cz>             */
+/* Funded by OCERA and FRESCOR IST projects                               */
+/*                                                                        */
+/* LinCAN is free software; you can redistribute it and/or modify it      */
+/* under terms of the GNU General Public License as published by the      */
+/* Free Software Foundation; either version 2, or (at your option) any    */
+/* later version.  LinCAN is distributed in the hope that it will be      */
+/* useful, but WITHOUT ANY WARRANTY; without even the implied warranty    */
+/* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU    */
+/* General Public License for more details. You should have received a    */
+/* copy of the GNU General Public License along with LinCAN; see file     */
+/* COPYING. If not, write to the Free Software Foundation, 675 Mass Ave,  */
+/* Cambridge, MA 02139, USA.                                              */
+/*                                                                        */
+/* To allow use of LinCAN in the compact embedded systems firmware        */
+/* and RT-executives (RTEMS for example), main authors agree with next    */
+/* special exception:                                                     */
+/*                                                                        */
+/* Including LinCAN header files in a file, instantiating LinCAN generics */
+/* or templates, or linking other files with LinCAN objects to produce    */
+/* an application image/executable, does not by itself cause the          */
+/* resulting application image/executable to be covered by                */
+/* the GNU General Public License.                                        */
+/* This exception does not however invalidate any other reasons           */
+/* why the executable file might be covered by the GNU Public License.    */
+/* Publication of enhanced or derived LinCAN files is required although.  */
+/**************************************************************************/
 
 #ifndef _CANMSG_T_H
 #define _CANMSG_T_H
@@ -16,6 +41,7 @@
 
 #else /* __KERNEL__ */
 
+#include <inttypes.h>
 #include <sys/time.h>
 #include <sys/types.h>
 
@@ -39,6 +65,8 @@ extern "C" {
 
 typedef struct timeval canmsg_tstamp_t ;
 
+typedef unsigned long canmsg_id_t;
+
 /**
  * struct canmsg_t - structure representing CAN message
  * @flags:  message flags
@@ -57,7 +85,7 @@ typedef struct timeval canmsg_tstamp_t ;
 struct canmsg_t {
        int             flags;
        int             cob;
-       unsigned long   id;
+       canmsg_id_t     id;
        canmsg_tstamp_t timestamp;
        unsigned short  length;
        unsigned char   data[CAN_MSG_LENGTH];
@@ -67,15 +95,12 @@ struct canmsg_t {
 #ifndef PACKED
 #define PACKED __attribute__((packed))
 #endif
-
-typedef unsigned long canmsg_tstamp_t ;
-
 /* Old, deprecated version of canmsg_t structure */
 struct canmsg_t {
        short           flags;
        int             cob;
-       unsigned long   id;
-       canmsg_tstamp_t timestamp;
+       canmsg_id_t     id;
+       unsigned long   timestamp;
        unsigned int    length;
        unsigned char   data[CAN_MSG_LENGTH];
 } PACKED;
@@ -107,8 +132,8 @@ struct canfilt_t {
        int             flags;
        int             queid;
        int             cob;
-       unsigned long   id;
-       unsigned long   mask;
+       canmsg_id_t     id;
+       canmsg_id_t     mask;
 };
 
 typedef struct canfilt_t canfilt_t;