X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/fb2dd0f20bd6264291dccb5e97609a23cae2fd1a..1d20caee804d28a792dcacbf8424dc23b80c6370:/lincan/src/ioctl_rtl.c diff --git a/lincan/src/ioctl_rtl.c b/lincan/src/ioctl_rtl.c index 449b345..88c2641 100644 --- a/lincan/src/ioctl_rtl.c +++ b/lincan/src/ioctl_rtl.c @@ -4,7 +4,7 @@ * Rewritten for new CAN queues by Pavel Pisa - OCERA team member * email:pisa@cmp.felk.cvut.cz * This software is released under the GPL-License. - * Version lincan-0.2 9 Jul 2003 + * Version lincan-0.3 17 Jun 2004 */ #ifdef CAN_WITH_RTL @@ -14,6 +14,7 @@ #include "../include/main.h" #include +#include "../include/ioctl.h" #include "../include/can_iortl.h" @@ -25,7 +26,7 @@ int can_ioctl_rtl_posix(struct rtl_file *fptr, unsigned int cmd, unsigned long a unsigned short channel=0; unsigned btr0=0, btr1=0; struct msgobj_t *obj; - struct chip_t *chip; + struct canchip_t *chip; struct canque_ends_t *qends; if(!canuser || (canuser->magic != CAN_USER_MAGIC)){ @@ -48,6 +49,9 @@ int can_ioctl_rtl_posix(struct rtl_file *fptr, unsigned int cmd, unsigned long a } 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)); @@ -76,8 +80,7 @@ int can_ioctl_rtl_posix(struct rtl_file *fptr, unsigned int cmd, unsigned long a } case CANQUE_FILTER: { - struct canfilt_t canfilt; - copy_from_user(&canfilt, (void*)arg, sizeof(struct canfilt_t)); + struct canfilt_t canfilt=*(struct canfilt_t *)arg; if(canuser->rx_edge0){ canque_set_filt(canuser->rx_edge0, canfilt.id, canfilt.mask, canfilt.flags); }