Merge branch 'work.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[muen/linux.git] / fs / proc / internal.h
index 275b062e58af021df662578d332d1ccf383b6c02..43c70c9e6b6298cdea32ae02611d5025f3bb665e 100644 (file)
@@ -44,7 +44,12 @@ struct proc_dir_entry {
        struct completion *pde_unload_completion;
        const struct inode_operations *proc_iops;
        const struct file_operations *proc_fops;
+       union {
+               const struct seq_operations *seq_ops;
+               int (*single_show)(struct seq_file *, void *);
+       };
        void *data;
+       unsigned int state_size;
        unsigned int low_ino;
        nlink_t nlink;
        kuid_t uid;
@@ -57,9 +62,9 @@ struct proc_dir_entry {
        umode_t mode;
        u8 namelen;
 #ifdef CONFIG_64BIT
-#define SIZEOF_PDE_INLINE_NAME (192-139)
+#define SIZEOF_PDE_INLINE_NAME (192-155)
 #else
-#define SIZEOF_PDE_INLINE_NAME (128-87)
+#define SIZEOF_PDE_INLINE_NAME (128-95)
 #endif
        char inline_name[SIZEOF_PDE_INLINE_NAME];
 } __randomize_layout;
@@ -162,6 +167,10 @@ extern bool proc_fill_cache(struct file *, struct dir_context *, const char *, i
 /*
  * generic.c
  */
+struct proc_dir_entry *proc_create_reg(const char *name, umode_t mode,
+               struct proc_dir_entry **parent, void *data);
+struct proc_dir_entry *proc_register(struct proc_dir_entry *dir,
+               struct proc_dir_entry *dp);
 extern struct dentry *proc_lookup(struct inode *, struct dentry *, unsigned int);
 struct dentry *proc_lookup_de(struct inode *, struct dentry *, struct proc_dir_entry *);
 extern int proc_readdir(struct file *, struct dir_context *);