Whamcloud - gitweb
LU-5275 lprocfs: replace LPROCFS with CONFIG_PROC_FS
[fs/lustre-release.git] / libcfs / include / libcfs / params_tree.h
index 0bfbdf7..16983d3 100644 (file)
 #ifndef __PARAMS_TREE_H__
 #define __PARAMS_TREE_H__
 
-#include <libcfs/libcfs.h>
+#include <linux/fs.h>
+#include <linux/proc_fs.h>
+#include <linux/rwsem.h>
+#include <linux/spinlock.h>
 
-#undef LPROCFS
-#if (defined(__KERNEL__) && defined(CONFIG_PROC_FS))
-# define LPROCFS
-#endif
-
-#ifdef LPROCFS
-typedef struct inode                            cfs_inode_t;
-typedef struct file_operations                  cfs_param_file_ops_t;
-typedef struct proc_dir_entry                   cfs_param_dentry_t;
-typedef struct poll_table_struct                cfs_poll_table_t;
-#define CFS_PARAM_MODULE                        THIS_MODULE
-#define cfs_file_private(file)                  (file->private_data)
-
-#ifndef HAVE_ONLY_PROCFS_SEQ
+#ifdef CONFIG_PROC_FS
+# ifndef HAVE_ONLY_PROCFS_SEQ
 /* in lprocfs_stat.c, to protect the private data for proc entries */
 extern struct rw_semaphore             _lprocfs_lock;
 
-static inline
-int LPROCFS_ENTRY_CHECK(struct proc_dir_entry *dp)
+static inline int LPROCFS_ENTRY_CHECK(struct inode *inode)
 {
+       struct proc_dir_entry *dp = PDE(inode);
        int deleted = 0;
 
        spin_lock(&(dp)->pde_unload_lock);
@@ -72,37 +63,32 @@ int LPROCFS_ENTRY_CHECK(struct proc_dir_entry *dp)
                return -ENODEV;
        return 0;
 }
-#define LPROCFS_SRCH_ENTRY()            \
-do {                                    \
-        down_read(&_lprocfs_lock);      \
-} while(0)
 
-#define LPROCFS_SRCH_EXIT()             \
-do {                                    \
-        up_read(&_lprocfs_lock);        \
-} while(0)
+#  define LPROCFS_SRCH_ENTRY()                 \
+       do {                                    \
+               down_read(&_lprocfs_lock);      \
+       } while (0)
 
-#define LPROCFS_WRITE_ENTRY()          \
-do {                                   \
-       down_write(&_lprocfs_lock);     \
-} while(0)
+#  define LPROCFS_SRCH_EXIT()                  \
+       do {                                    \
+               up_read(&_lprocfs_lock);        \
+       } while (0)
 
-#define LPROCFS_WRITE_EXIT()           \
-do {                                   \
-       up_write(&_lprocfs_lock);       \
-} while(0)
+#  define LPROCFS_WRITE_ENTRY()                        \
+       do {                                    \
+               down_write(&_lprocfs_lock);     \
+       } while (0)
 
-#define PDE_DATA(inode)                PDE(inode)->data
+#  define LPROCFS_WRITE_EXIT()                 \
+       do {                                    \
+               up_write(&_lprocfs_lock);       \
+       } while (0)
 
-#else /* New proc api */
+#  define PDE_DATA(inode)      (PDE(inode)->data)
 
-static inline cfs_param_dentry_t* PDE(struct inode *inode)
-{
-       return NULL;
-}
+# else /* HAVE_ONLY_PROCFS_SEQ */
 
-static inline
-int LPROCFS_ENTRY_CHECK(cfs_param_dentry_t *dp)
+static inline int LPROCFS_ENTRY_CHECK(struct inode *inode)
 {
        return 0;
 }
@@ -110,110 +96,6 @@ int LPROCFS_ENTRY_CHECK(cfs_param_dentry_t *dp)
 #define LPROCFS_WRITE_ENTRY() do {} while(0)
 #define LPROCFS_WRITE_EXIT()  do {} while(0)
 
-#endif
-
-#else /* !LPROCFS */
-
-struct file {
-       void            *param_private;
-       loff_t          param_pos;
-       unsigned int    param_flags;
-};
-
-typedef struct cfs_param_inode {
-       void    *param_private;
-} cfs_inode_t;
-
-typedef struct cfs_param_dentry {
-       void *param_data;
-} cfs_param_dentry_t;
-
-typedef struct cfs_proc_inode {
-       cfs_param_dentry_t      *param_pde;
-       cfs_inode_t             param_inode;
-} cfs_proc_inode_t;
-
-struct seq_operations;
-struct seq_file {
-       char                            *buf;
-       size_t                          size;
-       size_t                          from;
-       size_t                          count;
-       loff_t                          index;
-       loff_t                          version;
-       struct mutex                    lock;
-       const struct seq_operations     *op;
-       void                            *private;
-};
-
-struct seq_operations {
-       void *(*start) (struct seq_file *m, loff_t *pos);
-       void  (*stop) (struct seq_file *m, void *v);
-       void *(*next) (struct seq_file *m, void *v, loff_t *pos);
-       int   (*show) (struct seq_file *m, void *v);
-};
-
-typedef void *cfs_poll_table_t;
-
-typedef struct cfs_param_file_ops {
-       struct module   *owner;
-       int (*open) (cfs_inode_t *, struct file *);
-       loff_t (*llseek)(struct file *, loff_t, int);
-       int (*release) (cfs_inode_t *, struct file *);
-       unsigned int (*poll) (struct file *, cfs_poll_table_t *);
-       ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
-       ssize_t (*read)(struct file *, char *, size_t, loff_t *);
-} cfs_param_file_ops_t;
-typedef cfs_param_file_ops_t *cfs_lproc_filep_t;
-
-#define CFS_PARAM_MODULE       NULL
-#define seq_lseek              NULL
-
-static inline int seq_read(char *buf, size_t count, loff_t *ppos)
-{
-       return 0;
-}
-
-static inline int
-seq_open(struct file *file, const struct seq_operations *fops)
-{
-       struct seq_file *p = file->param_private;
-
-       if (p == NULL) {
-               LIBCFS_ALLOC(p, sizeof(*p));
-               if (p == NULL)
-                       return -ENOMEM;
-               file->param_private = p;
-       } else {
-               memset(p, 0, sizeof(*p));
-       }
-       p->op = fops;
-       return 0;
-}
-
-static inline cfs_proc_inode_t *FAKE_PROC_I(const cfs_inode_t *inode)
-{
-       return container_of(inode, cfs_proc_inode_t, param_inode);
-}
-
-static inline cfs_param_dentry_t *PDE(cfs_inode_t *inode)
-{
-       return FAKE_PROC_I(inode)->param_pde;
-}
-
-static inline
-int LPROCFS_ENTRY_CHECK(cfs_param_dentry_t *dp)
-{
-       return 0;
-}
-#define LPROCFS_WRITE_ENTRY()       do {} while(0)
-#define LPROCFS_WRITE_EXIT()        do {} while(0)
-
-int seq_printf(struct seq_file *, const char *, ...)
-       __attribute__ ((format (printf,2,3)));
-
-#endif /* LPROCFS */
-
-/* XXX: params_tree APIs */
-
+# endif /* !HAVE_ONLY_PROCFS_SEQ */
+#endif /* CONFIG_PROC_FS */
 #endif  /* __PARAMS_TREE_H__ */