Home | History | Annotate | Download | only in include
History log of /src/sys/arch/xen/include/xenfunc.h
RevisionDateAuthorComments
 1.18  09-May-2019  bouyer sti/cli are not allowed on Xen, we have to clear/set a bit in the
shared page. Revert x86_disable_intr/x86_enable_intr to plain function
calls on XENPV.
While there, clean up unused functions and macros, and change cli()/sti()
macros to x86_disable_intr/x86_enable_intr.
Makes Xen domU boot again
(http://www-soc.lip6.fr/~bouyer/NetBSD-tests/xen/HEAD/)
 1.17  12-Feb-2019  cherry Move xen event related code which interfaces with the NetBSD interrupt
subsystem into a separate namespace where it can co-exist with the
native equivalent in PVHVM mode.

On PV, we alias and export the native symbols - this means that
although the namespace is different, the semantics must be identical.

Eg: xen_intr_establish_xname() vs. intr_establish_xname().

The specific functions we need in PVHVM are:

- spllower, xen_spllower (for native as well as XEN event spl
despatch/defer)
- xen_disable_intr()/xen_enable_intr() ,
x86_disable_intr()/x86_enable_intr()
- xen_read_psl()/xen_write_psl(),
x86_read_psl()/x86_write_psl()
- intr_establish() et. al, xen_intr_establish() et. al.

This gives us the ability to manage Paravirtualised drivers such as
xbd(4) as well as fully emulated ones such as wd(4)., for eg
 1.16  26-Jul-2018  maxv Retire XENDEBUG_LOW, and switch its only user to XENDEBUG.
 1.15  23-Oct-2009  snj branches: 1.15.62; 1.15.64;
Remove 3rd and 4th clauses. OK cl@ (copyright holder).
 1.14  11-Jan-2008  bouyer branches: 1.14.10; 1.14.24;
Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the
branch is still active and will see i386PAE support developement).
Sumary of changes:
- switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c
pmap bootstrap.
- merge back most of xen/i386/ to i386/i386
- change the build to reduce diffs between i386 and amd64 in file locations
- remove include files that were identical to the i386/amd64 counterparts,
the build will find them via the xen-ma/machine link.
 1.13  22-Nov-2007  bouyer branches: 1.13.6;
Pull up the bouyer-xenamd64 branch to HEAD. This brings in amd64 support
to NetBSD/Xen, both Dom0 and DomU.
 1.12  17-Oct-2007  garbled branches: 1.12.2;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.11  26-Sep-2007  ad branches: 1.11.2;
x86 changes for pcc and LKMs.

- Replace most inline assembly with proper functions. As a side effect
this reduces the size of amd64 GENERIC by about 120kB, and i386 by a
smaller amount. Nearly all of the inlines did something slow, or something
that does not need to be fast.
- Make curcpu() and curlwp functions proper, unless __GNUC__ && _KERNEL.
In that case make them inlines. Makes curlwp LKM and preemption safe.
- Make bus_space and bus_dma more LKM friendly.
- Share a few more files between the ports.
- Other minor changes.
 1.10  16-Feb-2006  perry branches: 1.10.24; 1.10.32; 1.10.42; 1.10.44; 1.10.46;
Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
 1.9  24-Dec-2005  perry branches: 1.9.2; 1.9.4; 1.9.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.8  11-Dec-2005  christos merge ktrace-lwp.
 1.7  31-May-2005  yamt branches: 1.7.2;
constify.
 1.6  26-May-2005  bouyer Always call the xpq_queue*() functions at splvm(), so that it's safe to call
them from interrupt context.
xpq_flush_queue() is called from IPL_NET in if_xennet.c, and
other xpq_queue* functions may be called from interrupt context via
pmap_kenter*(). Should fix port-xen/30153.
Thanks to Jason Thorpe and YAMAMOTO Takashi for enlightments on this issue.
 1.5  22-Apr-2005  yamt don't use block scope static function decl. found by gcc4.
 1.4  09-Mar-2005  bouyer branches: 1.4.2;
Merge the bouyer-xen2 branch. This add supports for the Xen 2.0 virtual
machine kernel (both privileged and non-privileged domains), and remove support
for the old xen 1.2.
 1.3  10-Dec-2004  christos branches: 1.3.2; 1.3.4; 1.3.6;
Move the disable_intr and enable_intr functions from xenfunc.h to cpufunc.h,
because the x86/intr.h needs them and does not include xenfunc.h. Including
xenfunc.h in cpufunc.h is a clear lose because xenfunc.h needs a boatload
of include functions in order to compile.
 1.2  07-May-2004  cl branches: 1.2.2;
replace rdr6/ldr6 with the corresponding hypervisor traps
 1.1  11-Mar-2004  cl branches: 1.1.2;
Add port to the Xen virtual machine monitor.
(see http://www.cl.cam.ac.uk/Research/SRG/netos/xen/)
 1.1.2.1  22-May-2004  he Pull up revision 1.2 (requested by cl in ticket #337):
Upgrade xen support:
- add block device driver
- network device driver bug fixes
- support for vga/keyboard/mouse
- support for domain0 operations
- fix /dev/mem and i386_iopl, reboot, event dispatch
- fix clock support, cpu speed report, lazy fpu switching
- add xen12load loader
- sys/arch/xen parts of build.sh release support
[cl, ticket #337]
 1.2.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.2.2.6  01-Apr-2005  skrll Sync with HEAD.
 1.2.2.5  18-Dec-2004  skrll Sync with HEAD.
 1.2.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.2.2.2  03-Aug-2004  skrll Sync with HEAD
 1.2.2.1  07-May-2004  skrll file xenfunc.h was added on branch ktrace-lwp on 2004-08-03 10:43:11 +0000
 1.3.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.3.4.1  29-Apr-2005  kent sync with -current
 1.3.2.2  17-Dec-2004  bouyer Merge chanages from rev 1.3.
 1.3.2.1  13-Dec-2004  bouyer Commit files from netbsd-2.0-xen-sparse/sys/arch/xen in the Xen-2.0
distribution. These are the files modified from the 2.0 tree to get
NetBSD/xen working with Xen 2.
 1.4.2.3  18-Jun-2005  tron Pull up revision 1.7 (requested by yamt in ticket #464):
constify.
 1.4.2.2  28-May-2005  tron Pull up revision 1.6 (requested by bouyer in ticket #355):
Always call the xpq_queue*() functions at splvm(), so that it's safe to call
them from interrupt context.
xpq_flush_queue() is called from IPL_NET in if_xennet.c, and
other xpq_queue* functions may be called from interrupt context via
pmap_kenter*(). Should fix port-xen/30153.
Thanks to Jason Thorpe and YAMAMOTO Takashi for enlightments on this issue.
 1.4.2.1  01-May-2005  tron Pull up revision 1.5 (requested by yamt in ticket #233):
don't use block scope static function decl. found by gcc4.
 1.7.2.3  21-Jan-2008  yamt sync with head
 1.7.2.2  07-Dec-2007  yamt sync with head
 1.7.2.1  27-Oct-2007  yamt sync with head.
 1.9.6.1  22-Apr-2006  simonb Sync with head.
 1.9.4.1  09-Sep-2006  rpaulo sync with head
 1.9.2.1  18-Feb-2006  yamt sync with head.
 1.10.46.1  06-Oct-2007  yamt sync with head.
 1.10.44.3  23-Mar-2008  matt sync with HEAD
 1.10.44.2  09-Jan-2008  matt sync with HEAD
 1.10.44.1  06-Nov-2007  matt sync with HEAD
 1.10.42.2  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.10.42.1  02-Oct-2007  joerg Sync with HEAD.
 1.10.32.1  03-Oct-2007  garbled Sync with HEAD
 1.10.24.2  03-Dec-2007  ad Sync with HEAD.
 1.10.24.1  09-Oct-2007  ad Sync with head.
 1.11.2.2  21-Oct-2007  bouyer Factorise some Xen pmap code in x86_xpmap.c.
More xpmap_{ptom,mtop} -> xpmap_{ptom,mtop}_masked

The xenamd64 kernel is now good enough to complete a sysinst install from
xennet to xbd.
 1.11.2.1  17-Oct-2007  bouyer Prepare for xenamd64:
- kill xen/i386/identcpu.c, use i386/i386/identcpu.c instead (with a few
#ifndef XEN)
- move some files that can be shared between i386 and amd64 from
xen/i386 to xen/x86 (or to xen/xen for non-cpu-specific code)
- split assembly out of xen/include/hypervisor.h to xen/include/hypercalls.h
- use <xen/...> instead of <machine/...> for cpu-independant include files.

more work needed here, i386-specific files should got out of arch/xen to
arch/xeni386, and more code shared with arch/i386.
 1.12.2.2  18-Feb-2008  mjf Sync with HEAD.
 1.12.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.13.6.1  09-Jan-2008  bouyer Merge xen bits to i386/i386/gdt.c. Convert remaining uses of PTE_* macros to
pmap_pte_* macros/inlines.
Fix think-o in pmap.c for native i386.
 1.14.24.3  29-Mar-2011  jym More sync fixes. And add the mbr_gpt files.
 1.14.24.2  10-Jan-2011  jym Sync with HEAD
 1.14.24.1  01-Nov-2009  jym Sync with HEAD.
 1.14.10.1  11-Mar-2010  yamt sync with head
 1.15.64.1  10-Jun-2019  christos Sync with HEAD
 1.15.62.1  28-Jul-2018  pgoyette Sync with HEAD

RSS XML Feed