Module: xenomai-jki Branch: queues/proc Commit: 5c8800a02d2c10247e1bf0c24e232abb1d029c67 URL: http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=5c8800a02d2c10247e1bf0c24e232abb1d029c67
Author: Jan Kiszka <jan.kis...@siemens.com> Date: Tue Apr 6 17:37:14 2010 +0200 RTDM: Convert fildes proc to single-seq As read_proc is deprecated and will die soon, we have to convert to single-seq. Start with RTDM's fildes proc entry. Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- ksrc/skins/rtdm/proc.c | 31 ++++++++++++++++++++----------- 1 files changed, 20 insertions(+), 11 deletions(-) diff --git a/ksrc/skins/rtdm/proc.c b/ksrc/skins/rtdm/proc.c index 70ee4a2..ff264b6 100644 --- a/ksrc/skins/rtdm/proc.c +++ b/ksrc/skins/rtdm/proc.c @@ -17,6 +17,8 @@ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include <linux/seq_file.h> + #include "rtdm/internal.h" /* Derived from Erwin Rol's rtai_proc_fs.h. @@ -189,17 +191,26 @@ static int proc_kill_open_fildes(struct file *file, const char __user *buffer, return count; } -static int proc_read_fildes(char *buf, char **start, off_t offset, - int count, int *eof, void *data) +static int fildes_show(struct seq_file *seq, void *v) { - RTDM_PROC_PRINT_VARS(80); - - RTDM_PROC_PRINT("total=%d:open=%d:free=%d\n", RTDM_FD_MAX, - open_fildes, RTDM_FD_MAX - open_fildes); + seq_printf(seq, "total=%d:open=%d:free=%d\n", + RTDM_FD_MAX, open_fildes, RTDM_FD_MAX - open_fildes); + return 0; +} - RTDM_PROC_PRINT_DONE; +static int fildes_proc_open(struct inode *inode, struct file *file) +{ + return single_open(file, fildes_show, NULL); } +static const struct file_operations fildes_operations = { + .owner = THIS_MODULE, + .open = fildes_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + static int proc_read_dev_info(char *buf, char **start, off_t offset, int count, int *eof, void *data) { @@ -313,11 +324,9 @@ int __init rtdm_proc_init(void) proc_entry->read_proc = proc_read_open_fildes; proc_entry->write_proc = proc_kill_open_fildes; - proc_entry = - create_proc_entry("fildes", S_IFREG | S_IRUGO, rtdm_proc_root); - if (!proc_entry) + if (!rthal_add_proc_seq("fildes", &fildes_operations, 0, + rtdm_proc_root)) goto error; - proc_entry->read_proc = proc_read_fildes; return 0; _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git