diff options
author | royger <royger@FreeBSD.org> | 2014-03-11 10:07:01 +0000 |
---|---|---|
committer | royger <royger@FreeBSD.org> | 2014-03-11 10:07:01 +0000 |
commit | 5dd05db7ff9533415fbe0d4aedbadb5b115d9509 (patch) | |
tree | 6272bb4211bd811ce759def6aa759b755cd86415 /sys/xen | |
parent | 27026f4f2afc8cf9ffb8d965b2b70a91fd318239 (diff) | |
download | FreeBSD-src-5dd05db7ff9533415fbe0d4aedbadb5b115d9509.zip FreeBSD-src-5dd05db7ff9533415fbe0d4aedbadb5b115d9509.tar.gz |
xen: add PV/PVH kernel entry point
Add the PV/PVH entry point and the low level functions for PVH
early initialization.
Approved by: gibbs
Sponsored by: Citrix Systems R&D
amd64/amd64/genassym.c:
- Add __FreeBSD_version define to assym.s so it can be used for the
Xen notes.
amd64/amd64/locore.S:
- Make bootstack global so it can be used from Xen kernel entry
point.
amd64/amd64/xen-locore.S:
- Add Xen notes to the kernel.
- Add the Xen PV entry point, that is going to call hammer_time_xen.
amd64/include/asmacros.h:
- Add ELFNOTE macros.
i386/xen/xen_machdep.c:
- Define HYPERVISOR_start_info for the XEN i386 PV port, which is
going to be used in some shared code between PV and PVH.
x86/xen/hvm.c:
- Define HYPERVISOR_start_info for the PVH port.
x86/xen/pv.c:
- Introduce hammer_time_xen which is going to perform early setup for
Xen PVH:
- Setup shared Xen variables start_info, shared_info and
xen_store.
- Set guest type.
- Create initial page tables as FreeBSD expects to find them.
- Call into native init function (hammer_time).
xen/xen-os.h:
- Declare HYPERVISOR_start_info.
conf/files.amd64:
- Add amd64/amd64/locore.S and x86/xen/pv.c to the list of files.
Diffstat (limited to 'sys/xen')
-rw-r--r-- | sys/xen/xen-os.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/xen/xen-os.h b/sys/xen/xen-os.h index 87644e9..c7474d8 100644 --- a/sys/xen/xen-os.h +++ b/sys/xen/xen-os.h @@ -51,6 +51,10 @@ void force_evtchn_callback(void); extern shared_info_t *HYPERVISOR_shared_info; +extern start_info_t *HYPERVISOR_start_info; + +/* XXX: we need to get rid of this and use HYPERVISOR_start_info directly */ +extern struct xenstore_domain_interface *xen_store; enum xen_domain_type { XEN_NATIVE, /* running on bare hardware */ |