netfilter: use likely() in xt_info_rdlock_bh()
[safe/jmp/linux-2.6] / include / linux / seq_file.h
index 5da70c3..004f3b3 100644 (file)
@@ -1,16 +1,17 @@
 #ifndef _LINUX_SEQ_FILE_H
 #define _LINUX_SEQ_FILE_H
-#ifdef __KERNEL__
 
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/mutex.h>
-#include <net/net_namespace.h>
+#include <linux/cpumask.h>
+#include <linux/nodemask.h>
 
 struct seq_operations;
 struct file;
 struct path;
 struct inode;
+struct dentry;
 
 struct seq_file {
        char *buf;
@@ -18,6 +19,7 @@ struct seq_file {
        size_t from;
        size_t count;
        loff_t index;
+       loff_t read_pos;
        u64 version;
        struct mutex lock;
        const struct seq_operations *op;
@@ -31,6 +33,9 @@ struct seq_operations {
        int (*show) (struct seq_file *m, void *v);
 };
 
+#define SEQ_SKIP 1
+
+char *mangle_path(char *s, char *p, char *esc);
 int seq_open(struct file *, const struct seq_operations *);
 ssize_t seq_read(struct file *, char __user *, size_t, loff_t *);
 loff_t seq_lseek(struct file *, loff_t, int);
@@ -43,6 +48,34 @@ int seq_printf(struct seq_file *, const char *, ...)
        __attribute__ ((format (printf,2,3)));
 
 int seq_path(struct seq_file *, struct path *, char *);
+int seq_dentry(struct seq_file *, struct dentry *, char *);
+int seq_path_root(struct seq_file *m, struct path *path, struct path *root,
+                 char *esc);
+int seq_bitmap(struct seq_file *m, const unsigned long *bits,
+                                  unsigned int nr_bits);
+static inline int seq_cpumask(struct seq_file *m, const struct cpumask *mask)
+{
+       return seq_bitmap(m, cpumask_bits(mask), nr_cpu_ids);
+}
+
+static inline int seq_nodemask(struct seq_file *m, nodemask_t *mask)
+{
+       return seq_bitmap(m, mask->bits, MAX_NUMNODES);
+}
+
+int seq_bitmap_list(struct seq_file *m, const unsigned long *bits,
+               unsigned int nr_bits);
+
+static inline int seq_cpumask_list(struct seq_file *m,
+                                  const struct cpumask *mask)
+{
+       return seq_bitmap_list(m, cpumask_bits(mask), nr_cpu_ids);
+}
+
+static inline int seq_nodemask_list(struct seq_file *m, nodemask_t *mask)
+{
+       return seq_bitmap_list(m, mask->bits, MAX_NUMNODES);
+}
 
 int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
 int single_release(struct inode *, struct file *);
@@ -63,26 +96,4 @@ extern struct list_head *seq_list_start_head(struct list_head *head,
 extern struct list_head *seq_list_next(void *v, struct list_head *head,
                loff_t *ppos);
 
-#ifdef CONFIG_NET
-struct net;
-struct seq_net_private {
-#ifdef CONFIG_NET_NS
-       struct net *net;
-#endif
-};
-
-int seq_open_net(struct inode *, struct file *,
-                const struct seq_operations *, int);
-int seq_release_net(struct inode *, struct file *);
-static inline struct net *seq_file_net(struct seq_file *seq)
-{
-#ifdef CONFIG_NET_NS
-       return ((struct seq_net_private *)seq->private)->net;
-#else
-       return &init_net;
-#endif
-}
-#endif /* CONFIG_NET */
-
-#endif
 #endif