[Xenomai-git] Jan Kiszka : cobalt/vfile: Adjust procfs usage to latest kernel API

2013-08-28 Thread git repository hosting
Module: xenomai-jki
Branch: for-forge
Commit: 7cd7f0e48794c84179d33127dd0589e7a7fb8d04
URL:
http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=7cd7f0e48794c84179d33127dd0589e7a7fb8d04

Author: Jan Kiszka jan.kis...@siemens.com
Date:   Wed Aug 21 09:02:01 2013 +0200

cobalt/vfile: Adjust procfs usage to latest kernel API

proc_dir_entry became opaque and create_proc_entry is gone now. Switch
to the new patterns and wrap PDE_DATA as well as proc_create_data for
older kernels.

Note: CAN and Analogy require a more extensive update.

Signed-off-by: Jan Kiszka jan.kis...@siemens.com

---

 .../cobalt/include/asm-generic/xenomai/wrappers.h  |   11 +++
 kernel/cobalt/vfile.c  |   31 +++-
 2 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h 
b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
index 02eeed0..601fc30 100644
--- a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
+++ b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
@@ -72,5 +72,16 @@ unsigned long vm_mmap(struct file *file, unsigned long addr,
 #if LINUX_VERSION_CODE = KERNEL_VERSION(3,9,0)
 #include linux/sched/rt.h
 #endif /* LINUX = 3.9.0 */
+ 
+#if LINUX_VERSION_CODE  KERNEL_VERSION(3,10,0)
+#include linux/proc_fs.h
+
+#define PDE_DATA(inode)PROC_I(inode)-pde-data
+
+static inline void proc_remove(struct proc_dir_entry *pde)
+{
+   remove_proc_entry(pde-name, pde-parent);
+}
+#endif /*  3.10 */
 
 #endif /* _COBALT_ASM_GENERIC_WRAPPERS_H */
diff --git a/kernel/cobalt/vfile.c b/kernel/cobalt/vfile.c
index 6907f2e..932f38a 100644
--- a/kernel/cobalt/vfile.c
+++ b/kernel/cobalt/vfile.c
@@ -148,8 +148,7 @@ static void vfile_snapshot_free(struct 
xnvfile_snapshot_iterator *it, void *buf)
 
 static int vfile_snapshot_open(struct inode *inode, struct file *file)
 {
-   struct proc_dir_entry *pde = PDE(inode);
-   struct xnvfile_snapshot *vfile = pde-data;
+   struct xnvfile_snapshot *vfile = PDE_DATA(inode);
struct xnvfile_snapshot_ops *ops = vfile-ops;
struct xnvfile_snapshot_iterator *it;
int revtag, ret, nrdata;
@@ -318,8 +317,8 @@ static int vfile_snapshot_release(struct inode *inode, 
struct file *file)
 ssize_t vfile_snapshot_write(struct file *file, const char __user *buf,
 size_t size, loff_t *ppos)
 {
-   struct proc_dir_entry *pde = PDE(file-f_path.dentry-d_inode);
-   struct xnvfile_snapshot *vfile = pde-data;
+   struct xnvfile_snapshot *vfile =
+   PDE_DATA(file-f_path.dentry-d_inode);
struct xnvfile_input input;
ssize_t ret;
 
@@ -414,12 +413,10 @@ int xnvfile_init_snapshot(const char *name,
 
mode = vfile-ops-store ? 0644 : 0444;
ppde = parent-entry.pde;
-   pde = create_proc_entry(name, mode, ppde);
+   pde = proc_create_data(name, mode, ppde, vfile_snapshot_fops, vfile);
if (pde == NULL)
return -ENOMEM;
 
-   pde-proc_fops = vfile_snapshot_fops;
-   pde-data = vfile;
vfile-entry.parent = parent;
vfile-entry.pde = pde;
 
@@ -505,8 +502,7 @@ static struct seq_operations vfile_regular_ops = {
 
 static int vfile_regular_open(struct inode *inode, struct file *file)
 {
-   struct proc_dir_entry *pde = PDE(inode);
-   struct xnvfile_regular *vfile = pde-data;
+   struct xnvfile_regular *vfile = PDE_DATA(inode);
struct xnvfile_regular_ops *ops = vfile-ops;
struct xnvfile_regular_iterator *it;
struct seq_file *seq;
@@ -574,8 +570,8 @@ static int vfile_regular_release(struct inode *inode, 
struct file *file)
 ssize_t vfile_regular_write(struct file *file, const char __user *buf,
size_t size, loff_t *ppos)
 {
-   struct proc_dir_entry *pde = PDE(file-f_path.dentry-d_inode);
-   struct xnvfile_regular *vfile = pde-data;
+   struct xnvfile_regular *vfile =
+   PDE_DATA(file-f_path.dentry-d_inode);
struct xnvfile_input input;
ssize_t ret;
 
@@ -650,12 +646,10 @@ int xnvfile_init_regular(const char *name,
 
mode = vfile-ops-store ? 0644 : 0444;
ppde = parent-entry.pde;
-   pde = create_proc_entry(name, mode, ppde);
+   pde = proc_create_data(name, mode, ppde, vfile_regular_fops, vfile);
if (pde == NULL)
return -ENOMEM;
 
-   pde-proc_fops = vfile_regular_fops;
-   pde-data = vfile;
vfile-entry.parent = parent;
vfile-entry.pde = pde;
 
@@ -693,7 +687,7 @@ int xnvfile_init_dir(const char *name,
parent = sysroot;
 
ppde = parent-entry.pde;
-   pde = create_proc_entry(name, S_IFDIR, ppde);
+   pde = proc_mkdir(name, ppde);
if (pde == NULL)
return -ENOMEM;
 
@@ -762,10 +756,7 @@ EXPORT_SYMBOL_GPL(xnvfile_init_link);
  */
 void xnvfile_destroy(struct xnvfile *vfile)
 {
-   struct proc_dir_entry *ppde;
-
-  

[Xenomai-git] Jan Kiszka : cobalt/vfile: Adjust procfs usage to latest kernel API

2013-08-28 Thread git repository hosting
Module: xenomai-forge
Branch: next
Commit: 420cb0c12bd9d0b428b208cf2dced9cedfec456c
URL:
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=420cb0c12bd9d0b428b208cf2dced9cedfec456c

Author: Jan Kiszka jan.kis...@siemens.com
Date:   Wed Aug 21 09:02:01 2013 +0200

cobalt/vfile: Adjust procfs usage to latest kernel API

proc_dir_entry became opaque and create_proc_entry is gone now. Switch
to the new patterns and wrap PDE_DATA as well as proc_create_data for
older kernels.

Signed-off-by: Jan Kiszka jan.kis...@siemens.com

---

 .../cobalt/include/asm-generic/xenomai/wrappers.h  |   11 +++
 kernel/cobalt/vfile.c  |   32 +++
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h 
b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
index 02eeed0..601fc30 100644
--- a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
+++ b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
@@ -72,5 +72,16 @@ unsigned long vm_mmap(struct file *file, unsigned long addr,
 #if LINUX_VERSION_CODE = KERNEL_VERSION(3,9,0)
 #include linux/sched/rt.h
 #endif /* LINUX = 3.9.0 */
+ 
+#if LINUX_VERSION_CODE  KERNEL_VERSION(3,10,0)
+#include linux/proc_fs.h
+
+#define PDE_DATA(inode)PROC_I(inode)-pde-data
+
+static inline void proc_remove(struct proc_dir_entry *pde)
+{
+   remove_proc_entry(pde-name, pde-parent);
+}
+#endif /*  3.10 */
 
 #endif /* _COBALT_ASM_GENERIC_WRAPPERS_H */
diff --git a/kernel/cobalt/vfile.c b/kernel/cobalt/vfile.c
index 6907f2e..375cc79 100644
--- a/kernel/cobalt/vfile.c
+++ b/kernel/cobalt/vfile.c
@@ -79,6 +79,7 @@
 #include cobalt/kernel/lock.h
 #include cobalt/kernel/assert.h
 #include cobalt/kernel/vfile.h
+#include asm/xenomai/wrappers.h
 
 /**
  * @var struct xnvfile_directory nkvfroot
@@ -148,8 +149,7 @@ static void vfile_snapshot_free(struct 
xnvfile_snapshot_iterator *it, void *buf)
 
 static int vfile_snapshot_open(struct inode *inode, struct file *file)
 {
-   struct proc_dir_entry *pde = PDE(inode);
-   struct xnvfile_snapshot *vfile = pde-data;
+   struct xnvfile_snapshot *vfile = PDE_DATA(inode);
struct xnvfile_snapshot_ops *ops = vfile-ops;
struct xnvfile_snapshot_iterator *it;
int revtag, ret, nrdata;
@@ -318,8 +318,8 @@ static int vfile_snapshot_release(struct inode *inode, 
struct file *file)
 ssize_t vfile_snapshot_write(struct file *file, const char __user *buf,
 size_t size, loff_t *ppos)
 {
-   struct proc_dir_entry *pde = PDE(file-f_path.dentry-d_inode);
-   struct xnvfile_snapshot *vfile = pde-data;
+   struct xnvfile_snapshot *vfile =
+   PDE_DATA(file-f_path.dentry-d_inode);
struct xnvfile_input input;
ssize_t ret;
 
@@ -414,12 +414,10 @@ int xnvfile_init_snapshot(const char *name,
 
mode = vfile-ops-store ? 0644 : 0444;
ppde = parent-entry.pde;
-   pde = create_proc_entry(name, mode, ppde);
+   pde = proc_create_data(name, mode, ppde, vfile_snapshot_fops, vfile);
if (pde == NULL)
return -ENOMEM;
 
-   pde-proc_fops = vfile_snapshot_fops;
-   pde-data = vfile;
vfile-entry.parent = parent;
vfile-entry.pde = pde;
 
@@ -505,8 +503,7 @@ static struct seq_operations vfile_regular_ops = {
 
 static int vfile_regular_open(struct inode *inode, struct file *file)
 {
-   struct proc_dir_entry *pde = PDE(inode);
-   struct xnvfile_regular *vfile = pde-data;
+   struct xnvfile_regular *vfile = PDE_DATA(inode);
struct xnvfile_regular_ops *ops = vfile-ops;
struct xnvfile_regular_iterator *it;
struct seq_file *seq;
@@ -574,8 +571,8 @@ static int vfile_regular_release(struct inode *inode, 
struct file *file)
 ssize_t vfile_regular_write(struct file *file, const char __user *buf,
size_t size, loff_t *ppos)
 {
-   struct proc_dir_entry *pde = PDE(file-f_path.dentry-d_inode);
-   struct xnvfile_regular *vfile = pde-data;
+   struct xnvfile_regular *vfile =
+   PDE_DATA(file-f_path.dentry-d_inode);
struct xnvfile_input input;
ssize_t ret;
 
@@ -650,12 +647,10 @@ int xnvfile_init_regular(const char *name,
 
mode = vfile-ops-store ? 0644 : 0444;
ppde = parent-entry.pde;
-   pde = create_proc_entry(name, mode, ppde);
+   pde = proc_create_data(name, mode, ppde, vfile_regular_fops, vfile);
if (pde == NULL)
return -ENOMEM;
 
-   pde-proc_fops = vfile_regular_fops;
-   pde-data = vfile;
vfile-entry.parent = parent;
vfile-entry.pde = pde;
 
@@ -693,7 +688,7 @@ int xnvfile_init_dir(const char *name,
parent = sysroot;
 
ppde = parent-entry.pde;
-   pde = create_proc_entry(name, S_IFDIR, ppde);
+   pde = proc_mkdir(name, ppde);
if (pde == NULL)
return -ENOMEM;
 
@@ -762,10 +757,7