diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2006-12-06 20:14:08 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:08 -0500 |
commit | c9ccf30d77f04064fe5436027ab9d2230c7cdd94 (patch) | |
tree | 95c028ae6f1e50275ff7a40b987300bb647e8ead /arch/i386/kernel/vmlinux.lds.S | |
parent | d7cd56111f30259e1b532a12e06f59f8e0a20355 (diff) |
[PATCH] paravirt: Add startup infrastructure for paravirtualization
1) Each hypervisor writes a probe function to detect whether we are
running under that hypervisor. paravirt_probe() registers this
function.
2) If vmlinux is booted with ring != 0, we call all the probe
functions (with registers except %esp intact) in link order: the
winner will not return.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'arch/i386/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/i386/kernel/vmlinux.lds.S | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index 5c69cf0e5944..877dc5cfe3a8 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S | |||
@@ -65,6 +65,12 @@ SECTIONS | |||
65 | CONSTRUCTORS | 65 | CONSTRUCTORS |
66 | } :data | 66 | } :data |
67 | 67 | ||
68 | __start_paravirtprobe = .; | ||
69 | .paravirtprobe : AT(ADDR(.paravirtprobe) - LOAD_OFFSET) { | ||
70 | *(.paravirtprobe) | ||
71 | } | ||
72 | __stop_paravirtprobe = .; | ||
73 | |||
68 | . = ALIGN(4096); | 74 | . = ALIGN(4096); |
69 | .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { | 75 | .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { |
70 | __nosave_begin = .; | 76 | __nosave_begin = .; |