* Version lincan-0.2 9 Jul 2003
*/
-#include <linux/autoconf.h>
-
-#include <linux/fs.h>
-#include <linux/version.h>
-#include <linux/string.h>
-#include <asm/uaccess.h>
-
+#include "../include/can.h"
+#include "../include/can_sysdep.h"
#include "../include/main.h"
#include "../include/ioctl.h"
#include "../include/i82527.h"
struct canque_ends_t *qends;
if(!canuser || (canuser->magic != CAN_USER_MAGIC)){
- CANMSG("can_close: bad canuser magic\n");
+ CANMSG("can_ioctl: bad canuser magic\n");
return -ENODEV;
}
}
switch (cmd) {
+ case CAN_DRV_QUERY: {
+ return can_ioctl_query(canuser, arg);
+ }
case STAT: {
for (i=0x0; i<0x100; i++)
CANMSG("0x%x is 0x%x\n",i,can_read_reg(chip,i));
return -1;
break;
}
+ case CANQUE_FLUSH: {
+ canque_flush(canuser->rx_edge0);
+ break;
+ }
case CONF_FILTER: {
#if 0
if (!strcmp(chip->chip_type,"i82527")) {
/* In- and output buffer re-initialization */
if(canuser->rx_edge0){
- canque_set_filt(canuser->rx_edge0, arg, ~0);
- canque_flush(canuser->rx_edge0);
+ canque_set_filt(canuser->rx_edge0, arg, ~0, 0);
}
break;
}
- case CONF_FILTER_QUE0: {
+ case CANQUE_FILTER: {
struct canfilt_t canfilt;
copy_from_user(&canfilt, (void*)arg, sizeof(struct canfilt_t));
if(canuser->rx_edge0){
- canque_set_filt(canuser->rx_edge0, canfilt.id, canfilt.mask);
- canque_flush(canuser->rx_edge0);
+ canque_set_filt(canuser->rx_edge0, canfilt.id, canfilt.mask, canfilt.flags);
}
break;
}