ppavel@26: /* can.h ppavel@26: * Header file for the Linux CAN-bus driver. ppavel@26: * Written by Arnaud Westenberg email:arnaud@wanadoo.nl ppavel@26: * Rewritten for new CAN queues by Pavel Pisa - OCERA team member ppavel@26: * email:pisa@cmp.felk.cvut.cz ppavel@26: * This software is released under the GPL-License. ppavel@26: * Version lincan-0.3 17 Jun 2004 ppavel@26: */ ppavel@26: ppavel@26: #ifndef _CAN_DRVAPI_T_H ppavel@26: #define _CAN_DRVAPI_T_H ppavel@26: ppavel@26: #ifdef __KERNEL__ ppavel@26: ppavel@26: #include ppavel@26: #include ppavel@26: #include ppavel@26: ppavel@26: #else /* __KERNEL__ */ ppavel@26: ppavel@26: #include ppavel@26: #include ppavel@26: #include ppavel@26: ppavel@26: #endif /* __KERNEL__ */ ppavel@26: ppavel@26: #include "./canmsg.h" ppavel@26: ppavel@26: #ifdef __cplusplus ppavel@26: extern "C" { ppavel@26: #endif ppavel@26: ppavel@26: /* CAN ioctl magic number */ ppavel@26: #define CAN_IOC_MAGIC 'd' ppavel@26: ppavel@26: typedef unsigned long bittiming_t; ppavel@26: typedef unsigned short channel_t; ppavel@26: ppavel@26: /** ppavel@26: * struct can_baudparams_t - datatype for calling CONF_BAUDPARAMS IOCTL ppavel@26: * @flags: reserved for additional flags for chip configuration, should be written -1 or 0 ppavel@26: * @baudrate: baud rate in Hz ppavel@26: * @sjw: synchronization jump width (0-3) prescaled clock cycles ppavel@26: * @sampl_pt: sample point in % (0-100) sets (TSEG1+1)/(TSEG1+TSEG2+2) ratio ppavel@26: * ppavel@26: * The structure is used to configure new set of parameters into CAN controller chip. ppavel@26: * If default value of some field should be preserved, fill field by value -1. ppavel@26: */ ppavel@26: struct can_baudparams_t { ppavel@26: long flags; ppavel@26: long baudrate; ppavel@26: long sjw; ppavel@26: long sample_pt; ppavel@26: }; ppavel@26: ppavel@26: /* CAN ioctl functions */ ppavel@26: #define CAN_DRV_QUERY _IO(CAN_IOC_MAGIC, 0) ppavel@26: #define CAN_DRV_QRY_BRANCH 0 /* returns driver branch value - "LINC" for LinCAN driver */ ppavel@26: #define CAN_DRV_QRY_VERSION 1 /* returns driver version as (major<<16) | (minor<<8) | patch */ ppavel@26: #define CAN_DRV_QRY_MSGFORMAT 2 /* format of canmsg_t structure */ ppavel@26: ppavel@26: #define CMD_START _IOW(CAN_IOC_MAGIC, 1, channel_t) ppavel@26: #define CMD_STOP _IOW(CAN_IOC_MAGIC, 2, channel_t) ppavel@26: //#define CMD_RESET 3 ppavel@26: ppavel@26: #define CONF_BAUD _IOW(CAN_IOC_MAGIC, 4, bittiming_t) ppavel@26: //#define CONF_ACCM ppavel@26: //#define CONF_XTDACCM ppavel@26: //#define CONF_TIMING ppavel@26: //#define CONF_OMODE ppavel@26: #define CONF_FILTER _IOW(CAN_IOC_MAGIC, 8, unsigned char) ppavel@26: ppavel@26: //#define CONF_FENABLE ppavel@26: //#define CONF_FDISABLE ppavel@26: ppavel@26: #define STAT _IO(CAN_IOC_MAGIC, 9) ppavel@26: #define CANQUE_FILTER _IOW(CAN_IOC_MAGIC, 10, struct canfilt_t) ppavel@26: #define CANQUE_FLUSH _IO(CAN_IOC_MAGIC, 11) ppavel@26: #define CONF_BAUDPARAMS _IOW(CAN_IOC_MAGIC, 11, struct can_baudparams_t) ppavel@26: #define CANRTR_READ _IOWR(CAN_IOC_MAGIC, 12, struct canmsg_t) ppavel@26: ppavel@26: #ifdef __cplusplus ppavel@26: } /* extern "C"*/ ppavel@26: #endif ppavel@26: ppavel@26: #endif /*_CAN_DRVAPI_T_H*/