linux-mips
[Top] [All Lists]

[PATCH 1/2] Add .init.bss section

To: Ralf Baechle <ralf@linux-mips.org>, "Maciej W. Rozycki" <macro@linux-mips.org>, Geert Uytterhoeven <geert@linux-m68k.org>
Subject: [PATCH 1/2] Add .init.bss section
From: Franck Bui-Huu <vagabon.xyz@gmail.com>
Date: Thu, 11 Oct 2007 11:54:12 +0200
Cc: linux-mips <linux-mips@linux-mips.org>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; bh=2EKZZqxR/gAYwzGTd1koyw5PhBuGixGo1v05dD8kGxM=; b=sCtl9AzrWd1rOwVXRXQB1lxps+6+7MR9BijJ1Nj46hEmg7sRyxisKrkhNjati6I53ojwGdl5aN6A4fdvuYmQIM9msiS7cxPd12ylpBuA/BSQ9PDV53alek6i7kWh+LL6eITknaZhI8qH6lSjE7NVe2AJewkuRZ9+d8OIS9LRKac=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; b=esdUQgKN7HBmwZekJG4tj7Fua4YAiWibc0Re8tL3RsEKcnq5PYIlNqeL70H8PBzrCDEB6UjakWRUqsOPUU7YdmM0dYHZmgBZeVjdFrKOcjCSaApv0djG5ZhMI48idZzslQzPWOPyKMf8pK4kksWf5+Uw8nFvKAk/tUnbs24Y6C4=
In-reply-to: <470DF25E.60009@gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <470DF25E.60009@gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.5 (X11/20070719)
This patch creates a new init section called .init.bss.

This section is similar to .init.data but doesn't consume
any space in the vmlinux image.

All data marked as part of this section must not be initialized,
of course.

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
 include/linux/init.h |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/include/linux/init.h b/include/linux/init.h
index 74b1f43..9fda0ec 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -43,6 +43,8 @@
 #define __init         __attribute__ ((__section__ (".init.text"))) __cold
 #define __initdata     __attribute__ ((__section__ (".init.data")))
 #define __exitdata     __attribute__ ((__section__(".exit.data")))
+#define __initbss      __attribute__ ((__section__ (".init.bss")))
+#define __exitbss      __attribute__ ((__section__ (".exit.bss")))
 #define __exit_call    __attribute_used__ __attribute__ ((__section__ 
(".exitcall.exit")))
 
 /* modpost check for section mismatches during the kernel build.
@@ -257,10 +259,12 @@ void __init parse_early_param(void);
 #define __devexit
 #define __devexitdata
 #else
-#define __devinit __init
-#define __devinitdata __initdata
-#define __devexit __exit
-#define __devexitdata __exitdata
+#define __devinit      __init
+#define __devinitdata  __initdata
+#define __devinitbss   __initbss
+#define __devexit      __exit
+#define __devexitdata  __exitdata
+#define __devexitbss   __exitbss
 #endif
 
 #ifdef CONFIG_HOTPLUG_CPU
@@ -270,9 +274,11 @@ void __init parse_early_param(void);
 #define __cpuexitdata
 #else
 #define __cpuinit      __init
-#define __cpuinitdata __initdata
-#define __cpuexit __exit
+#define __cpuinitdata  __initdata
+#define __cpuinitbss   __initbss
+#define __cpuexit      __exit
 #define __cpuexitdata  __exitdata
+#define __cpuexitbss   __exitbss
 #endif
 
 #if defined(CONFIG_MEMORY_HOTPLUG) || defined(CONFIG_ACPI_HOTPLUG_MEMORY) \
@@ -283,9 +289,11 @@ void __init parse_early_param(void);
 #define __memexitdata
 #else
 #define __meminit      __init
-#define __meminitdata __initdata
-#define __memexit __exit
+#define __meminitdata  __initdata
+#define __meminitbss   __meminitbss
+#define __memexit      __exit
 #define __memexitdata  __exitdata
+#define __memexitbss   __exitbss
 #endif
 
 /* Functions marked as __devexit may be discarded at kernel link time, 
depending
-- 
1.5.3.3


<Prev in Thread] Current Thread [Next in Thread>