X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/a6d355f1cf48f39eecb2f1bdead51817d1fd5989..831ccb1f14f7472962fc2d185f32e18105209bd7:/lincan/src/proc.c diff --git a/lincan/src/proc.c b/lincan/src/proc.c index a73f71e..e423b92 100644 --- a/lincan/src/proc.c +++ b/lincan/src/proc.c @@ -27,6 +27,12 @@ int remove_object_from_procdir(int chip_nr); static int can_proc_readlink(struct proc_dir_entry *ent, char *page); #endif +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,25) +#define CAN_PROC_ROOT (&proc_root) +#else /* >= 2.6.26 */ +#define CAN_PROC_ROOT (NULL) +#endif /* >= 2.6.26 */ + static int cc=0; /* static counter for each CAN chip */ static struct canproc_t can_proc_base; @@ -156,7 +162,7 @@ int can_init_procdir(void) mutex_init(&proc_mutex); base->can_proc_entry = can_create_proc_entry("can", S_IFDIR | S_IRUGO | - S_IXUGO, &proc_root); + S_IXUGO, CAN_PROC_ROOT); if (base->can_proc_entry == NULL) return -ENODEV; @@ -186,7 +192,7 @@ int can_delete_procdir(void) if (remove_channels_from_procdir()) return -ENODEV; /* name: "can" */ - if (can_remove_proc_entry(base->can_proc_entry, &proc_root)) + if (can_remove_proc_entry(base->can_proc_entry, CAN_PROC_ROOT)) return -ENODEV; return 0; @@ -211,9 +217,10 @@ static int can_chip_procinfo(char *buf, char **start, off_t offset, len += sprintf(buf+len,"type : %s\n",chip->chip_type); len += sprintf(buf+len,"index : %d\n",chip->chip_idx); len += sprintf(buf+len,"irq : %d\n",chip->chip_irq); - len += sprintf(buf+len,"addr : %lu\n",chip->chip_base_addr); + len += sprintf(buf+len,"addr : %lu\n", + can_ioptr2ulong(chip->chip_base_addr)); len += sprintf(buf+len,"config : %s\n", - (chip->flags & CHIP_CONFIGURED) ? "yes":"no"); + (chip->flags & CHIP_CONFIGURED) ? "yes":"no"); len += sprintf(buf+len,"clock : %ld Hz\n",chip->clock); len += sprintf(buf+len,"baud : %ld\n",chip->baudrate); len += sprintf(buf+len,"num obj : %d\n",chip->max_objects);