summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorHerve Codina <Herve.CODINA@celad.com>2015-07-06 09:36:43 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-07-13 08:28:19 +0200
commita2136e6cbd732e627f9f33d9211ba0a67be52889 (patch)
treec1aff563dc89e01ed4a801ec7045b19e00041de5 /arch/x86
parentd46b6785c4bcd3ceb7d90895e9f44a7bf7d6757d (diff)
downloadbarebox-a2136e6cbd732e627f9f33d9211ba0a67be52889.tar.gz
exitcall: Add exitcall infrastructure
exitcall infrastructure is based on initcall infrastructure. It allows to have and use exit call hooks on barebox shutdown. Signed-off-by: Herve Codina <Herve.CODINA@celad.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/lib/barebox.lds.S9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/lib/barebox.lds.S b/arch/x86/lib/barebox.lds.S
index 6cf6b10..23d7546 100644
--- a/arch/x86/lib/barebox.lds.S
+++ b/arch/x86/lib/barebox.lds.S
@@ -185,7 +185,14 @@ SECTIONS
. = ALIGN(4);
} > barebox
- .__usymtab : AT ( LOADADDR(.barebox_initcalls) + SIZEOF (.barebox_initcalls) ) {
+ .barebox_exitcalls : AT ( LOADADDR(.barebox_initcalls) + SIZEOF (.barebox_initcalls) ) {
+ __barebox_exitcalls_start = .;
+ EXITCALLS
+ __barebox_exitcalls_end = .;
+ . = ALIGN(4);
+ } > barebox
+
+ .__usymtab : AT ( LOADADDR(.barebox_exitcalls) + SIZEOF (.barebox_exitcalls) ) {
__usymtab_start = .;
BAREBOX_SYMS
__usymtab_end = .;