Regards, Hari
---
This patch contains the x86_64 specific code to generate
the /proc/activemem view.
---
Signed-off-by: Hariprasad Nellitheertha <[email protected]>
---
linux-2.6.12-rc1-hari/arch/x86_64/kernel/e820.c | 37 ++++++++++++++++++++++++
1 files changed, 37 insertions(+)
diff -puN arch/x86_64/kernel/e820.c~activemem-x8664 arch/x86_64/kernel/e820.c
--- linux-2.6.12-rc1/arch/x86_64/kernel/e820.c~activemem-x8664 2005-03-23 17:48:25.000000000 +0530
+++ linux-2.6.12-rc1-hari/arch/x86_64/kernel/e820.c 2005-03-23 17:48:25.000000000 +0530
@@ -226,6 +226,42 @@ static void __init e820_reserve_physmem_
}
}
+static void __init e820_reserve_activemem_resources(void)
+{
+ int i;
+ struct resource *res, *code_resource_copy, *data_resource_copy;
+#ifdef CONFIG_KEXEC
+ struct resource *crashk_res_copy;
+
+ crashk_res_copy = alloc_bootmem_low(sizeof(struct resource));
+ memcpy(crashk_res_copy, &crashk_res, sizeof(struct resource));
+#endif
+
+ code_resource_copy = alloc_bootmem_low(2*sizeof(struct resource));
+ data_resource_copy = code_resource_copy + sizeof(struct resource);
+ memcpy(code_resource_copy, &code_resource, sizeof(struct resource));
+ memcpy(data_resource_copy, &data_resource, sizeof(struct resource));
+
+ for (i = 0; i < e820.nr_map; i++) {
+ res = alloc_e820_resource(&activemem_resource, i);
+ if (e820.map[i].type == E820_RAM) {
+ request_resource(res, code_resource_copy);
+ request_resource(res, data_resource_copy);
+#ifdef CONFIG_KEXEC
+ request_resource(res, crashk_res_copy);
+#endif
+ }
+ /* If the system has booted with less memory, reflect
+ * only those entries
+ */
+ if ((e820.map[i].addr + e820.map[i].size) > (end_user_pfn << PAGE_SHIFT)) {
+ /* Trim the last entry to reflect the actual pfn allowed */
+ res->end = (end_user_pfn << PAGE_SHIFT) - 1;
+ break;
+ }
+ }
+}
+
/*
* Mark e820 reserved areas as busy for the resource manager.
*/
@@ -233,6 +269,7 @@ void __init e820_reserve_resources(void)
{
e820_reserve_iomem_resources();
e820_reserve_physmem_resources();
+ e820_reserve_activemem_resources();
}
/*
_
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]