Commit 4e292a96 authored by Christoph Hellwig's avatar Christoph Hellwig

resource: switch to proc_create_seq_data

And use the root resource directly from the proc private data.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent dba5e428
...@@ -87,7 +87,7 @@ enum { MAX_IORES_LEVEL = 5 }; ...@@ -87,7 +87,7 @@ enum { MAX_IORES_LEVEL = 5 };
static void *r_start(struct seq_file *m, loff_t *pos) static void *r_start(struct seq_file *m, loff_t *pos)
__acquires(resource_lock) __acquires(resource_lock)
{ {
struct resource *p = m->private; struct resource *p = PDE_DATA(file_inode(m->file));
loff_t l = 0; loff_t l = 0;
read_lock(&resource_lock); read_lock(&resource_lock);
for (p = p->child; p && l < *pos; p = r_next(m, p, &l)) for (p = p->child; p && l < *pos; p = r_next(m, p, &l))
...@@ -103,7 +103,7 @@ static void r_stop(struct seq_file *m, void *v) ...@@ -103,7 +103,7 @@ static void r_stop(struct seq_file *m, void *v)
static int r_show(struct seq_file *m, void *v) static int r_show(struct seq_file *m, void *v)
{ {
struct resource *root = m->private; struct resource *root = PDE_DATA(file_inode(m->file));
struct resource *r = v, *p; struct resource *r = v, *p;
unsigned long long start, end; unsigned long long start, end;
int width = root->end < 0x10000 ? 4 : 8; int width = root->end < 0x10000 ? 4 : 8;
...@@ -135,44 +135,11 @@ static const struct seq_operations resource_op = { ...@@ -135,44 +135,11 @@ static const struct seq_operations resource_op = {
.show = r_show, .show = r_show,
}; };
static int ioports_open(struct inode *inode, struct file *file)
{
int res = seq_open(file, &resource_op);
if (!res) {
struct seq_file *m = file->private_data;
m->private = &ioport_resource;
}
return res;
}
static int iomem_open(struct inode *inode, struct file *file)
{
int res = seq_open(file, &resource_op);
if (!res) {
struct seq_file *m = file->private_data;
m->private = &iomem_resource;
}
return res;
}
static const struct file_operations proc_ioports_operations = {
.open = ioports_open,
.read = seq_read,
.llseek = seq_lseek,
.release = seq_release,
};
static const struct file_operations proc_iomem_operations = {
.open = iomem_open,
.read = seq_read,
.llseek = seq_lseek,
.release = seq_release,
};
static int __init ioresources_init(void) static int __init ioresources_init(void)
{ {
proc_create("ioports", 0, NULL, &proc_ioports_operations); proc_create_seq_data("ioports", 0, NULL, &resource_op,
proc_create("iomem", 0, NULL, &proc_iomem_operations); &ioport_resource);
proc_create_seq_data("iomem", 0, NULL, &resource_op, &iomem_resource);
return 0; return 0;
} }
__initcall(ioresources_init); __initcall(ioresources_init);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment