Messages in this thread Patch in this message | | | Date | Thu, 24 Mar 2005 11:27:14 +0530 | From | Hariprasad Nellitheertha <> | Subject | Re: [RFC][PATCH 5/7] Common code for the activemem map |
| |
Regards, Hari
---
This patch provides the arch independent code to create the activemem view in the proc file system. /proc/activemem reflects the RAM resources that are in use by the kernel. If the system has been booted with mem= or memmap= options, then this view will reflect the truncated map. ---
Signed-off-by: Hariprasad Nellitheertha <hari@in.ibm.com> ---
linux-2.6.12-rc1-hari/kernel/resource.c | 29 +++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+)
diff -puN kernel/resource.c~activemem-common kernel/resource.c --- linux-2.6.12-rc1/kernel/resource.c~activemem-common 2005-03-23 17:48:12.000000000 +0530 +++ linux-2.6.12-rc1-hari/kernel/resource.c 2005-03-23 17:48:12.000000000 +0530 @@ -48,6 +48,15 @@ struct resource physmem_resource = { EXPORT_SYMBOL(physmem_resource); +struct resource activemem_resource = { + .name = "Active mem", + .start = 0ULL, + .end = ~0ULL, + .flags = IORESOURCE_MEM, +}; + +EXPORT_SYMBOL(activemem_resource); + static DEFINE_RWLOCK(resource_lock); #ifdef CONFIG_PROC_FS @@ -137,6 +146,16 @@ static int physmem_open(struct inode *in return res; } +static int activemem_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 = &activemem_resource; + } + return res; +} + static struct file_operations proc_ioports_operations = { .open = ioports_open, .read = seq_read, @@ -158,6 +177,13 @@ static struct file_operations proc_physm .release = seq_release, }; +static struct file_operations proc_activemem_operations = { + .open = activemem_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + static int __init ioresources_init(void) { struct proc_dir_entry *entry; @@ -171,6 +197,9 @@ static int __init ioresources_init(void) entry = create_proc_entry("physmem", 0, NULL); if (entry) entry->proc_fops = &proc_physmem_operations; + entry = create_proc_entry("activemem", 0, NULL); + if (entry) + entry->proc_fops = &proc_activemem_operations; return 0; } __initcall(ioresources_init); _ | |