Merge tag 'drm-next-msm-5.8-2020-06-08' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.git] / include / linux / seq_file.h
index 1672cf6..813614d 100644 (file)
@@ -145,6 +145,25 @@ void *__seq_open_private(struct file *, const struct seq_operations *, int);
 int seq_open_private(struct file *, const struct seq_operations *, int);
 int seq_release_private(struct inode *, struct file *);
 
+#define DEFINE_SEQ_ATTRIBUTE(__name)                                   \
+static int __name ## _open(struct inode *inode, struct file *file)     \
+{                                                                      \
+       int ret = seq_open(file, &__name ## _sops);                     \
+       if (!ret && inode->i_private) {                                 \
+               struct seq_file *seq_f = file->private_data;            \
+               seq_f->private = inode->i_private;                      \
+       }                                                               \
+       return ret;                                                     \
+}                                                                      \
+                                                                       \
+static const struct file_operations __name ## _fops = {                        \
+       .owner          = THIS_MODULE,                                  \
+       .open           = __name ## _open,                              \
+       .read           = seq_read,                                     \
+       .llseek         = seq_lseek,                                    \
+       .release        = seq_release,                                  \
+}
+
 #define DEFINE_SHOW_ATTRIBUTE(__name)                                  \
 static int __name ## _open(struct inode *inode, struct file *file)     \
 {                                                                      \