[Xenomai-git] Jan Kiszka : rtcan: Update procfs usage to latest kernel API
Module: xenomai-2.6 Branch: master Commit: e96c29c969ef721c927c9c9fe195a9f294827aec URL: http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=e96c29c969ef721c927c9c9fe195a9f294827aec Author: Jan Kiszka Date: Wed Aug 21 15:58:27 2013 +0200 rtcan: Update procfs usage to latest kernel API This both overcomes RTCAN_PROC_* macros and makes the CAN layer compatible with kernel 3.10. We simply switch all procfs nodes to seq_file. Signed-off-by: Jan Kiszka --- include/asm-generic/wrappers.h| 13 ++ ksrc/drivers/can/mscan/rtcan_mscan_proc.c | 147 +++--- ksrc/drivers/can/rtcan_internal.h | 62 -- ksrc/drivers/can/rtcan_module.c | 266 - ksrc/drivers/can/sja1000/rtcan_sja1000_proc.c | 48 ++--- 5 files changed, 233 insertions(+), 303 deletions(-) diff --git a/include/asm-generic/wrappers.h b/include/asm-generic/wrappers.h index 0a4b45b..9108cbd 100644 --- a/include/asm-generic/wrappers.h +++ b/include/asm-generic/wrappers.h @@ -784,6 +784,19 @@ proc_create_data(const char *name, mode_t mode, struct proc_dir_entry *parent, return pde; } #endif /* < 2.6.26 */ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) +static inline struct proc_dir_entry * +proc_create(const char *name, mode_t mode, struct proc_dir_entry *parent, + const struct file_operations *proc_fops) +{ + struct proc_dir_entry *pde = create_proc_entry(name, mode, parent); + + if (pde) + pde->proc_fops = proc_fops; + return pde; +} +#endif /* < 2.6.25 */ #endif /* < 3.10 */ #endif /* _XENO_ASM_GENERIC_WRAPPERS_H */ diff --git a/ksrc/drivers/can/mscan/rtcan_mscan_proc.c b/ksrc/drivers/can/mscan/rtcan_mscan_proc.c index 69f77a2..c5aad74 100644 --- a/ksrc/drivers/can/mscan/rtcan_mscan_proc.c +++ b/ksrc/drivers/can/mscan/rtcan_mscan_proc.c @@ -33,8 +33,7 @@ #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG -static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, -int count, int *eof, void *data) +static int rtcan_mscan_proc_regs(struct seq_file *p, void *data) { struct rtcan_device *dev = (struct rtcan_device *)data; struct mscan_regs *regs = (struct mscan_regs *)dev->base_addr; @@ -43,98 +42,94 @@ static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, u32 port_config; #endif u8 canctl0, canctl1; - RTCAN_PROC_PRINT_VARS(80); - if (!RTCAN_PROC_PRINT("MSCAN registers at %p\n", regs)) - goto done; + seq_printf(p, "MSCAN registers at %p\n", regs); + canctl0 = in_8(®s->canctl0); - if (!RTCAN_PROC_PRINT("canctl0 0x%02x%s%s%s%s%s%s%s%s\n", - canctl0, - (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", - (canctl0 & MSCAN_RXACT) ? " rxact" :"", - (canctl0 & MSCAN_CSWAI) ? " cswai" :"", - (canctl0 & MSCAN_SYNCH) ? " synch" :"", - (canctl0 & MSCAN_TIME) ? " time" :"", - (canctl0 & MSCAN_WUPE) ? " wupe" :"", - (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", - (canctl0 & MSCAN_INITRQ)? " initrq":"" )) - goto done; + seq_printf(p, "canctl0 0x%02x%s%s%s%s%s%s%s%s\n", + canctl0, + (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", + (canctl0 & MSCAN_RXACT) ? " rxact" :"", + (canctl0 & MSCAN_CSWAI) ? " cswai" :"", + (canctl0 & MSCAN_SYNCH) ? " synch" :"", + (canctl0 & MSCAN_TIME) ? " time" :"", + (canctl0 & MSCAN_WUPE) ? " wupe" :"", + (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", + (canctl0 & MSCAN_INITRQ)? " initrq":"" ); canctl1 = in_8(®s->canctl1); - if (!RTCAN_PROC_PRINT("canctl1 0x%02x%s%s%s%s%s%s%s\n", - canctl1, - (canctl1 & MSCAN_CANE) ? " cane" :"", - (canctl1 & MSCAN_CLKSRC)? " clksrc":"", - (canctl1 & MSCAN_LOOPB) ? " loopb" :"", - (canctl1 & MSCAN_LISTEN)? " listen":"", - (canctl1 & MSCAN_WUPM) ? " wump" :"", - (canctl1 & MSCAN_SLPAK) ? " slpak" :"", - (canctl1 & MSCAN_INITAK)? " initak":"")) - goto done; - if (!RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr0 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr1 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantarq )) | - !RTCA
[Xenomai-git] Jan Kiszka : rtcan: Update procfs usage to latest kernel API
Module: xenomai-forge Branch: master Commit: c688c19b1b3ae2baa4ee900b730a5240cda22411 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=c688c19b1b3ae2baa4ee900b730a5240cda22411 Author: Jan Kiszka Date: Wed Aug 21 15:58:27 2013 +0200 rtcan: Update procfs usage to latest kernel API This both overcomes RTCAN_PROC_* macros and makes the CAN layer compatible with kernel 3.10. We simply switch all procfs nodes to seq_file. Signed-off-by: Jan Kiszka --- kernel/drivers/can/mscan/rtcan_mscan_proc.c | 147 ++--- kernel/drivers/can/rtcan_internal.h | 62 -- kernel/drivers/can/rtcan_module.c | 266 +++ kernel/drivers/can/sja1000/rtcan_sja1000_proc.c | 48 ++--- 4 files changed, 220 insertions(+), 303 deletions(-) diff --git a/kernel/drivers/can/mscan/rtcan_mscan_proc.c b/kernel/drivers/can/mscan/rtcan_mscan_proc.c index 69f77a2..c5aad74 100644 --- a/kernel/drivers/can/mscan/rtcan_mscan_proc.c +++ b/kernel/drivers/can/mscan/rtcan_mscan_proc.c @@ -33,8 +33,7 @@ #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG -static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, -int count, int *eof, void *data) +static int rtcan_mscan_proc_regs(struct seq_file *p, void *data) { struct rtcan_device *dev = (struct rtcan_device *)data; struct mscan_regs *regs = (struct mscan_regs *)dev->base_addr; @@ -43,98 +42,94 @@ static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, u32 port_config; #endif u8 canctl0, canctl1; - RTCAN_PROC_PRINT_VARS(80); - if (!RTCAN_PROC_PRINT("MSCAN registers at %p\n", regs)) - goto done; + seq_printf(p, "MSCAN registers at %p\n", regs); + canctl0 = in_8(®s->canctl0); - if (!RTCAN_PROC_PRINT("canctl0 0x%02x%s%s%s%s%s%s%s%s\n", - canctl0, - (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", - (canctl0 & MSCAN_RXACT) ? " rxact" :"", - (canctl0 & MSCAN_CSWAI) ? " cswai" :"", - (canctl0 & MSCAN_SYNCH) ? " synch" :"", - (canctl0 & MSCAN_TIME) ? " time" :"", - (canctl0 & MSCAN_WUPE) ? " wupe" :"", - (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", - (canctl0 & MSCAN_INITRQ)? " initrq":"" )) - goto done; + seq_printf(p, "canctl0 0x%02x%s%s%s%s%s%s%s%s\n", + canctl0, + (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", + (canctl0 & MSCAN_RXACT) ? " rxact" :"", + (canctl0 & MSCAN_CSWAI) ? " cswai" :"", + (canctl0 & MSCAN_SYNCH) ? " synch" :"", + (canctl0 & MSCAN_TIME) ? " time" :"", + (canctl0 & MSCAN_WUPE) ? " wupe" :"", + (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", + (canctl0 & MSCAN_INITRQ)? " initrq":"" ); canctl1 = in_8(®s->canctl1); - if (!RTCAN_PROC_PRINT("canctl1 0x%02x%s%s%s%s%s%s%s\n", - canctl1, - (canctl1 & MSCAN_CANE) ? " cane" :"", - (canctl1 & MSCAN_CLKSRC)? " clksrc":"", - (canctl1 & MSCAN_LOOPB) ? " loopb" :"", - (canctl1 & MSCAN_LISTEN)? " listen":"", - (canctl1 & MSCAN_WUPM) ? " wump" :"", - (canctl1 & MSCAN_SLPAK) ? " slpak" :"", - (canctl1 & MSCAN_INITAK)? " initak":"")) - goto done; - if (!RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr0 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr1 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantarq )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantaak )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantbsel)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidac )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar4)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(
[Xenomai-git] Jan Kiszka : rtcan: Update procfs usage to latest kernel API
Module: xenomai-forge Branch: next Commit: c688c19b1b3ae2baa4ee900b730a5240cda22411 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=c688c19b1b3ae2baa4ee900b730a5240cda22411 Author: Jan Kiszka Date: Wed Aug 21 15:58:27 2013 +0200 rtcan: Update procfs usage to latest kernel API This both overcomes RTCAN_PROC_* macros and makes the CAN layer compatible with kernel 3.10. We simply switch all procfs nodes to seq_file. Signed-off-by: Jan Kiszka --- kernel/drivers/can/mscan/rtcan_mscan_proc.c | 147 ++--- kernel/drivers/can/rtcan_internal.h | 62 -- kernel/drivers/can/rtcan_module.c | 266 +++ kernel/drivers/can/sja1000/rtcan_sja1000_proc.c | 48 ++--- 4 files changed, 220 insertions(+), 303 deletions(-) diff --git a/kernel/drivers/can/mscan/rtcan_mscan_proc.c b/kernel/drivers/can/mscan/rtcan_mscan_proc.c index 69f77a2..c5aad74 100644 --- a/kernel/drivers/can/mscan/rtcan_mscan_proc.c +++ b/kernel/drivers/can/mscan/rtcan_mscan_proc.c @@ -33,8 +33,7 @@ #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG -static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, -int count, int *eof, void *data) +static int rtcan_mscan_proc_regs(struct seq_file *p, void *data) { struct rtcan_device *dev = (struct rtcan_device *)data; struct mscan_regs *regs = (struct mscan_regs *)dev->base_addr; @@ -43,98 +42,94 @@ static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, u32 port_config; #endif u8 canctl0, canctl1; - RTCAN_PROC_PRINT_VARS(80); - if (!RTCAN_PROC_PRINT("MSCAN registers at %p\n", regs)) - goto done; + seq_printf(p, "MSCAN registers at %p\n", regs); + canctl0 = in_8(®s->canctl0); - if (!RTCAN_PROC_PRINT("canctl0 0x%02x%s%s%s%s%s%s%s%s\n", - canctl0, - (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", - (canctl0 & MSCAN_RXACT) ? " rxact" :"", - (canctl0 & MSCAN_CSWAI) ? " cswai" :"", - (canctl0 & MSCAN_SYNCH) ? " synch" :"", - (canctl0 & MSCAN_TIME) ? " time" :"", - (canctl0 & MSCAN_WUPE) ? " wupe" :"", - (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", - (canctl0 & MSCAN_INITRQ)? " initrq":"" )) - goto done; + seq_printf(p, "canctl0 0x%02x%s%s%s%s%s%s%s%s\n", + canctl0, + (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", + (canctl0 & MSCAN_RXACT) ? " rxact" :"", + (canctl0 & MSCAN_CSWAI) ? " cswai" :"", + (canctl0 & MSCAN_SYNCH) ? " synch" :"", + (canctl0 & MSCAN_TIME) ? " time" :"", + (canctl0 & MSCAN_WUPE) ? " wupe" :"", + (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", + (canctl0 & MSCAN_INITRQ)? " initrq":"" ); canctl1 = in_8(®s->canctl1); - if (!RTCAN_PROC_PRINT("canctl1 0x%02x%s%s%s%s%s%s%s\n", - canctl1, - (canctl1 & MSCAN_CANE) ? " cane" :"", - (canctl1 & MSCAN_CLKSRC)? " clksrc":"", - (canctl1 & MSCAN_LOOPB) ? " loopb" :"", - (canctl1 & MSCAN_LISTEN)? " listen":"", - (canctl1 & MSCAN_WUPM) ? " wump" :"", - (canctl1 & MSCAN_SLPAK) ? " slpak" :"", - (canctl1 & MSCAN_INITAK)? " initak":"")) - goto done; - if (!RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr0 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr1 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantarq )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantaak )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantbsel)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidac )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar4)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(ca
[Xenomai-git] Jan Kiszka : rtcan: Update procfs usage to latest kernel API
Module: xenomai-jki Branch: for-forge Commit: c688c19b1b3ae2baa4ee900b730a5240cda22411 URL: http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=c688c19b1b3ae2baa4ee900b730a5240cda22411 Author: Jan Kiszka Date: Wed Aug 21 15:58:27 2013 +0200 rtcan: Update procfs usage to latest kernel API This both overcomes RTCAN_PROC_* macros and makes the CAN layer compatible with kernel 3.10. We simply switch all procfs nodes to seq_file. Signed-off-by: Jan Kiszka --- kernel/drivers/can/mscan/rtcan_mscan_proc.c | 147 ++--- kernel/drivers/can/rtcan_internal.h | 62 -- kernel/drivers/can/rtcan_module.c | 266 +++ kernel/drivers/can/sja1000/rtcan_sja1000_proc.c | 48 ++--- 4 files changed, 220 insertions(+), 303 deletions(-) diff --git a/kernel/drivers/can/mscan/rtcan_mscan_proc.c b/kernel/drivers/can/mscan/rtcan_mscan_proc.c index 69f77a2..c5aad74 100644 --- a/kernel/drivers/can/mscan/rtcan_mscan_proc.c +++ b/kernel/drivers/can/mscan/rtcan_mscan_proc.c @@ -33,8 +33,7 @@ #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG -static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, -int count, int *eof, void *data) +static int rtcan_mscan_proc_regs(struct seq_file *p, void *data) { struct rtcan_device *dev = (struct rtcan_device *)data; struct mscan_regs *regs = (struct mscan_regs *)dev->base_addr; @@ -43,98 +42,94 @@ static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, u32 port_config; #endif u8 canctl0, canctl1; - RTCAN_PROC_PRINT_VARS(80); - if (!RTCAN_PROC_PRINT("MSCAN registers at %p\n", regs)) - goto done; + seq_printf(p, "MSCAN registers at %p\n", regs); + canctl0 = in_8(®s->canctl0); - if (!RTCAN_PROC_PRINT("canctl0 0x%02x%s%s%s%s%s%s%s%s\n", - canctl0, - (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", - (canctl0 & MSCAN_RXACT) ? " rxact" :"", - (canctl0 & MSCAN_CSWAI) ? " cswai" :"", - (canctl0 & MSCAN_SYNCH) ? " synch" :"", - (canctl0 & MSCAN_TIME) ? " time" :"", - (canctl0 & MSCAN_WUPE) ? " wupe" :"", - (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", - (canctl0 & MSCAN_INITRQ)? " initrq":"" )) - goto done; + seq_printf(p, "canctl0 0x%02x%s%s%s%s%s%s%s%s\n", + canctl0, + (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", + (canctl0 & MSCAN_RXACT) ? " rxact" :"", + (canctl0 & MSCAN_CSWAI) ? " cswai" :"", + (canctl0 & MSCAN_SYNCH) ? " synch" :"", + (canctl0 & MSCAN_TIME) ? " time" :"", + (canctl0 & MSCAN_WUPE) ? " wupe" :"", + (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", + (canctl0 & MSCAN_INITRQ)? " initrq":"" ); canctl1 = in_8(®s->canctl1); - if (!RTCAN_PROC_PRINT("canctl1 0x%02x%s%s%s%s%s%s%s\n", - canctl1, - (canctl1 & MSCAN_CANE) ? " cane" :"", - (canctl1 & MSCAN_CLKSRC)? " clksrc":"", - (canctl1 & MSCAN_LOOPB) ? " loopb" :"", - (canctl1 & MSCAN_LISTEN)? " listen":"", - (canctl1 & MSCAN_WUPM) ? " wump" :"", - (canctl1 & MSCAN_SLPAK) ? " slpak" :"", - (canctl1 & MSCAN_INITAK)? " initak":"")) - goto done; - if (!RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr0 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr1 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantarq )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantaak )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantbsel)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidac )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar4)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(c
[Xenomai-git] Jan Kiszka : rtcan: Update procfs usage to latest kernel API
Module: xenomai-jki Branch: for-forge Commit: 91d3ea096da964334858561babdf29abc1154889 URL: http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=91d3ea096da964334858561babdf29abc1154889 Author: Jan Kiszka Date: Wed Aug 21 15:58:27 2013 +0200 rtcan: Update procfs usage to latest kernel API This both overcomes RTCAN_PROC_* macros and makes the CAN layer compatible with kernel 3.10. We simply switch all procfs nodes to seq_file. Signed-off-by: Jan Kiszka --- kernel/drivers/can/mscan/rtcan_mscan_proc.c | 147 ++--- kernel/drivers/can/rtcan_internal.h | 62 -- kernel/drivers/can/rtcan_module.c | 266 +++ kernel/drivers/can/sja1000/rtcan_sja1000_proc.c | 48 ++--- 4 files changed, 220 insertions(+), 303 deletions(-) diff --git a/kernel/drivers/can/mscan/rtcan_mscan_proc.c b/kernel/drivers/can/mscan/rtcan_mscan_proc.c index 69f77a2..c5aad74 100644 --- a/kernel/drivers/can/mscan/rtcan_mscan_proc.c +++ b/kernel/drivers/can/mscan/rtcan_mscan_proc.c @@ -33,8 +33,7 @@ #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG -static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, -int count, int *eof, void *data) +static int rtcan_mscan_proc_regs(struct seq_file *p, void *data) { struct rtcan_device *dev = (struct rtcan_device *)data; struct mscan_regs *regs = (struct mscan_regs *)dev->base_addr; @@ -43,98 +42,94 @@ static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, u32 port_config; #endif u8 canctl0, canctl1; - RTCAN_PROC_PRINT_VARS(80); - if (!RTCAN_PROC_PRINT("MSCAN registers at %p\n", regs)) - goto done; + seq_printf(p, "MSCAN registers at %p\n", regs); + canctl0 = in_8(®s->canctl0); - if (!RTCAN_PROC_PRINT("canctl0 0x%02x%s%s%s%s%s%s%s%s\n", - canctl0, - (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", - (canctl0 & MSCAN_RXACT) ? " rxact" :"", - (canctl0 & MSCAN_CSWAI) ? " cswai" :"", - (canctl0 & MSCAN_SYNCH) ? " synch" :"", - (canctl0 & MSCAN_TIME) ? " time" :"", - (canctl0 & MSCAN_WUPE) ? " wupe" :"", - (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", - (canctl0 & MSCAN_INITRQ)? " initrq":"" )) - goto done; + seq_printf(p, "canctl0 0x%02x%s%s%s%s%s%s%s%s\n", + canctl0, + (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", + (canctl0 & MSCAN_RXACT) ? " rxact" :"", + (canctl0 & MSCAN_CSWAI) ? " cswai" :"", + (canctl0 & MSCAN_SYNCH) ? " synch" :"", + (canctl0 & MSCAN_TIME) ? " time" :"", + (canctl0 & MSCAN_WUPE) ? " wupe" :"", + (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", + (canctl0 & MSCAN_INITRQ)? " initrq":"" ); canctl1 = in_8(®s->canctl1); - if (!RTCAN_PROC_PRINT("canctl1 0x%02x%s%s%s%s%s%s%s\n", - canctl1, - (canctl1 & MSCAN_CANE) ? " cane" :"", - (canctl1 & MSCAN_CLKSRC)? " clksrc":"", - (canctl1 & MSCAN_LOOPB) ? " loopb" :"", - (canctl1 & MSCAN_LISTEN)? " listen":"", - (canctl1 & MSCAN_WUPM) ? " wump" :"", - (canctl1 & MSCAN_SLPAK) ? " slpak" :"", - (canctl1 & MSCAN_INITAK)? " initak":"")) - goto done; - if (!RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr0 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr1 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantarq )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantaak )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantbsel)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidac )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar4)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(c
[Xenomai-git] Jan Kiszka : rtcan: Update procfs usage to latest kernel API
Module: xenomai-jki Branch: for-forge Commit: 20c78f0de549357f6097551d6c15e66181608669 URL: http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=20c78f0de549357f6097551d6c15e66181608669 Author: Jan Kiszka Date: Wed Aug 21 15:58:27 2013 +0200 rtcan: Update procfs usage to latest kernel API This both overcomes RTCAN_PROC_* macros and makes the CAN layer compatible with kernel 3.10. We simply switch all procfs nodes to seq_file. Signed-off-by: Jan Kiszka --- kernel/drivers/can/mscan/rtcan_mscan_proc.c | 147 ++--- kernel/drivers/can/rtcan_internal.h | 62 -- kernel/drivers/can/rtcan_module.c | 266 +++ kernel/drivers/can/sja1000/rtcan_sja1000_proc.c | 48 ++--- 4 files changed, 220 insertions(+), 303 deletions(-) diff --git a/kernel/drivers/can/mscan/rtcan_mscan_proc.c b/kernel/drivers/can/mscan/rtcan_mscan_proc.c index 69f77a2..c5aad74 100644 --- a/kernel/drivers/can/mscan/rtcan_mscan_proc.c +++ b/kernel/drivers/can/mscan/rtcan_mscan_proc.c @@ -33,8 +33,7 @@ #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG -static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, -int count, int *eof, void *data) +static int rtcan_mscan_proc_regs(struct seq_file *p, void *data) { struct rtcan_device *dev = (struct rtcan_device *)data; struct mscan_regs *regs = (struct mscan_regs *)dev->base_addr; @@ -43,98 +42,94 @@ static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, u32 port_config; #endif u8 canctl0, canctl1; - RTCAN_PROC_PRINT_VARS(80); - if (!RTCAN_PROC_PRINT("MSCAN registers at %p\n", regs)) - goto done; + seq_printf(p, "MSCAN registers at %p\n", regs); + canctl0 = in_8(®s->canctl0); - if (!RTCAN_PROC_PRINT("canctl0 0x%02x%s%s%s%s%s%s%s%s\n", - canctl0, - (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", - (canctl0 & MSCAN_RXACT) ? " rxact" :"", - (canctl0 & MSCAN_CSWAI) ? " cswai" :"", - (canctl0 & MSCAN_SYNCH) ? " synch" :"", - (canctl0 & MSCAN_TIME) ? " time" :"", - (canctl0 & MSCAN_WUPE) ? " wupe" :"", - (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", - (canctl0 & MSCAN_INITRQ)? " initrq":"" )) - goto done; + seq_printf(p, "canctl0 0x%02x%s%s%s%s%s%s%s%s\n", + canctl0, + (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", + (canctl0 & MSCAN_RXACT) ? " rxact" :"", + (canctl0 & MSCAN_CSWAI) ? " cswai" :"", + (canctl0 & MSCAN_SYNCH) ? " synch" :"", + (canctl0 & MSCAN_TIME) ? " time" :"", + (canctl0 & MSCAN_WUPE) ? " wupe" :"", + (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", + (canctl0 & MSCAN_INITRQ)? " initrq":"" ); canctl1 = in_8(®s->canctl1); - if (!RTCAN_PROC_PRINT("canctl1 0x%02x%s%s%s%s%s%s%s\n", - canctl1, - (canctl1 & MSCAN_CANE) ? " cane" :"", - (canctl1 & MSCAN_CLKSRC)? " clksrc":"", - (canctl1 & MSCAN_LOOPB) ? " loopb" :"", - (canctl1 & MSCAN_LISTEN)? " listen":"", - (canctl1 & MSCAN_WUPM) ? " wump" :"", - (canctl1 & MSCAN_SLPAK) ? " slpak" :"", - (canctl1 & MSCAN_INITAK)? " initak":"")) - goto done; - if (!RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr0 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr1 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantarq )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantaak )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantbsel)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidac )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantxerr)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr0)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr1)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr2)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidmr3)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canidar4)) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(c
[Xenomai-git] Jan Kiszka : rtcan: Update procfs usage to latest kernel API
Module: xenomai-jki Branch: queues/ftrace Commit: 2a44fdb633ddb68ef01cab5d65041f23c635a4c8 URL: http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=2a44fdb633ddb68ef01cab5d65041f23c635a4c8 Author: Jan Kiszka Date: Wed Aug 21 15:58:27 2013 +0200 rtcan: Update procfs usage to latest kernel API This both overcomes RTCAN_PROC_* macros and makes the CAN layer compatible with kernel 3.10. We simply switch all procfs nodes to seq_file. Signed-off-by: Jan Kiszka --- include/asm-generic/wrappers.h| 13 ++ ksrc/drivers/can/mscan/rtcan_mscan_proc.c | 147 +++--- ksrc/drivers/can/rtcan_internal.h | 62 -- ksrc/drivers/can/rtcan_module.c | 266 - ksrc/drivers/can/sja1000/rtcan_sja1000_proc.c | 48 ++--- 5 files changed, 233 insertions(+), 303 deletions(-) diff --git a/include/asm-generic/wrappers.h b/include/asm-generic/wrappers.h index 0a4b45b..9108cbd 100644 --- a/include/asm-generic/wrappers.h +++ b/include/asm-generic/wrappers.h @@ -784,6 +784,19 @@ proc_create_data(const char *name, mode_t mode, struct proc_dir_entry *parent, return pde; } #endif /* < 2.6.26 */ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) +static inline struct proc_dir_entry * +proc_create(const char *name, mode_t mode, struct proc_dir_entry *parent, + const struct file_operations *proc_fops) +{ + struct proc_dir_entry *pde = create_proc_entry(name, mode, parent); + + if (pde) + pde->proc_fops = proc_fops; + return pde; +} +#endif /* < 2.6.25 */ #endif /* < 3.10 */ #endif /* _XENO_ASM_GENERIC_WRAPPERS_H */ diff --git a/ksrc/drivers/can/mscan/rtcan_mscan_proc.c b/ksrc/drivers/can/mscan/rtcan_mscan_proc.c index 69f77a2..c5aad74 100644 --- a/ksrc/drivers/can/mscan/rtcan_mscan_proc.c +++ b/ksrc/drivers/can/mscan/rtcan_mscan_proc.c @@ -33,8 +33,7 @@ #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG -static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, -int count, int *eof, void *data) +static int rtcan_mscan_proc_regs(struct seq_file *p, void *data) { struct rtcan_device *dev = (struct rtcan_device *)data; struct mscan_regs *regs = (struct mscan_regs *)dev->base_addr; @@ -43,98 +42,94 @@ static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, u32 port_config; #endif u8 canctl0, canctl1; - RTCAN_PROC_PRINT_VARS(80); - if (!RTCAN_PROC_PRINT("MSCAN registers at %p\n", regs)) - goto done; + seq_printf(p, "MSCAN registers at %p\n", regs); + canctl0 = in_8(®s->canctl0); - if (!RTCAN_PROC_PRINT("canctl0 0x%02x%s%s%s%s%s%s%s%s\n", - canctl0, - (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", - (canctl0 & MSCAN_RXACT) ? " rxact" :"", - (canctl0 & MSCAN_CSWAI) ? " cswai" :"", - (canctl0 & MSCAN_SYNCH) ? " synch" :"", - (canctl0 & MSCAN_TIME) ? " time" :"", - (canctl0 & MSCAN_WUPE) ? " wupe" :"", - (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", - (canctl0 & MSCAN_INITRQ)? " initrq":"" )) - goto done; + seq_printf(p, "canctl0 0x%02x%s%s%s%s%s%s%s%s\n", + canctl0, + (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", + (canctl0 & MSCAN_RXACT) ? " rxact" :"", + (canctl0 & MSCAN_CSWAI) ? " cswai" :"", + (canctl0 & MSCAN_SYNCH) ? " synch" :"", + (canctl0 & MSCAN_TIME) ? " time" :"", + (canctl0 & MSCAN_WUPE) ? " wupe" :"", + (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", + (canctl0 & MSCAN_INITRQ)? " initrq":"" ); canctl1 = in_8(®s->canctl1); - if (!RTCAN_PROC_PRINT("canctl1 0x%02x%s%s%s%s%s%s%s\n", - canctl1, - (canctl1 & MSCAN_CANE) ? " cane" :"", - (canctl1 & MSCAN_CLKSRC)? " clksrc":"", - (canctl1 & MSCAN_LOOPB) ? " loopb" :"", - (canctl1 & MSCAN_LISTEN)? " listen":"", - (canctl1 & MSCAN_WUPM) ? " wump" :"", - (canctl1 & MSCAN_SLPAK) ? " slpak" :"", - (canctl1 & MSCAN_INITAK)? " initak":"")) - goto done; - if (!RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr0 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr1 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantarq )) | -
[Xenomai-git] Jan Kiszka : rtcan: Update procfs usage to latest kernel API
Module: xenomai-jki Branch: for-upstream Commit: 2a44fdb633ddb68ef01cab5d65041f23c635a4c8 URL: http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=2a44fdb633ddb68ef01cab5d65041f23c635a4c8 Author: Jan Kiszka Date: Wed Aug 21 15:58:27 2013 +0200 rtcan: Update procfs usage to latest kernel API This both overcomes RTCAN_PROC_* macros and makes the CAN layer compatible with kernel 3.10. We simply switch all procfs nodes to seq_file. Signed-off-by: Jan Kiszka --- include/asm-generic/wrappers.h| 13 ++ ksrc/drivers/can/mscan/rtcan_mscan_proc.c | 147 +++--- ksrc/drivers/can/rtcan_internal.h | 62 -- ksrc/drivers/can/rtcan_module.c | 266 - ksrc/drivers/can/sja1000/rtcan_sja1000_proc.c | 48 ++--- 5 files changed, 233 insertions(+), 303 deletions(-) diff --git a/include/asm-generic/wrappers.h b/include/asm-generic/wrappers.h index 0a4b45b..9108cbd 100644 --- a/include/asm-generic/wrappers.h +++ b/include/asm-generic/wrappers.h @@ -784,6 +784,19 @@ proc_create_data(const char *name, mode_t mode, struct proc_dir_entry *parent, return pde; } #endif /* < 2.6.26 */ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) +static inline struct proc_dir_entry * +proc_create(const char *name, mode_t mode, struct proc_dir_entry *parent, + const struct file_operations *proc_fops) +{ + struct proc_dir_entry *pde = create_proc_entry(name, mode, parent); + + if (pde) + pde->proc_fops = proc_fops; + return pde; +} +#endif /* < 2.6.25 */ #endif /* < 3.10 */ #endif /* _XENO_ASM_GENERIC_WRAPPERS_H */ diff --git a/ksrc/drivers/can/mscan/rtcan_mscan_proc.c b/ksrc/drivers/can/mscan/rtcan_mscan_proc.c index 69f77a2..c5aad74 100644 --- a/ksrc/drivers/can/mscan/rtcan_mscan_proc.c +++ b/ksrc/drivers/can/mscan/rtcan_mscan_proc.c @@ -33,8 +33,7 @@ #ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG -static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, -int count, int *eof, void *data) +static int rtcan_mscan_proc_regs(struct seq_file *p, void *data) { struct rtcan_device *dev = (struct rtcan_device *)data; struct mscan_regs *regs = (struct mscan_regs *)dev->base_addr; @@ -43,98 +42,94 @@ static int rtcan_mscan_proc_regs(char *buf, char **start, off_t offset, u32 port_config; #endif u8 canctl0, canctl1; - RTCAN_PROC_PRINT_VARS(80); - if (!RTCAN_PROC_PRINT("MSCAN registers at %p\n", regs)) - goto done; + seq_printf(p, "MSCAN registers at %p\n", regs); + canctl0 = in_8(®s->canctl0); - if (!RTCAN_PROC_PRINT("canctl0 0x%02x%s%s%s%s%s%s%s%s\n", - canctl0, - (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", - (canctl0 & MSCAN_RXACT) ? " rxact" :"", - (canctl0 & MSCAN_CSWAI) ? " cswai" :"", - (canctl0 & MSCAN_SYNCH) ? " synch" :"", - (canctl0 & MSCAN_TIME) ? " time" :"", - (canctl0 & MSCAN_WUPE) ? " wupe" :"", - (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", - (canctl0 & MSCAN_INITRQ)? " initrq":"" )) - goto done; + seq_printf(p, "canctl0 0x%02x%s%s%s%s%s%s%s%s\n", + canctl0, + (canctl0 & MSCAN_RXFRM) ? " rxfrm" :"", + (canctl0 & MSCAN_RXACT) ? " rxact" :"", + (canctl0 & MSCAN_CSWAI) ? " cswai" :"", + (canctl0 & MSCAN_SYNCH) ? " synch" :"", + (canctl0 & MSCAN_TIME) ? " time" :"", + (canctl0 & MSCAN_WUPE) ? " wupe" :"", + (canctl0 & MSCAN_SLPRQ) ? " slprq" :"", + (canctl0 & MSCAN_INITRQ)? " initrq":"" ); canctl1 = in_8(®s->canctl1); - if (!RTCAN_PROC_PRINT("canctl1 0x%02x%s%s%s%s%s%s%s\n", - canctl1, - (canctl1 & MSCAN_CANE) ? " cane" :"", - (canctl1 & MSCAN_CLKSRC)? " clksrc":"", - (canctl1 & MSCAN_LOOPB) ? " loopb" :"", - (canctl1 & MSCAN_LISTEN)? " listen":"", - (canctl1 & MSCAN_WUPM) ? " wump" :"", - (canctl1 & MSCAN_SLPAK) ? " slpak" :"", - (canctl1 & MSCAN_INITAK)? " initak":"")) - goto done; - if (!RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr0 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canbtr1 )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(canrier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantflg )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantier )) | - !RTCAN_PROC_PRINT(MSCAN_REG_ARGS(cantarq )) | -