Home | History | Annotate | only in /src/sys/rump/include
History log of /src/sys/rump/include
RevisionDateAuthorComments
 1.1 17-Nov-2008  pooka branches: 1.1.4; 1.1.6; 1.1.8; 1.1.12;
Descend into include/rump and install headers.
 1.1.12.2 04-May-2009  yamt sync with head.
 1.1.12.1 17-Nov-2008  yamt file Makefile was added on branch yamt-nfs-mp on 2009-05-04 08:14:28 +0000
 1.1.8.2 19-Jan-2009  skrll Sync with HEAD.
 1.1.8.1 17-Nov-2008  skrll file Makefile was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.1.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.6.1 17-Nov-2008  mjf file Makefile was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.1.4.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.1.4.1 17-Nov-2008  haad file Makefile was added on branch haad-dm on 2008-12-13 01:15:34 +0000
 1.2 14-Dec-2008  pooka If the arch uses __BSWAP_RENAME, provide non-namespaced kernel
symbols which just call the libc symbols. Allows to get rid of
rump machine/bswap.h.

XXX:
1) this is unlikely to work on non-NetBSD
==>
2) should look into including libkern in librump
 1.1 08-Aug-2007  pooka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.14; 1.1.30; 1.1.34; 1.1.42;
Provide rumpmachine bswap.h, which makes bswapxx() call rumpuser
directly instead of relying on a symbol in rumpkern. I would like
to make it call the libc symbol directly, but I don't currently know
how to make it do that MI.

Makes hfs work (on i386), as it avoids endless recursion in bswap64().
Thanks to dillo for the image!
 1.1.42.1 19-Jan-2009  skrll Sync with HEAD.
 1.1.34.1 04-May-2009  yamt sync with head.
 1.1.30.1 17-Jan-2009  mjf Sync with HEAD.
 1.1.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.1.14.1 08-Aug-2007  joerg file bswap.h was added on branch jmcneill-pm on 2007-11-02 12:43:47 +0000
 1.1.8.2 03-Sep-2007  yamt sync with head.
 1.1.8.1 08-Aug-2007  yamt file bswap.h was added on branch yamt-lazymbuf on 2007-09-03 14:45:20 +0000
 1.1.4.2 20-Aug-2007  ad Sync with HEAD.
 1.1.4.1 08-Aug-2007  ad file bswap.h was added on branch vmlocking on 2007-08-20 22:07:24 +0000
 1.1.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.1.2.1 08-Aug-2007  skrll file bswap.h was added on branch nick-csl-alignment on 2007-08-15 13:50:33 +0000
 1.3 15-Jul-2011  dyoung Use <sys/bus.h> not <machine/bus.h>.
 1.2 13-Feb-2010  pooka branches: 1.2.2; 1.2.6;
Add missing public members of bus_dmamap_t per interface specification
(nothing uses them here for now, so untested).
 1.1 09-Feb-2010  pooka Add a bus.h blanket header which forces definition of bus space /
bus dma interfaces as functions and therefore makes it possible to
use rump on archs which suffer from macro maladies, i.e. everything
except i386 and amd64.

(build-tested on sparc64 and vax, which are usually the two extremes
of weirdness in these cases)
 1.2.6.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.2.6.1 13-Feb-2010  uebayasi file bus.h was added on branch uebayasi-xip on 2010-04-30 14:44:29 +0000
 1.2.2.2 11-Mar-2010  yamt sync with head
 1.2.2.1 13-Feb-2010  yamt file bus.h was added on branch yamt-nfs-mp on 2010-03-11 15:04:37 +0000
 1.24 04-Dec-2019  riastradh Fix rump definition of cpu_number().
 1.23 01-Dec-2019  ad Add ci_onproc.
 1.22 22-Apr-2015  pooka branches: 1.22.18;
Apparently not all ports define struct clockframe in cpu.h, so we cannot
provide our definition that way. Instead, generate the struct clockframe
passed to hardclock() in MD code.
 1.21 22-Apr-2015  pooka emulgate clockframe
 1.20 15-Mar-2014  pooka branches: 1.20.6;
Allow compile-time optimizations to curlwp. This can have a pretty
staggering impact on performance. When running sendto() in a loop,
the improvement is 200k more calls per second with an inlined __thread
curlwp as opposed to the default. In other words, it shaves off hundreds
of CPU cycles per call (~20%). Even just eliminating the x86_curlwp()
call in favor of an inline gives an improvement of 60k calls per second.
 1.19 10-Mar-2014  pooka update comments
 1.18 22-Jan-2014  christos Kludges like to procreate. Add alpha cpu_frequency() kludge.
 1.17 30-Oct-2013  mrg mark rump's CPU_INFO_ITERATOR as being __unused.
 1.16 02-May-2013  pooka branches: 1.16.4;
Inform the rump kernel hypervisor of valid thread contexts so
that the implementation can allocate and release storage for them
in an optimal fashion, if necessary.
 1.15 21-Mar-2011  pooka branches: 1.15.4; 1.15.14;
Update copyright statements.

no functional change.
 1.14 04-Jan-2011  pooka branches: 1.14.2;
Add SMP support for all architectures.

tested on sparc64 by martin
 1.13 02-Dec-2010  pooka add ci_curlwp since we use it now
 1.12 15-Oct-2009  pooka branches: 1.12.4;
rump_get_curlwp() is dead
 1.11 15-Oct-2009  pooka fix previous to make sense
 1.10 15-Oct-2009  pooka adjust for new rump_cpu
 1.9 06-Jan-2009  pooka powerpc md stuff for libkern
 1.8 05-Jan-2009  pooka Assemble with _LOCORE.
 1.7 02-Jan-2009  pooka My clever hack was not enough. Disable DELAY via ifndef _RUMPKERN in
subr_prf until I manage to get all archs in line with a proper MI
signature.
 1.6 02-Jan-2009  pooka Sauce with some kludges:
* revert rev 1.68 of emul.c: delay() is hopelessly MD and needs
whipping (not the fun kind)
* #undef DELAY in cpu.h

This will hopefully fix build for all archs and give me time to
hop through our 46521 fine archs and edit the headers.
 1.5 11-Dec-2008  pooka Apparently some ports rely on cpu.h including machine/pcb.h.
 1.4 12-Oct-2008  pooka branches: 1.4.2;
Add some shameful kludges for the vax build. Eventually I'd like
to use the native kernel machine directory, so don't waste too much
effort fighting this now.
 1.3 31-Oct-2007  pooka branches: 1.3.16; 1.3.20; 1.3.26;
Make it possible to run rumps multithreaded. This brings real
locking and makes it possible to run file systems which create
threads. It also makes rump file system behaviour better match
file system behaviour in the kernel.
 1.2 26-Oct-2007  pooka branches: 1.2.2;
few stubs
 1.1 05-Aug-2007  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.12; 1.1.14;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.14.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.14.1 05-Aug-2007  pooka file cpu.h was added on branch matt-mips64 on 2007-08-05 22:28:07 +0000
 1.1.12.1 13-Nov-2007  bouyer Sync with HEAD
 1.1.8.4 15-Nov-2007  yamt sync with head.
 1.1.8.3 27-Oct-2007  yamt sync with head.
 1.1.8.2 03-Sep-2007  yamt sync with head.
 1.1.8.1 05-Aug-2007  yamt file cpu.h was added on branch yamt-lazymbuf on 2007-09-03 14:45:21 +0000
 1.1.6.1 06-Nov-2007  matt sync with HEAD
 1.1.4.2 20-Aug-2007  ad Sync with HEAD.
 1.1.4.1 05-Aug-2007  ad file cpu.h was added on branch vmlocking on 2007-08-20 22:07:24 +0000
 1.1.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.1.2.1 05-Aug-2007  skrll file cpu.h was added on branch nick-csl-alignment on 2007-08-15 13:50:33 +0000
 1.2.2.2 31-Oct-2007  joerg Sync with HEAD.
 1.2.2.1 26-Oct-2007  joerg file cpu.h was added on branch jmcneill-pm on 2007-10-31 23:14:14 +0000
 1.3.26.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.3.26.1 19-Oct-2008  haad Sync with HEAD.
 1.3.20.2 11-Mar-2010  yamt sync with head
 1.3.20.1 04-May-2009  yamt sync with head.
 1.3.16.1 17-Jan-2009  mjf Sync with HEAD.
 1.4.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.12.4.2 21-Apr-2011  rmind sync with head
 1.12.4.1 05-Mar-2011  rmind sync with head
 1.14.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.15.14.3 03-Dec-2017  jdolecek update from HEAD
 1.15.14.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.14.1 23-Jun-2013  tls resync from head
 1.15.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16.4.1 18-May-2014  rmind sync with head
 1.20.6.1 06-Jun-2015  skrll Sync with HEAD
 1.22.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.3 11-Mar-2014  pooka branches: 1.3.6;
Reinstance cpu_counter.h so that we don't have to work around the
MD implications everywhere else.
 1.2 08-Dec-2008  pooka branches: 1.2.12; 1.2.18;
Remove rump cpu_counter.h in favour of the arch native one. I'm
sure there was a reason why I originally added this, but I can't
find what would break without it now. If something does pop up,
I'll fix it properly this time instead of adding silly headers.
 1.1 26-Oct-2007  pooka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.10; 1.1.24; 1.1.28; 1.1.34; 1.1.36;
It's non-trivial to say that "no, we don't have cpu counter on this
arch (rump)", so emulate it. But this is suboptimal. The crux of
the problem seems to be that types.h contains both information on
the machine architecture (which we want) as well as other defines
such as __HAVE_CPU_COUNTER (which we don't want).
 1.1.36.1 19-Jan-2009  skrll Sync with HEAD.
 1.1.34.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.1.28.1 04-May-2009  yamt sync with head.
 1.1.24.1 17-Jan-2009  mjf Sync with HEAD.
 1.1.10.2 13-Nov-2007  bouyer Sync with HEAD
 1.1.10.1 26-Oct-2007  bouyer file cpu_counter.h was added on branch bouyer-xenamd64 on 2007-11-13 16:03:12 +0000
 1.1.8.2 06-Nov-2007  matt sync with HEAD
 1.1.8.1 26-Oct-2007  matt file cpu_counter.h was added on branch matt-armv6 on 2007-11-06 23:34:32 +0000
 1.1.4.2 28-Oct-2007  joerg Sync with HEAD.
 1.1.4.1 26-Oct-2007  joerg file cpu_counter.h was added on branch jmcneill-pm on 2007-10-28 20:11:15 +0000
 1.1.2.2 27-Oct-2007  yamt sync with head.
 1.1.2.1 26-Oct-2007  yamt file cpu_counter.h was added on branch yamt-lazymbuf on 2007-10-27 11:36:20 +0000
 1.2.18.1 18-May-2014  rmind sync with head
 1.2.12.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.6.1 11-Mar-2014  tls file cpu_counter.h was added on branch tls-maxphys on 2014-08-20 00:04:39 +0000
 1.23 17-Aug-2023  andvar fix typos in comments.
 1.22 19-Apr-2018  christos s/static inline/static __inline/g for consistency.
 1.21 11-Apr-2016  martin branches: 1.21.16;
Add a dummy splraiseipl()
 1.20 19-Jan-2014  martin branches: 1.20.6;
Make IPL_ values different.
This makes ni real difference for rump, but avoods
KASSERTs in common code when we try to assert
"ipl not higher as...".
Suggested by riastradh, OK: pooka.
 1.19 08-Jan-2013  skrll branches: 1.19.2;
Provide splsoftserial.

GRRR RUMP
 1.18 21-Mar-2011  pooka branches: 1.18.4; 1.18.10; 1.18.14; 1.18.16;
Update copyright statements.

no functional change.
 1.17 30-Aug-2010  pooka branches: 1.17.2;
Make IPLs not equal IPL_NONE to avoid some KASSERTs.
 1.16 06-Feb-2009  pooka branches: 1.16.4; 1.16.6;
Rip out the rwlock spl emulation code. It never did anything useful
except keep my feet warm by consuming an insane amount of cpu
cycles -- in rump our current "cpu" context is never interrupted
& we have MULTIPROCESSOR.

(itch i'm scratching: it made the networking stack 10-20% slower.
this is one of the places where fast code actually matters)
 1.15 24-Jan-2009  he Define IPL_SOFTSERIAL and provide a makeiplcookie() implementation,
so that kern/subr_pool.c can build again.

OK'ed by martin@
 1.14 05-Jan-2009  pooka Assemble with _LOCORE.
 1.13 02-Jan-2009  pooka printf needs IPL_HIGH
 1.12 26-Nov-2008  pooka Add a few symbols required by nfsd
 1.11 14-Oct-2008  pooka branches: 1.11.2;
+IPL_SOFTNET
 1.10 02-Sep-2008  pooka Add IPL_SOFTCLOCK, something required it (although I can't quite
recall what, this has been floating in my tree for a while)
 1.9 27-Jan-2008  pooka branches: 1.9.6; 1.9.10; 1.9.12; 1.9.16;
Use vfs_subr.c from sys/kern. This brings differences in the vnode
life cycle between rump and a real kernel to a minimum.
 1.8 02-Jan-2008  ad Merge vmlocking2 to head.
 1.7 03-Dec-2007  ad branches: 1.7.2; 1.7.6;
Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
 1.6 07-Nov-2007  pooka Emulate spls by using pthread rwlocks: splfoo() takes a read lock
and when doing processing in an interrupt (effectively when calling
biodone()), we take the write lock.
 1.5 07-Nov-2007  ad Define ipl_cookie_t, ipl_t.
 1.4 31-Oct-2007  pooka branches: 1.4.2; 1.4.4;
"Support" splhigh(), requested by reinoud. But the spl emulation
code needs to be actually written soon ...
 1.3 11-Sep-2007  briggs branches: 1.3.4;
Define splclock() so that this will at least compile on architectures
without _HAVE_TIMECOUNTER.
 1.2 14-Aug-2007  pooka branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8;
interrupt headers necessary for vfs_bio
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file intr.h was added on branch matt-mips64 on 2007-08-05 22:28:07 +0000
 1.2.8.7 04-Feb-2008  yamt sync with head.
 1.2.8.6 21-Jan-2008  yamt sync with head
 1.2.8.5 07-Dec-2007  yamt sync with head
 1.2.8.4 15-Nov-2007  yamt sync with head.
 1.2.8.3 27-Oct-2007  yamt sync with head.
 1.2.8.2 03-Sep-2007  yamt sync with head.
 1.2.8.1 14-Aug-2007  yamt file intr.h was added on branch yamt-lazymbuf on 2007-09-03 14:45:21 +0000
 1.2.6.4 23-Mar-2008  matt sync with HEAD
 1.2.6.3 09-Jan-2008  matt sync with HEAD
 1.2.6.2 08-Nov-2007  matt sync with -HEAD
 1.2.6.1 06-Nov-2007  matt sync with HEAD
 1.2.4.3 09-Oct-2007  ad Sync with head.
 1.2.4.2 20-Aug-2007  ad Sync with HEAD.
 1.2.4.1 14-Aug-2007  ad file intr.h was added on branch vmlocking on 2007-08-20 22:07:25 +0000
 1.2.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.2.2.1 14-Aug-2007  skrll file intr.h was added on branch nick-csl-alignment on 2007-08-15 13:50:34 +0000
 1.3.4.1 13-Nov-2007  bouyer Sync with HEAD
 1.4.4.3 18-Feb-2008  mjf Sync with HEAD.
 1.4.4.2 08-Dec-2007  mjf Sync with HEAD.
 1.4.4.1 19-Nov-2007  mjf Sync with HEAD.
 1.4.2.5 09-Dec-2007  jmcneill Sync with HEAD.
 1.4.2.4 11-Nov-2007  joerg Sync with HEAD.
 1.4.2.3 02-Nov-2007  joerg Remove the rest of the unintentional diff in sys/rump.
 1.4.2.2 31-Oct-2007  joerg Sync with HEAD.
 1.4.2.1 31-Oct-2007  joerg file intr.h was added on branch jmcneill-pm on 2007-10-31 23:14:15 +0000
 1.7.6.1 02-Jan-2008  bouyer Sync with HEAD
 1.7.2.1 28-Dec-2007  ad Make rump build.
 1.9.16.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.9.16.1 19-Oct-2008  haad Sync with HEAD.
 1.9.12.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.9.10.2 09-Oct-2010  yamt sync with head
 1.9.10.1 04-May-2009  yamt sync with head.
 1.9.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.9.6.1 28-Sep-2008  mjf Sync with HEAD.
 1.11.2.2 03-Mar-2009  skrll Sync with HEAD.
 1.11.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.16.6.2 21-Apr-2011  rmind sync with head
 1.16.6.1 05-Mar-2011  rmind sync with head
 1.16.4.1 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.17.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.18.16.1 08-Feb-2013  riz Pull up following revision(s) (requested by rmind in ticket #782):
sys/rump/include/machine/intr.h: revision 1.19
sys/kern/subr_pserialize.c: revision 1.6
sys/kern/kern_softint.c: revision 1.39
- softint_dispatch: perform pserialize(9) switchpoint when softintr processing
finishes (without blocking). Problem reported by hannken@, thanks!
- pserialize_read_enter: use splsoftserial(), not splsoftclock().
- pserialize_perform: add xcall(9) barrier as interrupts may be coalesced.
Provide splsoftserial.
GRRR RUMP
 1.18.14.3 03-Dec-2017  jdolecek update from HEAD
 1.18.14.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.18.14.1 25-Feb-2013  tls resync with head
 1.18.10.1 08-Feb-2013  riz Pull up following revision(s) (requested by rmind in ticket #782):
sys/rump/include/machine/intr.h: revision 1.19
sys/kern/subr_pserialize.c: revision 1.6
sys/kern/kern_softint.c: revision 1.39
- softint_dispatch: perform pserialize(9) switchpoint when softintr processing
finishes (without blocking). Problem reported by hannken@, thanks!
- pserialize_read_enter: use splsoftserial(), not splsoftclock().
- pserialize_perform: add xcall(9) barrier as interrupts may be coalesced.
Provide splsoftserial.
GRRR RUMP
 1.18.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.18.4.1 23-Jan-2013  yamt sync with head
 1.19.2.1 18-May-2014  rmind sync with head
 1.20.6.1 22-Apr-2016  skrll Sync with HEAD
 1.21.16.1 22-Apr-2018  pgoyette Sync with HEAD
 1.2 13-Dec-2008  pooka Get rid of local machine/{mutex,rwlock}.h files by treating the
object storage as a single pointer (all archs have at least one
uintptr_t in the objects).
 1.1 31-Oct-2007  pooka branches: 1.1.2; 1.1.6; 1.1.8; 1.1.10; 1.1.24; 1.1.28; 1.1.36;
Make it possible to run rumps multithreaded. This brings real
locking and makes it possible to run file systems which create
threads. It also makes rump file system behaviour better match
file system behaviour in the kernel.
 1.1.36.1 19-Jan-2009  skrll Sync with HEAD.
 1.1.28.1 04-May-2009  yamt sync with head.
 1.1.24.1 17-Jan-2009  mjf Sync with HEAD.
 1.1.10.2 15-Nov-2007  yamt sync with head.
 1.1.10.1 31-Oct-2007  yamt file mutex.h was added on branch yamt-lazymbuf on 2007-11-15 11:45:25 +0000
 1.1.8.2 13-Nov-2007  bouyer Sync with HEAD
 1.1.8.1 31-Oct-2007  bouyer file mutex.h was added on branch bouyer-xenamd64 on 2007-11-13 16:03:13 +0000
 1.1.6.2 06-Nov-2007  matt sync with HEAD
 1.1.6.1 31-Oct-2007  matt file mutex.h was added on branch matt-armv6 on 2007-11-06 23:34:33 +0000
 1.1.2.2 31-Oct-2007  joerg Sync with HEAD.
 1.1.2.1 31-Oct-2007  joerg file mutex.h was added on branch jmcneill-pm on 2007-10-31 23:14:15 +0000
 1.8 22-Aug-2022  mlelstv provide pmap_wired_count macro.
 1.7 17-Apr-2015  pooka Give the kernel/local pmaps actual storage.

That way friendly neighborhood macros won't go scribbling
in the wrong places.
 1.6 17-Jun-2010  pooka branches: 1.6.18; 1.6.36;
Fix snafu in previous -- if your test it flawed, it doesn't matter
how many times you pass.
 1.5 16-Jun-2010  pooka Reinstate the blanket pmap.h for archs which do not conform to the
kernel ABI (i.e. not i386 or amd64). Due to the "half function,
half macro, all noodles" nature of pmap.h, it's too entangling and
too brittle to keep up with an ifdeffy MI implementation.
 1.4 12-Dec-2008  pooka branches: 1.4.4; 1.4.6;
Add a few MD ifdefs into the rump pmap stubs to enable us to get
rid of the local pmap.h and unify the pmap ABI with the kernel.
(XXX: compiles but doesn't work on vax)

Thanks once again to Greg Oster for helping with testbuilds.
 1.3 09-Dec-2008  pooka Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module. pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.
 1.2 15-Oct-2008  pooka branches: 1.2.2;
Add support bits necessary for rumpnet functionality.
 1.1 05-Aug-2007  pooka branches: 1.1.2; 1.1.4; 1.1.8; 1.1.14; 1.1.30; 1.1.34; 1.1.40; 1.1.42;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.42.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.42.1 05-Aug-2007  pooka file pmap.h was added on branch matt-mips64 on 2007-08-05 22:28:08 +0000
 1.1.40.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.1.40.1 19-Oct-2008  haad Sync with HEAD.
 1.1.34.2 11-Aug-2010  yamt sync with head.
 1.1.34.1 04-May-2009  yamt sync with head.
 1.1.30.1 17-Jan-2009  mjf Sync with HEAD.
 1.1.14.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.1.14.1 05-Aug-2007  joerg file pmap.h was added on branch jmcneill-pm on 2007-11-02 12:43:48 +0000
 1.1.8.2 03-Sep-2007  yamt sync with head.
 1.1.8.1 05-Aug-2007  yamt file pmap.h was added on branch yamt-lazymbuf on 2007-09-03 14:45:22 +0000
 1.1.4.2 20-Aug-2007  ad Sync with HEAD.
 1.1.4.1 05-Aug-2007  ad file pmap.h was added on branch vmlocking on 2007-08-20 22:07:25 +0000
 1.1.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.1.2.1 05-Aug-2007  skrll file pmap.h was added on branch nick-csl-alignment on 2007-08-15 13:50:34 +0000
 1.2.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.4.6.1 03-Jul-2010  rmind sync with head
 1.4.4.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.6.36.1 06-Jun-2015  skrll Sync with HEAD
 1.6.18.1 03-Dec-2017  jdolecek update from HEAD
 1.3 13-Dec-2008  pooka Get rid of local machine/{mutex,rwlock}.h files by treating the
object storage as a single pointer (all archs have at least one
uintptr_t in the objects).
 1.2 31-Oct-2007  pooka branches: 1.2.4; 1.2.18; 1.2.22; 1.2.30;
Make it possible to run rumps multithreaded. This brings real
locking and makes it possible to run file systems which create
threads. It also makes rump file system behaviour better match
file system behaviour in the kernel.
 1.1 22-Sep-2007  pooka branches: 1.1.4; 1.1.6; 1.1.8; 1.1.10;
add rw_tryenter() and rw_lock_held(), inspired by Adam Hamsik
 1.1.10.3 15-Nov-2007  yamt sync with head.
 1.1.10.2 27-Oct-2007  yamt sync with head.
 1.1.10.1 22-Sep-2007  yamt file rwlock.h was added on branch yamt-lazymbuf on 2007-10-27 11:36:21 +0000
 1.1.8.1 13-Nov-2007  bouyer Sync with HEAD
 1.1.6.2 09-Oct-2007  ad Sync with head.
 1.1.6.1 22-Sep-2007  ad file rwlock.h was added on branch vmlocking on 2007-10-09 13:45:02 +0000
 1.1.4.3 31-Oct-2007  joerg Sync with HEAD.
 1.1.4.2 02-Oct-2007  joerg Sync with HEAD.
 1.1.4.1 22-Sep-2007  joerg file rwlock.h was added on branch jmcneill-pm on 2007-10-02 18:29:25 +0000
 1.2.30.1 19-Jan-2009  skrll Sync with HEAD.
 1.2.22.1 04-May-2009  yamt sync with head.
 1.2.18.1 17-Jan-2009  mjf Sync with HEAD.
 1.2.4.2 06-Nov-2007  matt sync with HEAD
 1.2.4.1 31-Oct-2007  matt file rwlock.h was added on branch matt-armv6 on 2007-11-06 23:34:33 +0000
 1.4 08-Dec-2008  pooka Instead of punishing all archs for a fake vmparam.h, punish only
evbppc for its insolence and pick a ppc cpu family at random in
Makefile.rump.
 1.3 16-Oct-2008  pooka branches: 1.3.2; 1.3.4;
Alpha requires 8k pages for mbuf size calculation to work (maybe
sparc64 too?). Make it so.
 1.2 09-Oct-2008  pooka Bump virtual page shift from 10 to 12. Otherwise the mbuf generating
macros fail to operate properly due to M_EXT_MAXPAGES being too
large and hence struct _m_ext being over MSIZE already by itself.
 1.1 28-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6;
Give rump a faux vmparam.h to work around problematic ports (hooray
for evbppc). Obligatory inlined rant: it would be really nice if
we didn't have weird ports like that which sport totally incompatible
code for different kernels.
 1.1.6.3 17-Jan-2009  mjf Sync with HEAD.
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 28-Jul-2008  mjf file vmparam.h was added on branch mjf-devfs2 on 2008-09-28 10:41:03 +0000
 1.1.4.3 10-Oct-2008  skrll Sync with HEAD.
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 28-Jul-2008  wrstuden file vmparam.h was added on branch wrstuden-revivesa on 2008-09-18 04:37:04 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 28-Jul-2008  simonb file vmparam.h was added on branch simonb-wapbl on 2008-07-31 04:51:05 +0000
 1.3.4.1 19-Jan-2009  skrll Sync with HEAD.
 1.3.2.3 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.3.2.2 19-Oct-2008  haad Sync with HEAD.
 1.3.2.1 16-Oct-2008  haad file vmparam.h was added on branch haad-dm on 2008-10-19 22:18:06 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
purge rump/net of component-specific opt directories
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file agr.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file agr.h was added on branch nick-nhusb on 2015-09-22 12:06:14 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
purge rump/net of component-specific opt directories
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file arcnet.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file arcnet.h was added on branch nick-nhusb on 2015-09-22 12:06:14 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
remove librump/rumpnet/opt, consolidate in rump/include/opt
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file arp.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file arp.h was added on branch nick-nhusb on 2015-09-22 12:06:14 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
opt files were nop't
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file atapibus.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file atapibus.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
purge rump/net of component-specific opt directories
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file bridge.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file bridge.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
purge rump/net of component-specific opt directories
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file carp.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file carp.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
Remove individual opt_foo.h files, continue consolidating to opt_rumpkernel.h
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file config_file.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file config_file.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.2 01-Sep-2015  ozaki-r branches: 1.2.2; 1.2.18;
Define NETHER in rumpkernel

This fixes failures of ATF tests running on rump_server.
 1.1 24-Aug-2015  pooka purge rump/net of component-specific opt directories
 1.2.18.2 03-Dec-2017  jdolecek update from HEAD
 1.2.18.1 01-Sep-2015  jdolecek file ether.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.2.2.2 22-Sep-2015  skrll Sync with HEAD
 1.2.2.1 01-Sep-2015  skrll file ether.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.2 14-Aug-2018  maxv Retire EtherIP, we have L2TP instead.
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18; 1.1.20; 1.1.22;
purge rump/net of component-specific opt directories
 1.1.22.1 10-Jun-2019  christos Sync with HEAD
 1.1.20.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file etherip.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file etherip.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
purge rump/net of component-specific opt directories
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file faith.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file faith.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
purge rump/net of component-specific opt directories
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file fddi.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file fddi.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.2 08-Jan-2016  knakahara branches: 1.2.16;
conform rump behavior to NetBSD kernel (in paticular net.inet.ip.gifttl sysctl)
 1.1 24-Aug-2015  pooka branches: 1.1.2;
purge rump/net of component-specific opt directories
 1.1.2.3 19-Mar-2016  skrll Sync with HEAD
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file gif.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.2.16.2 03-Dec-2017  jdolecek update from HEAD
 1.2.16.1 08-Jan-2016  jdolecek file gif.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
purge rump/net of component-specific opt directories
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file gre.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file gre.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
Remove individual opt_foo.h files, continue consolidating to opt_rumpkernel.h
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file ksyms.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file ksyms.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 16-Feb-2017  knakahara branches: 1.1.2; 1.1.6; 1.1.14; 1.1.18;
l2tp(4) support rump.
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 16-Feb-2017  jdolecek file l2tp.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.14.2 28-Aug-2017  skrll Sync with HEAD
 1.1.14.1 16-Feb-2017  skrll file l2tp.h was added on branch nick-nhusb on 2017-08-28 17:53:14 +0000
 1.1.6.2 21-Apr-2017  bouyer Sync with HEAD
 1.1.6.1 16-Feb-2017  bouyer file l2tp.h was added on branch bouyer-socketcan on 2017-04-21 16:54:07 +0000
 1.1.2.2 20-Mar-2017  pgoyette Sync with HEAD
 1.1.2.1 16-Feb-2017  pgoyette file l2tp.h was added on branch pgoyette-localcount on 2017-03-20 06:57:52 +0000
 1.1 17-May-2021  yamaguchi branches: 1.1.2; 1.1.6;
Add a new link-aggregation pseudo interface named lagg(4)

- FreeBSD's lagg(4) based implementation
- MP-safe and MP-scalable
 1.1.6.2 17-Jun-2021  thorpej Sync w/ HEAD.
 1.1.6.1 17-May-2021  thorpej file lagg.h was added on branch thorpej-i2c-spi-conf on 2021-06-17 04:46:35 +0000
 1.1.2.2 31-May-2021  cjep sync with head
 1.1.2.1 17-May-2021  cjep file lagg.h was added on branch cjep_staticlib_x on 2021-05-31 22:15:22 +0000
 1.8 31-Mar-2022  yamaguchi Added a kernel option to run LACP on a half duplex interface
 1.7 14-Jul-2021  ozaki-r Rump-ify ALTQ (librumpnet_altq.so)
 1.6 27-May-2017  bouyer branches: 1.6.8; 1.6.28;
merge the bouyer-socketcan branch to HEAD.

CAN stands for Controller Area Network, a broadcast network used
in automation and automotive fields. For example, the NMEA2000 standard
developped for marine devices uses a CAN network as the link layer.

This is an implementation of the linux socketcan API:
https://www.kernel.org/doc/Documentation/networking/can.txt
you can also see can(4).

This adds a new socket family (AF_CAN) and protocol (PF_CAN),
as well as the canconfig(8) utility, used to set timing parameter of
CAN hardware. Also inclued is a driver for the CAN controller
found in the allwinner A20 SoC (I tested it with an Olimex lime2 board,
connected with PIC18-based CAN devices).

There is also the canloop(4) pseudo-device, which allows to use
the socketcan API without CAN hardware.

At this time the CANFD part of the linux socketcan API is not implemented.
Error frames are not implemented either. But I could get the cansend and
canreceive utilities from the canutils package to build and run with minimal
changes. tcpudmp(8) can also be used to record frames, which can be
decoded with etherreal.
 1.5 15-Apr-2016  ozaki-r branches: 1.5.4;
Rump-ify if_pppoe

From s-yamaguchi@IIJ
 1.4 07-Jan-2016  pooka use WSEMUL_NO_DUMB and WSEMUL_VT100
 1.3 24-Aug-2015  pooka branches: 1.3.2;
Remove individual opt_foo.h files, continue consolidating to opt_rumpkernel.h
 1.2 24-Aug-2015  pooka Remove a bunch of opt files.

It's a cute idea to have component-specific opt files, but also a
completely stupid one since there's no way of knowing how options
transcend component boundaries, and therefore if a set of options is
conflicting or not. So, just continue concentrating all of opt_foo.h in
opt_rumpkernel.h in accordance with the monolithic opt model.
 1.1 21-Aug-2015  pooka Move constant cpp macros from Makefile.rump into opt_rumpkernel.h
(makes cc invocation lines a bit shorter)
 1.3.2.5 28-Aug-2017  skrll Sync with HEAD
 1.3.2.4 22-Apr-2016  skrll Sync with HEAD
 1.3.2.3 19-Mar-2016  skrll Sync with HEAD
 1.3.2.2 22-Sep-2015  skrll Sync with HEAD
 1.3.2.1 24-Aug-2015  skrll file opt_rumpkernel.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.5.4.1 15-Jan-2017  bouyer Initial commit of a CAN socket layer, compatible with linux SoccketCAN
(but incomplete). Based on work from Robert Swindells.
 1.6.28.1 01-Aug-2021  thorpej Sync with HEAD.
 1.6.8.2 03-Dec-2017  jdolecek update from HEAD
 1.6.8.1 27-May-2017  jdolecek file opt_rumpkernel.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
remove librump/rumpnet/opt, consolidate in rump/include/opt
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file pfsync.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file pfsync.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.2 15-Apr-2016  ozaki-r branches: 1.2.16;
Rump-ify if_pppoe

From s-yamaguchi@IIJ
 1.1 24-Aug-2015  pooka branches: 1.1.2;
purge rump/net of component-specific opt directories
 1.1.2.3 22-Apr-2016  skrll Sync with HEAD
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file pppoe.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.2.16.2 03-Dec-2017  jdolecek update from HEAD
 1.2.16.1 15-Apr-2016  jdolecek file pppoe.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
opt files were nop't
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file scsibus.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file scsibus.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
continue consolidating non-modular option files
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file sysmon_envsys.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file sysmon_envsys.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
continue consolidating non-modular option files
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file sysmon_power.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file sysmon_power.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
continue consolidating non-modular option files
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file sysmon_wdog.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file sysmon_wdog.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
purge rump/net of component-specific opt directories
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file token.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file token.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
Remove individual opt_foo.h files, continue consolidating to opt_rumpkernel.h
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file veriexec.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file veriexec.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.2 26-Nov-2016  ozaki-r branches: 1.2.14;
Rumpify vlan(4)
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.4;
purge rump/net of component-specific opt directories
 1.1.4.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.1.2.3 05-Dec-2016  skrll Sync with HEAD
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file vlan.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.2.14.2 03-Dec-2017  jdolecek update from HEAD
 1.2.14.1 26-Nov-2016  jdolecek file vlan.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
opt files were nop't
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file wd.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file wd.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 20-Aug-2020  riastradh [ozaki-r] Add wg files
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
continue consolidating non-modular option files
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file wsdisplay.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file wsdisplay.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
continue consolidating non-modular option files
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file wskbd.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file wskbd.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
continue consolidating non-modular option files
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file wsmouse.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file wsmouse.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.1 24-Aug-2015  pooka branches: 1.1.2; 1.1.18;
continue consolidating non-modular option files
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 24-Aug-2015  jdolecek file wsmux.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 24-Aug-2015  skrll file wsmux.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.10 02-Feb-2016  pooka Add capability to attach external memory to files on rumpfs. This
feature is useful e.g. for tight-memory systems where you don't need
block storage, but still need to provide some data via files.
 1.9 31-Jan-2016  pooka Move "shotgun approach to rump syscalls" from rump.h to a separate header,
sort of as a hint that relying on those macros is not necessarily the
way you want to do things in 2016. Include things from rump.h for compat
for the time being, though.
 1.8 15-Sep-2015  pooka install <rump/rumperrno2host.h>
 1.7 25-Apr-2014  pooka branches: 1.7.4;
obsolete the installed <rump/scsitest.h> header and make it private
to tests/dev/scsipi
 1.6 18-Dec-2013  pooka branches: 1.6.2;
install rumperr.h
 1.5 08-Aug-2012  christos branches: 1.5.2; 1.5.4;
don't install includes if MKRUMP = no
 1.4 24-Aug-2010  pooka branches: 1.4.8;
whoopsie, need to commit this as part of scsitest
 1.3 19-Jul-2010  pooka add rump_syscalls_compat.h
 1.2 14-Oct-2009  pooka branches: 1.2.2; 1.2.4;
Adjust rump sources for external/internal interfaces.
No functional change.
 1.1 17-Nov-2008  pooka branches: 1.1.4; 1.1.6; 1.1.10;
Descend into include/rump and install headers.
 1.1.10.5 09-Oct-2010  yamt sync with head
 1.1.10.4 11-Aug-2010  yamt sync with head.
 1.1.10.3 11-Mar-2010  yamt sync with head
 1.1.10.2 04-May-2009  yamt sync with head.
 1.1.10.1 17-Nov-2008  yamt file Makefile was added on branch yamt-nfs-mp on 2009-05-04 08:14:29 +0000
 1.1.6.2 19-Jan-2009  skrll Sync with HEAD.
 1.1.6.1 17-Nov-2008  skrll file Makefile was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.1.4.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.4.1 17-Nov-2008  mjf file Makefile was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.2.4.1 05-Mar-2011  rmind sync with head
 1.2.2.2 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.2.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.4.8.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.8.1 30-Oct-2012  yamt sync with head
 1.5.4.1 18-May-2014  rmind sync with head
 1.5.2.2 03-Dec-2017  jdolecek update from HEAD
 1.5.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.2.1 10-Aug-2014  tls Rebase.
 1.7.4.2 19-Mar-2016  skrll Sync with HEAD
 1.7.4.1 22-Sep-2015  skrll Sync with HEAD
 1.31 21-Aug-2018  christos Unlike gnu sed our sed does not recognize inline labels (separated by
semi-colons) so split the lines, and make sure that command lists end
with a semi-colon.
 1.30 21-Aug-2018  msaitoh rumpdefs.h, rumperr.h and rumperrno2host.h are generated from makerumpdefs.sh.
Don't edit those files directly. Use __inline instead of inline in the
script file. OK'd by christos.
 1.29 02-Feb-2016  pooka branches: 1.29.16; 1.29.18;
snarf fcntl definitions
 1.28 15-Sep-2015  pooka Generate rump_errno2host(): translates rump kernel errnos to host errnos.

Essentially, it's a partial I-know-what-I'm-doing syscall compat.

Functionality requested by Robert Millan.
 1.27 10-Sep-2015  pooka Fix #define ERRNO EANOTHERRNO.

Was: #define RUMP_ERRNO EANOTHERRNO
Now: #define RUMP_ERRNO RUMP_EANOTHERRNO

pointed out by Sebastian Wicki on irc
 1.26 10-Sep-2015  pooka Ignore multiline IOC macros by default.
 1.25 18-Dec-2013  pooka branches: 1.25.6;
generate errno -> str routine (for portable programs)
 1.24 11-Dec-2013  pooka need to grab KTRFACv[n] too
 1.23 09-Dec-2013  pooka include ktrace constants
 1.22 13-Nov-2013  pooka do enums, grab enum modctl
 1.21 15-Aug-2013  pooka translate ino_t to a portability-friendlier type
 1.20 15-Aug-2013  pooka Explicitly avoid MAXNAMELEN. I'm not claiming it's pretty, but most
likely it's more bang for the buck than adding cpp support to the
sed script.
 1.19 15-Aug-2013  pooka grab struct dirent
 1.18 25-Jun-2013  stacktic branches: 1.18.2;
grab ioctl-related macros
 1.17 01-Jun-2013  stacktic Grab more network-related macros
 1.16 08-May-2013  pooka grab mount-related macros too
 1.15 08-May-2013  pooka Grab the sysvbfs args structure too, since the fs is useful for
simple testing. Incidentally, the structure is exactly the same as
for UFS...
 1.14 30-Apr-2013  pooka fix sed command
 1.13 13-Dec-2012  pooka Add the ability to define compat structs and include a few.
 1.12 21-Nov-2012  pooka ok, rump_sockaddr_in was a pretty desperate kludge in the first place,
much better solved by syscall compat. but, now it's really time to let
it go since solaris thinks it's nice to define s_addr around any way
it likes.
 1.11 18-Nov-2012  pooka Necessary _KERNEL wrap to previous.
 1.10 18-Nov-2012  pooka make work for non-c++ (???)
 1.9 18-Nov-2012  pooka While mucking in here, give the [local] client a chance to access all
rump kernel (i.e. NetBSD) errnos, not just EJUSTRETURN.
 1.8 18-Nov-2012  pooka Finally remove the "temporary" __VTYPE_DEFINED stuff I added >5 years ago.
 1.7 20-Jul-2012  pooka branches: 1.7.2;
add some network-related compat defs
 1.6 02-Jul-2010  hannken branches: 1.6.8;
LK_* flags moved to sys/vnode.h
 1.5 03-Nov-2009  pooka branches: 1.5.2; 1.5.4;
include AB_* macros from reboot.h
 1.4 09-Oct-2009  pooka namespace RB_ from reboot.h
 1.3 17-Nov-2008  pooka branches: 1.3.4; 1.3.6; 1.3.10;
adjust comments out of lock.h
 1.2 17-Nov-2008  pooka include those appetizing lockmanger flags
 1.1 17-Nov-2008  pooka Add script to statically generate rumpdefs.h instead of doing it buildtime.
 1.3.10.4 11-Aug-2010  yamt sync with head.
 1.3.10.3 11-Mar-2010  yamt sync with head
 1.3.10.2 04-May-2009  yamt sync with head.
 1.3.10.1 17-Nov-2008  yamt file makerumpdefs.sh was added on branch yamt-nfs-mp on 2009-05-04 08:14:29 +0000
 1.3.6.2 19-Jan-2009  skrll Sync with HEAD.
 1.3.6.1 17-Nov-2008  skrll file makerumpdefs.sh was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.3.4.2 17-Jan-2009  mjf Sync with HEAD.
 1.3.4.1 17-Nov-2008  mjf file makerumpdefs.sh was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.5.4.1 03-Jul-2010  rmind sync with head
 1.5.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.6.8.4 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.6.8.3 23-Jan-2013  yamt sync with head
 1.6.8.2 16-Jan-2013  yamt sync with (a bit old) head
 1.6.8.1 30-Oct-2012  yamt sync with head
 1.7.2.5 03-Dec-2017  jdolecek update from HEAD
 1.7.2.4 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.2.3 23-Jun-2013  tls resync from head
 1.7.2.2 25-Feb-2013  tls resync with head
 1.7.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.18.2.2 18-May-2014  rmind sync with head
 1.18.2.1 28-Aug-2013  rmind sync with head
 1.25.6.2 19-Mar-2016  skrll Sync with HEAD
 1.25.6.1 22-Sep-2015  skrll Sync with HEAD
 1.29.18.1 10-Jun-2019  christos Sync with HEAD
 1.29.16.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.73 04-Nov-2020  christos PR/55781: Ruslan Nikolaev: rump_init() does differentiate when all CPUs are
initialized
 1.72 14-Jun-2020  kamil branches: 1.72.2;
Remove old compat include of rump_syscallshotgun.h

It was separated in 2016 and is no longer needed.
 1.71 14-Jun-2020  kamil Fix header compatibility with C++

This file is OS-agnostic and cannot include OS specific headers.

The fallback for NetBSD specific symbol __BEGIN_DECLS didn't work as it was
misspelled as _BEGIN_DECLS.
 1.70 11-May-2017  christos ... but define RUMP_REGISTER_T if not defined.
 1.69 11-May-2017  christos Use the same exposure rules for register_t as <machine/types.h> does.
Eventually we could remove -D_KERNTYPES from all the rump libraries...
 1.68 31-Jan-2016  pooka branches: 1.68.8;
Move "shotgun approach to rump syscalls" from rump.h to a separate header,
sort of as a hint that relying on those macros is not necessarily the
way you want to do things in 2016. Include things from rump.h for compat
for the time being, though.
 1.67 29-Jan-2016  christos PR/50631: Joerg Sonnenberger: Don't rename syscalls before you include
the relevant headers.
 1.66 25-Jan-2016  pooka prop_dictionary_t hasn't been needed here in, um, 5 years, so remove
the type madness.
 1.65 25-Jan-2016  pooka Don't include <rump/rumpvnode_if.h> from rump.h. It's not needed
unless you're doing something special, but requires register_t.
Adjust the few places which actually need rumpvnode_if.h.
 1.64 01-Nov-2015  pooka fix typo: fnctl -> fcntl

from Robert Millan <rmh@gnu.org> via rumpkernel-users
 1.63 13-Jun-2014  pooka branches: 1.63.4;
Add rump_boot_etfs_register(), which can be used to specify etfs
nodes that will be available immediately when mountroot is done
and file systems are available.

The intended use is for example for firmware images to be available when
config_mountroot() hooks run.
 1.62 02-Apr-2014  justin branches: 1.62.2;
Add Android support for rump kernel.

Reviewed by pooka@
 1.61 10-Mar-2014  pooka add a compat prototype for rump_getversion()
 1.60 10-Mar-2014  pooka rump_getversion() does not require a thread context, so make it a straight
call instead of being wrapped around rump_pub_getversion().
 1.59 10-Mar-2014  pooka Move the "is arch capable of loading native kernel modules into
rump kernel" clauses from bsd.own.mk to Makefile.rump. Also,
add a rump_nativeabi_p() call to determine if rump kernel is
compiled with native ABI support.
 1.58 20-Feb-2014  pooka Remove the "host" signal model. I'm not sure it ever made any sense.
I'm also quite sure nobody ever really wanted to use it.

Change the "raise" sigmodel to include the rump kernel PID in the call
to rumpuser_kill(). The purpose is to provide some hint for non-POSIX
platforms which don't sport signals and multiplex many clients in a
single address space.

While this is technically an ABI change, see above. Also, since
rumpuser_kill() was not documented, I'll just claim I'm fixing a bug in
the implementation (and will be sure to document the interface correctly
very soon).
 1.57 16-Jul-2013  pooka Give reader-friendly aliases to rfork flags.
 1.56 27-Apr-2013  pooka branches: 1.56.4;
Get rid of the rump__init() macro. it was never useful and just makes
debugging less obvious.
 1.55 21-Nov-2012  pooka export register_t to rump kernel users on solaris
 1.54 20-Jul-2012  pooka branches: 1.54.2;
Revert rev 1.51. Turns out the defines are still useful when you really
want a local client.
 1.53 21-Mar-2011  pooka branches: 1.53.4;
Update copyright statements.

no functional change.
 1.52 09-Mar-2011  pooka Duh, the nfsd hacks in tests still used RUMP_SYS_NETWORKING. It
appears that using nxr to search for users wasn't a very good idea.
Put networking back and make the test of the defines give out
#errors.

me be fixink this
 1.51 08-Mar-2011  pooka g/c old-style syscall selection method
 1.50 02-Jan-2011  pooka branches: 1.50.2;
There is a use case where preserving the parent's fd table is
relevant, so to accommodate that change rump_lwproc_newproc() to
rump_lwproc_rfork(). The new interface has the rfork() fd table
semantics. The equivalent of rump_lwproc_newproc() is
rump_lwproc_rfork(RUMP_RFCFDG).
 1.49 30-Nov-2010  pooka Require server to be explicitly initialized with rump_init_server(url).
Also, add rump_daemonize_begin() / rump_daemonize_end() to help
with the "can't daemon() after pthread_create()" problem. Applications
could accomplish the same, but since it's such a common operation,
provide a little help.
 1.48 30-Nov-2010  dholland RUMPCN_FORCEFREE is no longer needed.
 1.47 15-Nov-2010  pooka Add a new signal model RUMP_SIGMODEL_RECORD which records all
signals which are posted to a process.
 1.46 27-Oct-2010  pooka Start rework of system call proxying over socket ("sysproxy").
This incarnation is written in the user namespace as opposed to
the previous one which was done in kernel namespace. Also, rump
does all the handshaking now instead of excepting an application
to come up with the user namespace socket.

There's still a lot to do, including making code "a bit" more
robust, actually running different clients in a different process
inside the kernel and splitting the client side library from librump.
I'm committing this now so that I don't lose it, plus it generally
works as long as you don't use it in unexcepted ways: i've tested
ifconfig(8), route(8), envstat(8) and sysctl(8).
 1.45 06-Sep-2010  pooka add a few more system calls
 1.44 11-May-2010  pooka _RUMPKERNEL -> _KERNEL
 1.43 01-May-2010  pooka forward-declare struct uio (required by rumpvnode_if.h)
 1.42 01-May-2010  pooka Add rump_printevcnts() which dumps values from all event counters.
(NOTE! it is run unscheduled for various experimentation etcetc. reasons)
 1.41 26-Apr-2010  pooka Add directory support to etfs: host directories and their contents
will be mapped to rumpfs based on the given key. The directory
can be mapped either for a single level or recursively down the
entire subtree.
 1.40 24-Apr-2010  dholland Remove trailing comma in enum, per PR kern/43200.

(trailing commas in enums are allowed in C99, but not C89, and possibly
not in C++, so let's be nice to older and deviant compilers)
 1.39 21-Apr-2010  pooka Move all signal-related from emul.c to signals.c. Additionally,
define a few alternate signal models for the rump kernel, including
ones where signals are ignored or sent to host processes.
 1.38 14-Apr-2010  pooka Use "struct kauth_cred *" instead of kauth_cred_t in all exported
interfaces. Allows to remove hairbrained _t typedef dance.
 1.37 24-Feb-2010  pooka branches: 1.37.2;
Expose rump_schedule() and rump_unschedule(). These can be used
for wrapping application space calls to the rump kernel without
having to do heavyweight interface specification with ifspec.
 1.36 11-Feb-2010  pooka Add RUMP_SYS_FILEOPS for syscalls which operate on files (or at least
close to that).
 1.35 23-Dec-2009  stacktic branches: 1.35.2;
Fixed ukfs build on non-NetBSD system.
 1.34 09-Dec-2009  haad Add RUMP_SYS_OPEN define to replace open calls with their RUMP version.
 1.33 03-Nov-2009  pooka Add rump_boot_set/gethowto(), which can be called before rump_init()
to control .... *tadaa* boothowto.
 1.32 14-Oct-2009  pooka "rumppriv" goes back to "rump" per internal interface naming change.
 1.31 14-Oct-2009  pooka Adjust rump sources for external/internal interfaces.
No functional change.
 1.30 13-Oct-2009  pooka don't define curlwp, it's just (unused) sugar
 1.29 11-Oct-2009  pooka add recvmsg and sendmsg to networking rump syscalls
 1.28 09-Oct-2009  pooka Provide an interface for reboot.
 1.27 07-Oct-2009  pooka g/c some prehistoric interfaces which have been superceded by others.
 1.26 07-Oct-2009  pooka Allow to set size and host file offset for etfs files and rumpblk.
 1.25 06-Oct-2009  pooka Give a p2k node an internal state. This allows us to do proper
reference counting and not release nodes based just on puffs'
impression of if they are free.

This also allows us to reclaim vnodes already in inactive if the
file system so desires. Some file systems, most notably ffs, change
file state already in inactive. This could lead to a deadlock in
the middle of inactive and reclaim if some other puffs operation
was processed in between (as exposed by haad's open(at) test
program).

Also, properly thread the componentname from lookup to the actual
vnode operation. This required the changes the rump componentname
routines. Yes, the rename case is truly mindbogglingly disgusting.
Puke for yourself.
 1.24 03-Aug-2009  pooka * get rid of the old fakeblk registration interface. Instead,
introduce a new and improved "etfs" interface, which can be used
to register host files accessible from rump fs namespace. This
new interface is not restriced to block devices, and neither does
it require the same pathname in host namespace and rump namespace.
Therefore, the same host file can be represented both as a char
and block device in rump namespace.

* adjust rumpblk to make the above possible

* improve rumpfs: nodes are now created properly and not implicitly
tied to the vnode lifecycle
 1.23 26-May-2009  pooka add ioctl to list of compile-time translated calls
 1.22 22-May-2009  pooka forward declare struct stat to avoid implicit header dependencies
 1.21 22-May-2009  pooka Add compat routines for vattr translation over time_t change.
 1.20 22-May-2009  pooka Add handrolled stat30 compat syscalls for calling post-time_t rump
kernels from pre-time_t userlands.
 1.19 22-May-2009  pooka Add rump_getversion(), which returns the version of NetBSD for the
rump kernel.
 1.18 07-May-2009  pooka Add rump_set_curlwp() for context switch to an existing lwp/proc.
 1.17 04-May-2009  pooka Nuke RUMPCN_HASNTBUF. The inspiration behind it must've been ... deep.
 1.16 03-May-2009  pooka branches: 1.16.2;
Rename rump_cred_destroy() to rump_cred_put() -- they've been
refcounted since forever now.
 1.15 03-May-2009  pooka Add rump_vfs_getmp(), which returns struct mount for a given path.
(yes, it does not take a reference to the mountpoint)
 1.14 02-May-2009  pooka Since rump_module_load() doesn't actually load the module, change
the name to rump_module_init(). Also, adjust the signature to take
a direct pointer to modinfo and allow passing of props. Finally,
provide rump_module_fini().
 1.13 29-Apr-2009  pooka Add proof-of-concept code for enabling system calls to rump virtual
kernels running in other processes on the same machine or on an
entirely different host. I wrote this a while ago and am now
committing it mainly to avoid losing it. It works, but could do
with a little tuning here and there.

What this will hopefully eventually buy us is the ability to use
standard userland tools to configure rump kernels, e.g. ifconfig(8)
and route(8) could be used to configure the networking stack provided
by a rump kernel. Also some distributed OS implications may apply.

fun fact: a system call which just does copyin/copyout takes >1000x
longer when made over the LAN as compared to when made on the same
machine.
 1.12 27-Mar-2009  pooka rump_virtif_create prototype
 1.11 27-Mar-2009  pooka shotgun approach to rump syscalls
 1.10 22-Feb-2009  ad PR kern/26878 FFSv2 + softdep = livelock (no free ram)
PR kern/16942 panic with softdep and quotas
PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch
PR kern/26274 softdep panic: allocdirect_merge: ...
PR kern/26374 Long delay before non-root users can write to softdep partitions
PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem
PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption
PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk
PR kern/31981 stopping scsi disk can cause panic (softdep)
PR kern/32116 kernel panic in softdep (assertion failure)
PR kern/32532 softdep_trackbufs deadlock
PR kern/37191 softdep: locking against myself
PR kern/40474 Kernel panic after remounting raid root with softdep

Retire softdep, pass 2. As discussed and later formally announced on the
mailing lists.
 1.9 20-Feb-2009  pooka missed one prototype
 1.8 20-Feb-2009  pooka typedef rump_sysproxy_t
 1.7 06-Feb-2009  pooka branches: 1.7.2;
Rip out the rwlock spl emulation code. It never did anything useful
except keep my feet warm by consuming an insane amount of cpu
cycles -- in rump our current "cpu" context is never interrupted
& we have MULTIPROCESSOR.

(itch i'm scratching: it made the networking stack 10-20% slower.
this is one of the places where fast code actually matters)
 1.6 08-Jan-2009  pooka branches: 1.6.2; 1.6.4;
Put syspuffs_glueinit in the rump kernel namespace.
 1.5 07-Jan-2009  pooka _rump_init() - > rump__init()
 1.4 21-Nov-2008  pooka rump_vfs_load() is really rump_module_load(), so call it that and
move it from rumpvfs to rumpkern.
 1.3 19-Nov-2008  pooka Split vfs out of rumpkern into rumpvfs. Non-fs rumps no longer
include the file system code. File system rumps explicitly need
to include rumpvfs from now on.
 1.2 17-Nov-2008  pooka Remove rump_vp locking interfaces, use RUMP_VOP instead.
 1.1 17-Nov-2008  pooka Move rump public headers to include/rump
 1.6.4.4 28-Apr-2009  skrll Sync with HEAD.
 1.6.4.3 03-Mar-2009  skrll Sync with HEAD.
 1.6.4.2 19-Jan-2009  skrll Sync with HEAD.
 1.6.4.1 08-Jan-2009  skrll file rump.h was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.6.2.2 17-Jan-2009  mjf Sync with HEAD.
 1.6.2.1 08-Jan-2009  mjf file rump.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.7.2.2 23-Jul-2009  jym Sync with HEAD.
 1.7.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.16.2.8 09-Oct-2010  yamt sync with head
 1.16.2.7 11-Aug-2010  yamt sync with head.
 1.16.2.6 11-Mar-2010  yamt sync with head
 1.16.2.5 19-Aug-2009  yamt sync with head.
 1.16.2.4 20-Jun-2009  yamt sync with head
 1.16.2.3 16-May-2009  yamt sync with head
 1.16.2.2 04-May-2009  yamt sync with head.
 1.16.2.1 03-May-2009  yamt file rump.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:29 +0000
 1.35.2.4 06-Nov-2010  uebayasi Sync with HEAD.
 1.35.2.3 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.35.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.35.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.37.2.3 21-Apr-2011  rmind sync with head
 1.37.2.2 05-Mar-2011  rmind sync with head
 1.37.2.1 30-May-2010  rmind sync with head
 1.50.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.53.4.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.53.4.2 16-Jan-2013  yamt sync with (a bit old) head
 1.53.4.1 30-Oct-2012  yamt sync with head
 1.54.2.4 03-Dec-2017  jdolecek update from HEAD
 1.54.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.54.2.2 23-Jun-2013  tls resync from head
 1.54.2.1 25-Feb-2013  tls resync with head
 1.56.4.2 18-May-2014  rmind sync with head
 1.56.4.1 28-Aug-2013  rmind sync with head
 1.62.2.1 10-Aug-2014  tls Rebase.
 1.63.4.3 28-Aug-2017  skrll Sync with HEAD
 1.63.4.2 19-Mar-2016  skrll Sync with HEAD
 1.63.4.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.68.8.1 19-May-2017  pgoyette Resolve conflicts from previous merge (all resulting from $NetBSD
keywork expansion)
 1.72.2.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.53 01-Jul-2024  christos regen
 1.52 23-Sep-2023  ad branches: 1.52.6;
Regen.
 1.51 12-Sep-2023  ad Back out recent change to replace pool_cache with then general allocator.
Will return to this when I have time again.
 1.50 10-Sep-2023  ad Regen.
 1.49 09-Sep-2023  ad Regen.
 1.48 29-Jun-2021  dholland Regen.
 1.47 16-Jun-2021  dholland Regen.
 1.46 30-May-2020  ad branches: 1.46.6;
Regen.
 1.45 27-May-2020  rin Regen.
 1.44 26-May-2020  ad Regen.
 1.43 12-May-2020  ad Regen.
 1.42 04-Apr-2020  ad Regen.
 1.41 23-Mar-2020  ad Regen.
 1.40 23-Mar-2020  ad Regen.
 1.39 22-Mar-2020  ad Regen.
 1.38 08-Jan-2020  ad Regen.
 1.37 06-Jan-2020  ad branches: 1.37.2;
Regen.
 1.36 01-Dec-2019  ad Regen.
 1.35 01-Dec-2019  ad Regen.
 1.34 01-Dec-2019  ad namecache changes:

- Delete the per-entry lock, and borrow the associated vnode's v_interlock
instead. We need to acquire it during lookup anyway. We can revisit this
in the future but for now it's a stepping stone, and works within the
quite limited context of what we have (BSD namecache/lookup design).

- Implement an idea that Mateusz Guzik (mjg@FreeBSD.org) gave me. In
cache_reclaim(), we don't need to lock out all of the CPUs to garbage
collect entries. All we need to do is observe their locks unheld at least
once: then we know they are not in the critical section, and no longer
have visibility of the entries about to be garbage collected.

- The above makes it safe for sysctl to take only namecache_lock to get stats,
and we can remove all the crap dealing with per-CPU locks.

- For lockstat, make namecache_lock a static now we have __cacheline_aligned.

- Avoid false sharing - don't write back to nc_hittime unless it has changed.
Put a a comment in place explaining this. Pretty sure this was there in
2008/2009 but someone removed it (understandably, the code looks weird).

- Use a mutex to protect the garbage collection queue instead of atomics, and
adjust the low water mark up so that cache_reclaim() isn't doing so much
work at once.
 1.33 13-Sep-2019  christos Regen
 1.32 03-Jun-2019  msaitoh branches: 1.32.2;
Regen.
 1.31 21-Mar-2017  riastradh branches: 1.31.6; 1.31.14;
regen
 1.30 19-Mar-2017  riastradh regen
 1.29 18-Mar-2017  riastradh regen
 1.28 18-Mar-2017  riastradh regen
 1.27 21-Apr-2015  riastradh branches: 1.27.2; 1.27.4;
Cull unused INRENAME and INRELOOKUP from callers.
 1.26 16-Jan-2015  dennis Regen.
 1.25 24-Dec-2014  dennis Update stats-keeping in sys/kern/vfs_cache.c to remove (most)
races while allowing consistent lockless sampling of the per-cpu
statistics without atomic operations. Update comment describing
the locking protocol to include this.
 1.24 03-Jun-2014  joerg branches: 1.24.4;
Regen.
 1.23 03-Jun-2014  joerg Regen.
 1.22 18-Nov-2012  dholland branches: 1.22.10;
Regen from updated namei.src.
 1.21 05-Nov-2012  dholland regen
 1.20 05-Nov-2012  dholland regen
 1.19 05-Nov-2012  dholland regen
 1.18 13-Oct-2012  dholland regen
 1.17 08-Oct-2012  dholland regen
 1.16 25-Nov-2011  dholland branches: 1.16.8;
Regen.
 1.15 18-Apr-2011  dholland branches: 1.15.4;
Regen for ISSYMLINK removal.
 1.14 07-Jan-2011  pooka branches: 1.14.2;
regen: fix PARAMASK
 1.13 02-Jan-2011  dholland Final regen for tonight.
 1.12 02-Jan-2011  dholland Regen yet again.
 1.11 02-Jan-2011  dholland Regen again.
 1.10 02-Jan-2011  dholland Regen.
 1.9 30-Nov-2010  dholland Regen for both preceding commits of namei.src together. I suppose I should
technically have regen'd separately for each but it didn't seem worthwhile.
 1.8 19-Nov-2010  dholland Regen.
 1.7 23-Dec-2009  pooka branches: 1.7.4;
regen: INRENAME
 1.6 27-Sep-2009  dholland regen again (forgot both patches touched namei.h)
 1.5 27-Sep-2009  dholland regen
 1.4 29-Jun-2009  dholland regen
 1.3 11-Feb-2009  enami branches: 1.3.2;
Regen.
 1.2 17-Nov-2008  pooka branches: 1.2.4; 1.2.6; 1.2.8;
reregen to get those most important rcsids right
 1.1 17-Nov-2008  pooka regen
 1.2.8.2 23-Jul-2009  jym Sync with HEAD.
 1.2.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.2.6.3 03-Mar-2009  skrll Sync with HEAD.
 1.2.6.2 19-Jan-2009  skrll Sync with HEAD.
 1.2.6.1 17-Nov-2008  skrll file rump_namei.h was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.2.4.2 17-Jan-2009  mjf Sync with HEAD.
 1.2.4.1 17-Nov-2008  mjf file rump_namei.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.3.2.4 11-Mar-2010  yamt sync with head
 1.3.2.3 18-Jul-2009  yamt sync with head.
 1.3.2.2 04-May-2009  yamt sync with head.
 1.3.2.1 11-Feb-2009  yamt file rump_namei.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:29 +0000
 1.7.4.2 21-Apr-2011  rmind sync with head
 1.7.4.1 05-Mar-2011  rmind sync with head
 1.14.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.15.4.3 16-Jan-2013  yamt sync with (a bit old) head
 1.15.4.2 30-Oct-2012  yamt sync with head
 1.15.4.1 17-Apr-2012  yamt sync with head
 1.16.8.3 03-Dec-2017  jdolecek update from HEAD
 1.16.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.16.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.22.10.1 10-Aug-2014  tls Rebase.
 1.24.4.2 06-Jun-2015  skrll Sync with HEAD
 1.24.4.1 06-Apr-2015  skrll Sync with HEAD
 1.27.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.27.2.2 26-Apr-2017  pgoyette Sync with HEAD
 1.27.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.31.14.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.31.14.1 10-Jun-2019  christos Sync with HEAD
 1.31.6.1 21-Jun-2021  martin Regen for ticket #1685
 1.32.2.1 21-Jun-2021  martin Regen for ticket #1296
 1.37.2.5 04-Mar-2020  ad Regen.
 1.37.2.4 25-Jan-2020  ad Remove unintentional differences to base.
 1.37.2.3 17-Jan-2020  ad Sync with head.
 1.37.2.2 14-Jan-2020  ad Regen.
 1.37.2.1 08-Jan-2020  ad Regen.
 1.46.6.2 01-Aug-2021  thorpej Sync with HEAD.
 1.46.6.1 17-Jun-2021  thorpej Sync w/ HEAD.
 1.52.6.1 02-Aug-2025  perseant Sync with HEAD
 1.133 09-Oct-2024  christos regen
 1.132 05-Oct-2024  mlelstv regen
 1.131 03-Oct-2024  christos regen
 1.130 20-May-2024  christos branches: 1.130.2;
regen
 1.129 19-May-2024  christos regen
 1.128 28-Jul-2023  christos regen
 1.127 10-Jul-2023  christos Regen
 1.126 01-Nov-2021  thorpej regen for "struct sigaltstack" -> "stack_t"
 1.125 19-Sep-2021  thorpej Regen for eventfd(2) and timerfd(2).
 1.124 02-Nov-2020  christos regen
 1.123 14-Aug-2020  riastradh branches: 1.123.2;
regen
 1.122 11-Jun-2020  dholland Regen with new makesyscalls.

(the large diff of rump_syscalls.h has been checked and was the point
of the makesyscalls change)
 1.121 02-Jun-2020  kamil Regenerate syscalls

Respect syscall alias names in rump.

No binary change in this version.

The previous commit was interrupted in the middle by CVS network outage.
 1.120 02-Jun-2020  kamil Regenerate native NetBSD syscalls

The only change is rump repecting syscall alias names.

No binary change.
 1.119 16-May-2020  christos Add ACL support for FFS. From FreeBSD.
 1.118 26-Apr-2020  thorpej Regen for futex call relocation.
 1.117 26-Apr-2020  thorpej Regen for native futex calls.
 1.116 25-Apr-2020  bouyer Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor
 1.115 22-Apr-2020  thorpej Regen for removal of _lwp_gettid(2).
 1.114 04-Apr-2020  thorpej branches: 1.114.2;
Regen for _lwp_gettid(2).
 1.113 21-Jan-2020  pgoyette Regen
 1.112 22-Sep-2019  christos branches: 1.112.2;
regen
 1.111 10-Aug-2018  pgoyette Regen
 1.110 31-Jul-2018  rjs regen.
 1.109 12-Jul-2018  maxv Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

* Removes "options PERFCTRS", the associated includes, and the associated
ifdefs. In doing so, it removes several XXXSMPs in the MI code, which is
good.

* Removes the PMC code of ARM XSCALE.

* Removes all the pmc.h files. They were all empty, except for ARM XSCALE.

* Reorders the x86 PMC code not to rely on the legacy pmc.h file. The
definitions are put in sysarch.h.

* Removes the kern/sys_pmc.c file, and along with it, the sys_pmc_control
and sys_pmc_get_info syscalls. They are marked as OBSOL in kern,
netbsd32 and rump.

* Removes the pmc_evid_t and pmc_ctr_t types.

* Removes all the associated man pages. The sets are marked as obsolete.
 1.108 06-Jan-2018  kamil branches: 1.108.2; 1.108.4;
Revert vadvise(2) removal

This system call was used in legacy Lisp code, that was inherited to modern
age and still compiled against supported compat layers (e.g. in clisp,
oaklisp, Franz Lisp).

It used to instruct the kernel about paging policy (G/C aware, flush etc).

Newly compiled code (assuming that it will detect vadvise()) will use the
libc stub for vadvise(). The headers for this interface are gone.

vadvise(2) could be marked as COMPAT_80, but as long as we support ultrix,
sunos or aout68k ABI, don't bother with this.

Requested by <mrg>
 1.107 19-Dec-2017  kamil Drop SYS_vadvise

The (o)vadvise syscall is dummy since the beginning of NetBSD.

It is an obsolete remnant from the old UNIX.

Sponsored by <The NetBSD Foundation>
 1.106 08-Dec-2017  christos regen
XXX: pullup-8
 1.105 10-May-2017  riastradh regen
 1.104 13-Jan-2017  christos branches: 1.104.6;
regen
 1.103 02-Nov-2016  pgoyette Forgot these two generated files...
 1.102 03-Jul-2016  christos branches: 1.102.2;
regen
 1.101 06-May-2016  pooka regen syscall files
 1.100 23-Apr-2016  christos regen
 1.99 03-Apr-2016  christos regen
 1.98 03-Apr-2016  christos regen
 1.97 02-Apr-2016  christos regen
 1.96 26-Jan-2016  pooka regen syscall files
 1.95 03-Dec-2015  pgoyette Regen
 1.94 01-Dec-2015  pgoyette Regen
 1.93 30-Nov-2015  pgoyette Finish the regen - some of the files from sys/kern got committed
accidentally with the fix to makesyscalls.sh - sorry about that.
 1.92 30-Nov-2015  pgoyette Regen for 7.99.23
 1.91 10-Oct-2015  pgoyette Regen
 1.90 24-Sep-2015  christos regen
 1.89 24-Aug-2015  pooka regen
 1.88 18-Jun-2015  pooka regen
 1.87 13-May-2015  pgoyette Regenerate
 1.86 10-May-2015  pgoyette Regen for changes related to separation of compat_sysv syscalls into a
separate module.
 1.85 09-May-2015  pgoyette Regen again, this time without the extra word in the "generated from" line.
 1.84 09-May-2015  pgoyette Regen from syscalls.master
 1.83 08-Apr-2015  justin regen after syscall update
 1.82 07-Mar-2015  christos regen
 1.81 22-Feb-2015  christos PR/49684: Pierre Pronchery: readlinkat(2) return type is wrong.
 1.80 10-Feb-2015  christos regen
 1.79 25-Jul-2014  dholland branches: 1.79.2; 1.79.4;
Regen for fdiscard and posix_fallocate.
 1.78 24-Jul-2014  pooka regen
 1.77 23-Jul-2014  pooka regen
 1.76 12-Jun-2014  joerg Regenerate
 1.75 27-Apr-2014  pooka Eliminate weak symbols from rump kernel syscall handlers, part 5:

regen syscalls to eliminate weak aliases and link-time initialization
 1.74 09-Apr-2014  pooka regen
 1.73 14-Mar-2014  pooka branches: 1.73.2;
regen: time/timer related syscalls for rump kernels
 1.72 11-Dec-2013  pooka reregengen
 1.71 09-Dec-2013  pooka regen
 1.70 09-Dec-2013  pooka regen
 1.69 09-Dec-2013  pooka regen
 1.68 09-Dec-2013  pooka regen
 1.67 17-Oct-2013  njoly Regen for mknodat(2) device argument type change.
 1.66 10-Sep-2013  pooka regen
 1.65 03-Sep-2013  pooka regen
 1.64 30-Aug-2013  pooka regen
 1.63 15-Aug-2013  pooka regen
 1.62 29-Mar-2013  christos branches: 1.62.4;
regen
 1.61 02-Oct-2012  christos regen
 1.60 03-Aug-2012  pooka branches: 1.60.2;
reregen
 1.59 03-Aug-2012  pooka regen
 1.58 20-Jul-2012  pooka reregen
 1.57 20-Jul-2012  pooka regen
 1.56 08-Mar-2012  joerg Implement sem_timedwait.
 1.55 11-Feb-2012  martin branches: 1.55.2;
Regen for posix_spawn
 1.54 01-Feb-2012  dholland Regen syscalls with proper id info.
 1.53 01-Feb-2012  dholland Change the syscall API for quotas over to the new non-proplib one.

- struct vfs_quotactl_args -> struct quotactl_args
- add sys/stdint.h to sys/quotactl.h for clean userland build
- install sys/quotactl.h in /usr/include
- update set lists for same
- add new marshalling code in libquota
- add new unmarshalling code in vfs_syscalls.c
- discard proplib interpreter code in vfs_quotactl.c
- add dispatching code for the 14 quotactl ops in vfs_quotactl.c
- mark the proplib quotactl syscall obsolete
- add a new syscall number for the new quotactl syscall
- change the name of the syscall to __quotactl()
- remove the decl of the old quotactl from quota/quotaprop.h
- add a decl of the new quotactl to sys/quotactl.h
- update the libc build
- update ktruss
- remove proplib marshalling code from libquota
- update copy of syscall table in gdb ppc sources
- hack rumphijack to accomodate new quotactl name (as I recall,
pooka wanted such a name change to simplify something, but I
don't really see what/how)

This change appears to require a kernel version bump for rumpish
reasons.
 1.52 08-Aug-2011  manu branches: 1.52.2; 1.52.6;
regen
 1.51 18-Jul-2011  drochner regen after *setxattr constification
 1.50 26-Jun-2011  christos regen
 1.49 08-Mar-2011  pooka regen: include rumpclient syscall headers from source tree instead of host
 1.48 06-Mar-2011  bouyer merge the bouyer-quota2 branch. This adds a new on-disk format
to store disk quota usage and limits, integrated with ffs
metadata. Usage is checked by fsck_ffs (no more quotacheck)
and is covered by the WAPBL journal. Enabled with kernel
option QUOTA2 (added where QUOTA was enabled in kernel config files),
turned on with tunefs(8) on a per-filesystem
basis. mount_mfs(8) can also turn quotas on.

See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html
for details.
 1.47 22-Feb-2011  pooka omstart
 1.46 22-Feb-2011  pooka regenagain: make returning off_t work (without breaking other return
types on some archs)
 1.45 22-Feb-2011  pooka unregen
 1.44 22-Feb-2011  pooka regen: cast rval to return type instead of just using rval[0]
 1.43 21-Feb-2011  pooka regen: NOERR syscalls
 1.42 21-Feb-2011  pooka regen: preadv/pwritev
 1.41 21-Feb-2011  pooka regen: always explicitly set errno (fixes some apps)
 1.40 21-Feb-2011  pooka commit regen for int -> pid_t fix
 1.39 17-Jan-2011  pooka branches: 1.39.2;
regen: more compat syscalls
 1.38 17-Jan-2011  pooka regen: rework rump syscall stubs (see makesyscalls.sh log for details)
 1.37 10-Jan-2011  christos branches: 1.37.2;
regen
 1.36 30-Dec-2010  pooka regen for comments
 1.35 30-Dec-2010  pooka regen: SYCALL_NOSYS in rump_sysent[]
 1.34 17-Nov-2010  pooka regen: optimize local syscall path a bit
 1.33 11-Nov-2010  pooka +posix_fadvise
 1.32 04-Nov-2010  pooka Refactor the sysproxy code so that rumpuser contains only the server side.
 1.31 07-Sep-2010  pooka regen: getcwd
 1.30 06-Sep-2010  pooka regen: umask
 1.29 30-Aug-2010  pooka regen: rump syscalls for kern_prot interfaces
 1.28 30-Aug-2010  pooka Empty commit to show makesyscalls.sh rev 1.99 didn't change anything (yet).
 1.27 19-Jul-2010  pooka Regen syscalls to get compat header included.
 1.26 10-Jun-2010  pooka regen: ksem syscalls
 1.25 04-Jun-2010  njoly Regen for pathconf/fpathconf rumpification.
 1.24 17-May-2010  njoly Regen for multiple inclusion protection.
 1.23 11-May-2010  pooka regen: _RUMPKERNEL -> _KERNEL
 1.22 27-Apr-2010  pooka regen: rump_enosys -> sys_nomodule for modular system calls
 1.21 21-Apr-2010  pooka regen: get/setrlimit
 1.20 05-Mar-2010  pooka branches: 1.20.2;
regen (for lfs syscalls #ifdef removal).
 1.19 26-Nov-2009  pooka branches: 1.19.2;
regen for rump_sys_pipe()
 1.18 26-Nov-2009  pooka regen: retval -> retval[2]
 1.17 26-Nov-2009  pooka regen: rump_sys_modctl()
 1.16 13-Oct-2009  pooka regen: fix rump varargs syscalls prototypes
 1.15 21-Jul-2009  pooka regen: fh syscalls
 1.14 15-May-2009  pooka regen: removal of pad arguments from the public interfaces
 1.13 29-Mar-2009  pooka branches: 1.13.2;
regen
 1.12 28-Mar-2009  pooka regen: new syscalls
 1.11 19-Mar-2009  pooka regen: rump_sys_mount()
 1.10 18-Mar-2009  pooka regen: kevent and kqueue
 1.9 20-Feb-2009  pooka regen: make syscalls through a table
 1.8 26-Jan-2009  pooka branches: 1.8.2;
regen for new syscalls
 1.7 23-Jan-2009  pooka regen: int *error is dead.
 1.6 14-Jan-2009  pooka branches: 1.6.2; 1.6.4;
regen: internal prototype for rump_syscalls.c
 1.5 13-Jan-2009  pooka Regen. We now have compat __RENAME(). E.g. what was previously
rump_sys___stat50() is now rump_sys_stat() from the code.
 1.4 11-Jan-2009  tsutsui Regen to pull proper "created from" revision strings.
 1.3 11-Jan-2009  christos merge christos-time_t
 1.2 26-Nov-2008  pooka regen
 1.1 17-Nov-2008  pooka branches: 1.1.2;
regen
 1.1.2.5 29-Dec-2008  christos regen
 1.1.2.4 28-Dec-2008  christos regen
 1.1.2.3 27-Dec-2008  christos merge with head.
 1.1.2.2 20-Nov-2008  christos catch up with head.
 1.1.2.1 17-Nov-2008  christos file rump_syscalls.h was added on branch christos-time_t on 2008-11-20 22:21:56 +0000
 1.6.4.4 28-Apr-2009  skrll Sync with HEAD.
 1.6.4.3 03-Mar-2009  skrll Sync with HEAD.
 1.6.4.2 19-Jan-2009  skrll Sync with HEAD.
 1.6.4.1 14-Jan-2009  skrll file rump_syscalls.h was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.6.2.2 17-Jan-2009  mjf Sync with HEAD.
 1.6.2.1 14-Jan-2009  mjf file rump_syscalls.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.8.2.2 23-Jul-2009  jym Sync with HEAD.
 1.8.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.13.2.7 09-Oct-2010  yamt sync with head
 1.13.2.6 11-Aug-2010  yamt sync with head.
 1.13.2.5 11-Mar-2010  yamt sync with head
 1.13.2.4 19-Aug-2009  yamt sync with head.
 1.13.2.3 16-May-2009  yamt sync with head
 1.13.2.2 04-May-2009  yamt sync with head.
 1.13.2.1 29-Mar-2009  yamt file rump_syscalls.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:29 +0000
 1.19.2.3 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.19.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.19.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.20.2.4 21-Apr-2011  rmind sync with head
 1.20.2.3 05-Mar-2011  rmind sync with head
 1.20.2.2 03-Jul-2010  rmind sync with head
 1.20.2.1 30-May-2010  rmind sync with head
 1.37.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.39.2.2 05-Mar-2011  bouyer Sync with HEAD
 1.39.2.1 20-Jan-2011  bouyer Snapshot of work in progress on a modernised disk quota system:
- new quotactl syscall (versionned for backward compat), which takes
as parameter a path to a mount point, and a prop_dictionary
(in plistref format) describing commands and arguments.
For each command, status and data are returned as a prop_dictionary.
quota commands features will be added to take advantage of this,
exporting quota data or getting quota commands as plists.

- new on disk-format storage (all 64bit wide), integrated to metadata for
ffs (and playing nicely with wapbl).
Quotas are enabled on a ffs filesystem via superblock flags.
tunefs(8) can enable or disable quotas.
On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid
block and inode usages, and will check and update quotas in Pass 6.
quota usage and limits are stored in unliked files (one for users,
one for groups)l fsck_ffs(8) will create the files if needed, or
free them if needed. This means that after enabling or disabling
quotas on a filesystem; a fsck_ffs(8) run is required.
quotacheck(8) is not needed any more, on a unclean shutdown
fsck or journal replay will take care of fixing quotas.
newfs(8) can create a ready-to-mount quota-enabled filesystem
(superblock flags are set and quota inodes are created).
Other new features or semantic changes:
- default quota datas, applied to users or groups which don't already
have a quota entry
- per-user/group grace time (instead of a filesystem global one)
- 0 really means "nothing allowed at all", not "no limit".
If you want "no limit", set the limit to UQUAD_MAX (tools will
understand "unlimited" and "-")

A quota file is structured as follow:
it starts with a header, containing a few per-filesystem values,
and the default quota limits.
Quota entries are linked together as a simple list, each entry has a
pointer (as an offset withing the file) to the next.
The header has a pointer to a list of free quota entries, and
a hash table of in-use entries. The size of the hash table depends
on the filesystem block size (header+hash table should fit in the
first block). The file is not sparse and is a multiple of
filesystem block size (when the free quota entry list is empty a new
filesystem block is allocated). quota entries to not cross
filesystem block boundaries.

In memory, the kernel keeps a cache of recently used quota entries
as a reference to the block number, and offset withing the block.
The quota entry itself is keept in the buf cache.

fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with
related atf tests :)
The kernel can update disk usage and report it via quotactl(2).

Todo: enforce quotas limits (limits are not checked by kernel yet)
update repquota, edquota and rpc.rquotad to the new world
implement compat_50_quotactl ioctl.
update quotactl(2) man page

fsck_ffs required fixes so that allocating new blocks or inodes will
properly update the superblock and cg sumaries. This was not an issue up
to now because superblock and cg sumaries check happened last, but now
allocations or frees can happen in pass 6.
 1.52.6.2 11-Mar-2012  mrg sync to latest -current
 1.52.6.1 18-Feb-2012  mrg merge to -current.
 1.52.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.52.2.2 30-Oct-2012  yamt sync with head
 1.52.2.1 17-Apr-2012  yamt sync with head
 1.55.2.1 14-Apr-2015  msaitoh Pull up following revision(s) (requested by khorben in ticket #1264):

include/unistd.h 1.144
sys/kern/init_sysent.c regen
sys/kern/syscalls.c regen
sys/kern/syscalls.master 1.272
sys/rump/include/rump/rump_syscalls.h regen
sys/rump/librump/rumpkern/rump_syscalls.c regen
sys/sys/syscall.h regen
sys/sys/syscallargs.h regen
sys/compat/netbds32/netbsd32_syscall.h regen
sys/compat/netbds32/netbsd32_syscallargs.h regen
sys/compat/netbds32/netbsd32_syscalls.c regen
sys/compat/netbds32/netbsd32_sysent.c regen
sys/compat/netbsd32/syscalls.master 1.102

Fix return type of the readlinkat(2) syscall. PR#49684.
 1.60.2.4 03-Dec-2017  jdolecek update from HEAD
 1.60.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.60.2.2 23-Jun-2013  tls resync from head
 1.60.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.62.4.2 18-May-2014  rmind sync with head
 1.62.4.1 28-Aug-2013  rmind sync with head
 1.73.2.1 10-Aug-2014  tls Rebase.
 1.79.4.9 05-Dec-2016  skrll Sync with HEAD
 1.79.4.8 09-Jul-2016  skrll Sync with HEAD
 1.79.4.7 29-May-2016  skrll Sync with HEAD
 1.79.4.6 22-Apr-2016  skrll Sync with HEAD
 1.79.4.5 19-Mar-2016  skrll Sync with HEAD
 1.79.4.4 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.79.4.3 22-Sep-2015  skrll Sync with HEAD
 1.79.4.2 06-Jun-2015  skrll Sync with HEAD
 1.79.4.1 06-Apr-2015  skrll Sync with HEAD
 1.79.2.1 24-Feb-2015  martin regen
 1.102.2.2 20-Mar-2017  pgoyette Sync with HEAD
 1.102.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.104.6.1 11-May-2017  pgoyette Sync with HEAD
 1.108.4.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.108.4.1 10-Jun-2019  christos Sync with HEAD
 1.108.2.9 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.108.2.8 28-Jul-2018  pgoyette Sync with HEAD
 1.108.2.7 18-Apr-2018  pgoyette Regen
 1.108.2.6 27-Mar-2018  pgoyette Regen
 1.108.2.5 25-Mar-2018  pgoyette Regen
 1.108.2.4 17-Mar-2018  pgoyette Regen
 1.108.2.3 16-Mar-2018  pgoyette Regen
 1.108.2.2 15-Mar-2018  pgoyette Regen
 1.108.2.1 10-Mar-2018  pgoyette Regen
 1.112.2.1 25-Jan-2020  ad Sync with head.
 1.114.2.1 25-Apr-2020  bouyer Sync with bouyer-xenpvh-base2 (HEAD)
 1.123.2.3 14-Dec-2020  thorpej Regen for timerfd.
 1.123.2.2 14-Dec-2020  thorpej Regen for eventfd(2).
 1.123.2.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.130.2.1 02-Aug-2025  perseant Sync with HEAD
 1.13 15-Aug-2013  pooka Explicitly produce an error if the mythical kernel folk try to include
this header.
 1.12 15-Aug-2013  pooka Give includers a way to say "yea I'll just deal with the type
compat on my own, thank you very many"
 1.11 15-Aug-2013  pooka type compat header list doesn't need to be autogenerated
 1.10 17-Jan-2013  pooka branches: 1.10.2;
Helps ELF platforms if I spell __ELF__ correctly ...
 1.9 17-Jan-2013  pooka For non-NetBSD, assume leading underscore with !__ELF__ (fixes PE-COFF)
 1.8 20-Jul-2012  pooka branches: 1.8.2;
add simple compat for other OSs to be able to use rump_syscalls.h
 1.7 17-Jan-2011  pooka branches: 1.7.4; 1.7.8;
Missed pselect50 in previous (file was open in editor ... d0h).
Add mknod50 and fhstat50 too.
 1.6 17-Jan-2011  pooka use newstyle rump syscall compat
 1.5 04-Jan-2011  pooka branches: 1.5.2;
Add NetBSD 5 compat wrapping for *utimes()
 1.4 30-Aug-2010  pooka do 5.0 compat for fstat
 1.3 26-Jul-2010  pooka branches: 1.3.2; 1.3.4;
Add select to list on compat syscalls. Makes some code work for
me with a nb5 userland without having to compile with -g ;)
 1.2 19-Jul-2010  pooka Add some forward declarations used by the interfaces.
 1.1 19-Jul-2010  pooka add rump_syscalls_compat.h
 1.3.4.3 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.3.4.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.3.4.1 26-Jul-2010  uebayasi file rump_syscalls_compat.h was added on branch uebayasi-xip on 2010-08-17 06:47:58 +0000
 1.3.2.3 09-Oct-2010  yamt sync with head
 1.3.2.2 11-Aug-2010  yamt sync with head.
 1.3.2.1 26-Jul-2010  yamt file rump_syscalls_compat.h was added on branch yamt-nfs-mp on 2010-08-11 22:55:05 +0000
 1.5.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.7.8.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.8.2 23-Jan-2013  yamt sync with head
 1.7.8.1 30-Oct-2012  yamt sync with head
 1.7.4.2 05-Mar-2011  rmind sync with head
 1.7.4.1 17-Jan-2011  rmind file rump_syscalls_compat.h was added on branch rmind-uvmplock on 2011-03-05 20:56:12 +0000
 1.8.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.2.1 25-Feb-2013  tls resync with head
 1.10.2.1 28-Aug-2013  rmind sync with head
 1.1 31-Jan-2016  pooka branches: 1.1.2; 1.1.18;
Move "shotgun approach to rump syscalls" from rump.h to a separate header,
sort of as a hint that relying on those macros is not necessarily the
way you want to do things in 2016. Include things from rump.h for compat
for the time being, though.
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 31-Jan-2016  jdolecek file rump_syscallshotgun.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 19-Mar-2016  skrll Sync with HEAD
 1.1.2.1 31-Jan-2016  skrll file rump_syscallshotgun.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.38 21-Aug-2018  christos regen
 1.37 27-May-2017  bouyer branches: 1.37.8; 1.37.10;
merge the bouyer-socketcan branch to HEAD.

CAN stands for Controller Area Network, a broadcast network used
in automation and automotive fields. For example, the NMEA2000 standard
developped for marine devices uses a CAN network as the link layer.

This is an implementation of the linux socketcan API:
https://www.kernel.org/doc/Documentation/networking/can.txt
you can also see can(4).

This adds a new socket family (AF_CAN) and protocol (PF_CAN),
as well as the canconfig(8) utility, used to set timing parameter of
CAN hardware. Also inclued is a driver for the CAN controller
found in the allwinner A20 SoC (I tested it with an Olimex lime2 board,
connected with PIC18-based CAN devices).

There is also the canloop(4) pseudo-device, which allows to use
the socketcan API without CAN hardware.

At this time the CANFD part of the linux socketcan API is not implemented.
Error frames are not implemented either. But I could get the cansend and
canreceive utilities from the canutils package to build and run with minimal
changes. tcpudmp(8) can also be used to record frames, which can be
decoded with etherreal.
 1.36 02-Feb-2016  pooka branches: 1.36.4;
regen
 1.35 02-Feb-2016  pooka periodic regen (because having new rcs ids in comments is most useful)
 1.34 07-Jan-2016  pooka regen
 1.33 15-Sep-2015  pooka regen
 1.32 10-Sep-2015  pooka regen
 1.31 10-Sep-2015  pooka regen
 1.30 18-Dec-2013  pooka branches: 1.30.6;
regen
 1.29 11-Dec-2013  pooka regen
 1.28 09-Dec-2013  pooka regen
 1.27 13-Nov-2013  pooka regen
 1.26 15-Aug-2013  pooka regen
 1.25 15-Aug-2013  pooka regen
 1.24 15-Aug-2013  pooka revert pending fix: MAXNAMLEN causes trouble
 1.23 15-Aug-2013  pooka regen
 1.22 25-Jun-2013  stacktic branches: 1.22.2;
regen
 1.21 01-Jun-2013  stacktic regen
 1.20 08-May-2013  pooka regen
 1.19 08-May-2013  pooka regen
 1.18 30-Apr-2013  pooka Translate error codes between the hypervisor and rump kernel.
 1.17 13-Dec-2012  pooka regen
 1.16 21-Nov-2012  pooka regen
 1.15 18-Nov-2012  pooka regen
 1.14 18-Nov-2012  pooka regen
 1.13 18-Nov-2012  pooka regen
 1.12 18-Nov-2012  pooka regen
 1.11 20-Jul-2012  pooka branches: 1.11.2;
regen
 1.10 01-Feb-2011  pooka branches: 1.10.4;
regen for O_DIRECTORY
 1.9 28-Jul-2010  hannken branches: 1.9.2; 1.9.4;
Regen. LK_INTERLOCK is gone.
 1.8 02-Jul-2010  hannken Regen. LK_TYPEMASK and LK_RELEASE are gone.
 1.7 24-Jun-2010  hannken Regen. LK_EXCLOTHER has gone.
 1.6 18-Jun-2010  hannken Regen (LK_CANRECURSE is gone).
 1.5 03-Nov-2009  pooka branches: 1.5.2; 1.5.4;
regen: add AB_* macros
 1.4 09-Oct-2009  pooka regen
 1.3 17-Nov-2008  pooka branches: 1.3.4; 1.3.6; 1.3.10;
regen
 1.2 17-Nov-2008  pooka regen
 1.1 17-Nov-2008  pooka regen
 1.3.10.4 11-Aug-2010  yamt sync with head.
 1.3.10.3 11-Mar-2010  yamt sync with head
 1.3.10.2 04-May-2009  yamt sync with head.
 1.3.10.1 17-Nov-2008  yamt file rumpdefs.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:29 +0000
 1.3.6.2 19-Jan-2009  skrll Sync with HEAD.
 1.3.6.1 17-Nov-2008  skrll file rumpdefs.h was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.3.4.2 17-Jan-2009  mjf Sync with HEAD.
 1.3.4.1 17-Nov-2008  mjf file rumpdefs.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.5.4.2 05-Mar-2011  rmind sync with head
 1.5.4.1 03-Jul-2010  rmind sync with head
 1.5.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.9.4.1 08-Feb-2011  bouyer Sync with HEAD
 1.9.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.10.4.4 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.10.4.3 23-Jan-2013  yamt sync with head
 1.10.4.2 16-Jan-2013  yamt sync with (a bit old) head
 1.10.4.1 30-Oct-2012  yamt sync with head
 1.11.2.5 03-Dec-2017  jdolecek update from HEAD
 1.11.2.4 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.2.3 23-Jun-2013  tls resync from head
 1.11.2.2 25-Feb-2013  tls resync with head
 1.11.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.22.2.2 18-May-2014  rmind sync with head
 1.22.2.1 28-Aug-2013  rmind sync with head
 1.30.6.3 28-Aug-2017  skrll Sync with HEAD
 1.30.6.2 19-Mar-2016  skrll Sync with HEAD
 1.30.6.1 22-Sep-2015  skrll Sync with HEAD
 1.36.4.1 15-Jan-2017  bouyer Initial commit of a CAN socket layer, compatible with linux SoccketCAN
(but incomplete). Based on work from Robert Swindells.
 1.37.10.1 10-Jun-2019  christos Sync with HEAD
 1.37.8.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.8 21-Aug-2018  christos regen
 1.7 19-Apr-2018  christos branches: 1.7.2;
s/static inline/static __inline/g for consistency.
 1.6 02-Feb-2016  pooka branches: 1.6.16;
regen
 1.5 02-Feb-2016  pooka periodic regen (because having new rcs ids in comments is most useful)
 1.4 15-Sep-2015  pooka regen
 1.3 10-Sep-2015  pooka regen
 1.2 10-Sep-2015  pooka regen
 1.1 18-Dec-2013  pooka branches: 1.1.4; 1.1.6; 1.1.10; 1.1.12;
regen
 1.1.12.1 22-Sep-2015  skrll Sync with HEAD
 1.1.10.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.10.1 18-Dec-2013  tls file rumperr.h was added on branch tls-maxphys on 2014-08-20 00:04:39 +0000
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 18-Dec-2013  yamt file rumperr.h was added on branch yamt-pagecache on 2014-05-22 11:41:14 +0000
 1.1.4.2 18-May-2014  rmind sync with head
 1.1.4.1 18-Dec-2013  rmind file rumperr.h was added on branch rmind-smpnet on 2014-05-18 17:46:17 +0000
 1.6.16.2 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.6.16.1 22-Apr-2018  pgoyette Sync with HEAD
 1.7.2.1 10-Jun-2019  christos Sync with HEAD
 1.5 21-Aug-2018  christos regen
 1.4 19-Apr-2018  christos branches: 1.4.2;
s/static inline/static __inline/g for consistency.
 1.3 02-Feb-2016  pooka branches: 1.3.16; 1.3.18;
regen
 1.2 02-Feb-2016  pooka periodic regen (because having new rcs ids in comments is most useful)
 1.1 15-Sep-2015  pooka branches: 1.1.2;
regen
 1.1.2.2 22-Sep-2015  skrll Sync with HEAD
 1.1.2.1 15-Sep-2015  skrll file rumperrno2host.h was added on branch nick-nhusb on 2015-09-22 12:06:15 +0000
 1.3.18.2 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.3.18.1 22-Apr-2018  pgoyette Sync with HEAD
 1.3.16.2 03-Dec-2017  jdolecek update from HEAD
 1.3.16.1 02-Feb-2016  jdolecek file rumperrno2host.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.4.2.1 10-Jun-2019  christos Sync with HEAD
 1.1 02-Feb-2016  pooka branches: 1.1.2; 1.1.18;
Add capability to attach external memory to files on rumpfs. This
feature is useful e.g. for tight-memory systems where you don't need
block storage, but still need to provide some data via files.
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 02-Feb-2016  jdolecek file rumpfs.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 19-Mar-2016  skrll Sync with HEAD
 1.1.2.1 02-Feb-2016  skrll file rumpfs.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.18 26-Jan-2016  pooka regen rump kernel interfaces for header change.
(they were already manually edited for a prior commit, so not much change)
 1.17 25-Apr-2014  pooka branches: 1.17.4;
regen
 1.16 25-Apr-2014  pooka regen for etfs move from rumpvfs to rumpkern
 1.15 10-Mar-2014  pooka branches: 1.15.2;
rump_getversion() does not require a thread context, so make it a straight
call instead of being wrapped around rump_pub_getversion().
 1.14 07-Mar-2013  pooka branches: 1.14.6;
regen
 1.13 02-Jan-2011  pooka branches: 1.13.8; 1.13.18;
regen: rump_lwproc_rfork
 1.12 21-Nov-2010  pooka regen: rump_reboot is gone
 1.11 17-Nov-2010  pooka regen: -rump_pub_syscall
 1.10 27-Oct-2010  pooka regen:
- rump_sysproxy
+ rump_syscall
 1.9 01-Sep-2010  pooka regen: new lwp/proc interfaces
 1.8 19-Jul-2010  pooka regen from ages ago (to get rcsid consistent)
 1.7 14-Apr-2010  pooka regen: kauth_cred_t -> struct kauth_cred *
 1.6 05-Mar-2010  pooka branches: 1.6.2; 1.6.4;
regen for rump_module interface change
 1.5 26-Nov-2009  pooka branches: 1.5.2;
regen: rump_kernelfsym_load()
 1.4 15-Oct-2009  pooka regen: lwp interface changes
 1.3 15-Oct-2009  pooka regen: scheduling points in rump_pub wrappers
 1.2 14-Oct-2009  pooka regen: put all public interfaces created by ifspec into a rump_pub namespace
 1.1 14-Oct-2009  pooka generate rump local interfaces
 1.5.2.4 06-Nov-2010  uebayasi Sync with HEAD.
 1.5.2.3 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.5.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.5.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.6.4.2 05-Mar-2011  rmind sync with head
 1.6.4.1 30-May-2010  rmind sync with head
 1.6.2.4 09-Oct-2010  yamt sync with head
 1.6.2.3 11-Aug-2010  yamt sync with head.
 1.6.2.2 11-Mar-2010  yamt sync with head
 1.6.2.1 05-Mar-2010  yamt file rumpkern_if_pub.h was added on branch yamt-nfs-mp on 2010-03-11 15:04:37 +0000
 1.13.18.3 03-Dec-2017  jdolecek update from HEAD
 1.13.18.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.13.18.1 23-Jun-2013  tls resync from head
 1.13.8.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.14.6.1 18-May-2014  rmind sync with head
 1.15.2.1 10-Aug-2014  tls Rebase.
 1.17.4.1 19-Mar-2016  skrll Sync with HEAD
 1.6 26-Jan-2016  pooka regen rump kernel interfaces for header change.
(they were already manually edited for a prior commit, so not much change)
 1.5 03-Jul-2013  pooka branches: 1.5.8;
regen
 1.4 20-Oct-2009  pooka branches: 1.4.4; 1.4.14; 1.4.24; 1.4.28;
regen
 1.3 15-Oct-2009  pooka regen: scheduling points in rump_pub wrappers
 1.2 14-Oct-2009  pooka regen: put all public interfaces created by ifspec into a rump_pub namespace
 1.1 14-Oct-2009  pooka generate rump local interfaces
 1.4.28.1 28-Aug-2013  rmind sync with head
 1.4.24.2 03-Dec-2017  jdolecek update from HEAD
 1.4.24.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.14.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.4.2 11-Mar-2010  yamt sync with head
 1.4.4.1 20-Oct-2009  yamt file rumpnet_if_pub.h was added on branch yamt-nfs-mp on 2010-03-11 15:04:37 +0000
 1.5.8.1 19-Mar-2016  skrll Sync with HEAD
 1.117 24-Sep-2023  martin PR kern/57626: instead of an (arbitrary) FAKE_PAGE_SHIFT (and always
using 4k pages), query the hypervisor for the real page size of the host
kernel and use that for architectures that do not have compile time
constant page sizes.
 1.116 22-Mar-2020  pgoyette Teach rump to process __link_set_evcnts entries. (Second part of
fix for PR kern/55088)
 1.115 27-Dec-2017  ozaki-r branches: 1.115.4;
Distinguish spin mutex and adaptive mutex on rump kernels for LOCKDEBUG

Formerly rump kernels treated the two types of mutexes as both adaptive for
LOCKDEBUG for some reasons.

Now we can detect violations of mutex restrictions on rump kernels such as
taking an adaptive mutex with holding a spin mutex as well as normal kernels.
 1.114 03-Jan-2015  pooka branches: 1.114.10;
limit visibility of sysproxy calls to where they are needed
 1.113 18-Jun-2014  alnsn branches: 1.113.4;
Revert last change. This is not the right place for rumpuser_sync_icache().
 1.112 17-Jun-2014  alnsn Implement rumpuser_sync_icache hypercall.
 1.111 27-Apr-2014  pooka weak alias removal implication: rumpuser_dl_globalsym() can now sleep
with the fishes.
 1.110 16-Mar-2014  pooka branches: 1.110.2;
remove unnecesary verbosity: s/RUMP_CURLWP_MODEL/RUMP_CURLWP/
 1.109 15-Mar-2014  pooka Allow compile-time optimizations to curlwp. This can have a pretty
staggering impact on performance. When running sendto() in a loop,
the improvement is 200k more calls per second with an inlined __thread
curlwp as opposed to the default. In other words, it shaves off hundreds
of CPU cycles per call (~20%). Even just eliminating the x86_curlwp()
call in favor of an inline gives an improvement of 60k calls per second.
 1.108 15-May-2013  pooka branches: 1.108.2;
Looks like I'm done revamping, so bump interface version to 17,
where it will hopefully stay for all eternity (unless some snafus
are discovered before NetBSD 7).
 1.107 15-May-2013  pooka Add a generalized rumpuser_syncfd() call which allows the caller
to request a sync or a barrier for fd.
 1.106 15-May-2013  pooka Pass off_t over the hypercall interface as int64_t to avoid potential
problems in setups where off_t doesn't want to be 64bit.

I'm already excitedly waiting for 128bit off_t and _LARGE_LARGE_FILES
 1.105 15-May-2013  pooka Pass enums over the hypercall interface as ints to avoid some
pathological scenarios from arising in setups where enums might be
of a different size in the rump kernel and hypervisor.
 1.104 15-May-2013  pooka Add RUMPUSER_LWP_CLEAR instead of overloading RUMPUSER_LWP_SET.
This simplifies some alternative hypervisor implementations.
 1.103 02-May-2013  pooka Ok, maybe using int64 for nanoseconds in the (sec,nsec) tuple was
a bit too future-proof. I think long is enough there (let's just
hope nobody redefines "nano"). Also, make seconds signed just in
case someone wants their clock to be in 1901.
 1.102 02-May-2013  pooka Push rwlock upgrade and downgrade into the hypervisor where there's
at least a chance to implement them with minimal fuss.
 1.101 02-May-2013  pooka Inform the rump kernel hypervisor of valid thread contexts so
that the implementation can allocate and release storage for them
in an optimal fashion, if necessary.
 1.100 30-Apr-2013  pooka Flip parameter order in the clock hypercalls to make them consistent
with everything else wrt in/out parameters.
 1.99 30-Apr-2013  pooka In kthread_create(), pass the priority and cpu index down to the
rump kernel hypervisor (though the current implementation doesn't take
advantage of them).
 1.98 30-Apr-2013  pooka Make hypercall calling conventions consistent: iff a hypercall can fail,
it returns an int containing the error value.
 1.97 29-Apr-2013  pooka Reduce hypercalls related to reading to essentially an amalgamation
of readv and preadv. ditto for writing. Hypercalls are so seldomly
used that it doesn't justify 3x the calls for syntactic sugar.
 1.96 29-Apr-2013  pooka remove accidentally committed bit
 1.95 29-Apr-2013  pooka Replace the various "get info from hypervisor" interfaces with one
unified rumpuser_getparam(), and make it return a plist. The
contents can come e.g. from the env or a config file. Make
identifiers starting with an underscore denote system identifiers
which must be implemented by hypervisor. (yea, j/k about the plist bit)
 1.94 29-Apr-2013  pooka The fsync hypercall is now used only with close, so get rid of it.
rumpuser_bio() should do the necessary syncing.
 1.93 29-Apr-2013  pooka Make the rump kernel upcalls which were previous available only to
the sysproxy module available for the entire hypervisor.
 1.92 29-Apr-2013  pooka regroup calls a bit and sprinkle comments
no functional change for a change
 1.91 29-Apr-2013  pooka RUMPUSER_OPEN_DIRECT is no longer necessary
 1.90 29-Apr-2013  pooka changes to bio hypercalls, part 3/n:

retire the filemmap/memsync hypercalls, they're no longer used
 1.89 29-Apr-2013  pooka Rework how the bio hypercalls work, part 1/n:

Reduce the set of hypercalls to one: "do block i/o". This not only
eliminates a lot of pseudo-duplicate code, it also gives the
hypervisor a lot more freedom on how to optimize the i/o.
 1.88 28-Apr-2013  pooka Improve the time-related hypercalls so that's it's possible to
sleep until an absolute time on the host's monotonic clock (should
something like that be supported).
 1.87 28-Apr-2013  pooka make the file monitoring hypercalls private to shmif
 1.86 28-Apr-2013  pooka The ioctl hypercall is used only by the usb host controller driver,
so make it exclusive to that component. I'm happy to see it gone.
 1.85 27-Apr-2013  pooka make the random hypercall more generic
 1.84 27-Apr-2013  pooka roll mutex init hypercalls into one (one of them already took a flag anyway)
 1.83 27-Apr-2013  pooka move struct lwp forward decl before its first use. otherwise it's rather
pointless. some whitespace landscaping too.
 1.82 27-Apr-2013  pooka wrap unportable register_t with a long. should do it in the front
of the house too, but at least this is a start.
 1.81 27-Apr-2013  pooka * treat kern_malloc.c as an unreal allocator (it's so lightweight)
* get rid of the rumpuser_realloc() hypercall
* pass size to rumpuser_free()
 1.80 27-Apr-2013  pooka Let the includer figure out where to get stdint or equivalent from.
 1.79 27-Apr-2013  pooka rumpuser_poll() is used only by sockin, so make the hypercall
private to that component.
 1.78 27-Apr-2013  pooka * integrate rumpuser_getversion() with the hypervisor initialization
* rename some identifiers to better match reality
 1.77 27-Apr-2013  pooka remove prototypes for interfaces no longer provided
 1.76 27-Apr-2013  pooka Try to make sure that the appropriate calls to mutex_enter() takes
a spin mutex (i.e. does not relinquish cpu context while trying to
take the mutex).

Bump the hypercall interface version number. I'll be doing a bunch
of other cleanups to simplify the interface for the benefit of
alternative hypervisor implementations. I'll be riding this bump
and doing a second one only after I'm finished with all of the
changes.
 1.75 08-Mar-2013  pooka Ensure that rump kernel component constructors from the main object
get processed. This applies to ones which were linked statically.
Unfortunately, that's where it got a bit tricky, since the dlsym()
interface searches the handle and all its dependencies. For the main
object the list of dependencies includes all the dynamic rump kernel
components that were included when the binary is linked. So, a long
story short, make only one pass through the objects to harvest all the
component entries, weed out the dupes, and initialize components from
an in-memory dupe-free list when so requested.
 1.74 01-Mar-2013  pooka limit use of rumpuser.h to where it is meant to be used from
 1.73 14-Sep-2012  pooka Do not assume that O_FOO flags have matching values in the rump kernel
and hypervisor.
 1.72 15-Mar-2012  joerg branches: 1.72.2;
Add __printflike attribution to use vprintf and friends with an argument
as format string.
 1.71 28-Nov-2011  tls branches: 1.71.2;
Remove arc4random() and arc4randbytes() from the kernel API. Replace
arc4random() hacks in rump with stubs that call the host arc4random() to
get numbers that are hopefully actually random (arc4random() keyed with
stack junk is not). This should fix some of the currently failing anita
tests -- we should no longer generate duplicate "random" MAC addresses in
the test environment.
 1.70 29-Aug-2011  joerg branches: 1.70.2;
Use __dead
 1.69 23-May-2011  joerg Mark rumpuser_exit and rumpuser_thread_exit as dead.
 1.68 21-Mar-2011  pooka Update copyright statements.

no functional change.
 1.67 08-Mar-2011  pooka Nuke all threads belonging to a process calling exec before allowing
the exec handshake to return.

In addition to being The Right Thing To Do, fixes some nasty
conditions for CLOEXEC fd's (or at least does so in theory, I
couldn't create any problems although I tried).
 1.66 15-Feb-2011  pooka Add an "exec" callback for the proxy code. The client can now
notify the rump kernel of an exec having taken place.
 1.65 28-Jan-2011  pooka Pass the value of getprogname() from the client to the server and
record it in p_comm. This is nice for things like sockstat, since
they now display the client command name:

pain-rustique:43:~> rump.sockstat
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root xulrunner- 16 0 tcp 192.168.2.114.65507 204.152.190.12.80
root xulrunner- 16 1 tcp 192.168.2.114.65501 204.152.190.12.80
root xulrunner- 16 2 tcp 192.168.2.114.65500 204.152.190.12.80
root xulrunner- 16 3 tcp 192.168.2.114.65499 204.152.190.12.80
root xulrunner- 16 5 tcp 192.168.2.114.65498 204.152.190.12.80
root xulrunner- 16 6 tcp 192.168.2.114.65497 204.152.190.12.80
root socket 62 0 tcp6 *.http *.*
root socket 62 1 tcp *.http *.*
root socket 63 0 tcp6 *.81 *.*
root socket 63 1 tcp *.81 *.*
 1.64 22-Jan-2011  pooka In case sys_reboot() was called by a remote client, put the response
in the socket before we shut down. This way the response to the
syscall travels to the caller and they know things worked correctly
instead of having to just assume.
 1.63 14-Jan-2011  pooka branches: 1.63.2; 1.63.4;
Support SIGMODEL_RAISE for non-local clients.
 1.62 12-Jan-2011  pooka add spop_procexit
 1.61 02-Jan-2011  pooka There is a use case where preserving the parent's fd table is
relevant, so to accommodate that change rump_lwproc_newproc() to
rump_lwproc_rfork(). The new interface has the rfork() fd table
semantics. The equivalent of rump_lwproc_newproc() is
rump_lwproc_rfork(RUMP_RFCFDG).
 1.60 30-Dec-2010  pooka Allow rump kernel to call dlsym(RTLD_DEFAULT).
 1.59 16-Dec-2010  pooka Print a banner a connecting client. The banner contains rump sp
protocol version, os name, os revision and machine.
 1.58 12-Dec-2010  pooka add rumpuser_sp_fini, which surpringly is the opposite of rumpuser_sp_init
 1.57 01-Dec-2010  pooka implement mutex_owner()
 1.56 01-Dec-2010  pooka rumpuser interface changed
 1.55 01-Dec-2010  pooka Track lwp as the rumpuser mutex owner instead of pthread_t (this
is done in rumpuser for simplicity, since on the kernel side things
we assume we have only one pointer of space). As a side-effect,
we can no longer know if the current thread is holding on to a
mutex locked without curlwp context (basically all mutexes inited
outside of mutex_init()). The only thing that called rumpuser_mutex_held()
for a non-kmutex was the giant lock. So, instead implement recursive
locking for the giant lock in the rump kernel and get rid of the
now-unused recursive pthread mutex in the hypercall interface.
 1.54 30-Nov-2010  pooka Require server to be explicitly initialized with rump_init_server(url).
Also, add rump_daemonize_begin() / rump_daemonize_end() to help
with the "can't daemon() after pthread_create()" problem. Applications
could accomplish the same, but since it's such a common operation,
provide a little help.
 1.53 25-Nov-2010  pooka *facepalm*, adjust remote copyinstr to work in cases where the end
of the max copyin extends to an unmapped page.

Noticed, as usual, by tests.
 1.52 22-Nov-2010  pooka Support physio for remote processes.
==> add support for remote vmspace vmapbuf/vunmapbuf
==> add proper support for copyin/out_vmspace
==> add support for remote vmspace uvm_io
==> add support for non-curproc rumpuser_sp_copyin/out
==> store remote context in vm_map->pmap instead of
pthread_specificdata

In short, makes read/write of most (all?) block devices work from
a remote rump client via rump syscalls.
 1.51 19-Nov-2010  pooka Pass routines necessary for multithreaded operation down to rumpuser_sp.
 1.50 04-Nov-2010  pooka bump rumpuser version
 1.49 04-Nov-2010  pooka Refactor the sysproxy code so that rumpuser contains only the server side.
 1.48 01-Nov-2010  pooka Missed a few symbols in previous ...

Also, reorganize rumpuser header inclusion to make sure problem is
caught already by the compiler.
 1.47 01-Nov-2010  pooka Make librumpuser linkage once again free of librump.

problem pointed out by <he>
 1.46 27-Oct-2010  pooka Start rework of system call proxying over socket ("sysproxy").
This incarnation is written in the user namespace as opposed to
the previous one which was done in kernel namespace. Also, rump
does all the handshaking now instead of excepting an application
to come up with the user namespace socket.

There's still a lot to do, including making code "a bit" more
robust, actually running different clients in a different process
inside the kernel and splitting the client side library from librump.
I'm committing this now so that I don't lose it, plus it generally
works as long as you don't use it in unexcepted ways: i've tested
ifconfig(8), route(8), envstat(8) and sysctl(8).
 1.45 09-Jun-2010  pooka Version rumpuser ABI with a lightweight mechanism.
 1.44 09-Jun-2010  pooka Add the ability to specify a preferred address the "map anon memory"
hypercall.
 1.43 01-Jun-2010  pooka Don't pass "canfail" down to rumpuser_malloc -- there's quite little
we can do with that info way down there. Instead, pass alignment.
Implement rumpuser_malloc() with posix_memalign().
 1.42 31-May-2010  pooka Support KTHREAD_JOINABLE/kthread_join(). Also fixes earlier bug
where all pthreads were created non-detached.
 1.41 18-May-2010  pooka Make it possible to use the scheduler lock as the rumpuser condvar
interlock. This is applicable in cases where the actual interlock
is the CPU the currently running thread is scheduled on. Borrowing
the scheduler lock as the mutex mandated by pthread_cond_wait()
does away with need to have an additional mutex. This both optimizes
runtime execution and simplifies code, as the extra lock typically
lead to quite some trickeries to avoid the dungeon collapsing due
to zaps from the wand of deadlock.
 1.40 28-Apr-2010  pooka Add rumpuser interface to fetch number of host cpus.
 1.39 21-Apr-2010  pooka Add rumpuser_kill, which sends a signal to a host process.
 1.38 05-Mar-2010  pooka branches: 1.38.2;
During bootstrap, process all modinfos in a DSO in one go. Get
rid of dependency tricks, since they are no longer necessary.
 1.37 01-Mar-2010  pooka Introduce RUMP_COMPONENT. It behaves mostly like a simplified
module which is linked into the kernel and cannot be unloaded.
The main purpose is to get the proper constructors run and create
any /dev nodes necessary for said component. Once more of the
kernel (e.g. networking stack and device drivers) are converted to
MODULE and devfs pops up from somewhere, rump components can be
retired.
 1.36 26-Feb-2010  pooka Rename rumpuser_dl_module_bootstrap() to rumpuser_dl_bootstrap(),
since it hasn't been involved only with modules for quite a while now.
 1.35 23-Dec-2009  stacktic branches: 1.35.2;
Fixed ukfs build on non-NetBSD system.
 1.34 26-Nov-2009  pooka Build the kernel symbol table in rumpuser bootstrap and feed it to
the rump kernel. After this change it is possible to use the
in-kernel linker and rump_sys_modctl() to load kernel modules at
runtime.

Previously loading modules at runtime was possible only through
using the host system ld.so. Note that it is still preferred to
use shared libs when possible, since they are PIC and n virtual
kernels will only require one copy of r/o segments. However, when
there is no access to source code, a binary kernel module is the
only thing available ...
 1.33 19-Nov-2009  pooka Create async i/o "interrupt" thread from within the kernel so that
it gets a kernel thread context.
 1.32 11-Nov-2009  pooka Make rumpuser_cv_timedwait take two int64's instead timespec to
uncouple it from the timespec layout. Also, change return value
to zero for "timeout didn't expire" and non-zero for "timeout
expired". This decouples the interface from errno assignments.
 1.31 24-Oct-2009  pooka Pass modinit to rumpuser_dl_module_bootstrap() as a function pointer
to avoid linker rump -> rumpuser -> rump dependency which is annoying
redundancy in static linking.
 1.30 24-Oct-2009  pooka unused rumpuser_realpath is really dead
 1.29 15-Oct-2009  pooka Add prototype for wait operation variants which do not drop any
resources (because they should be holding any in the first place).
 1.28 09-Oct-2009  pooka Provide an interface for reboot.
 1.27 24-Sep-2009  pooka Load modules from all components which are linked into a rump binary
with -lrumpcomponent. Previously only the first library component
containing a module would get loaded automatically.
 1.26 21-Sep-2009  pooka <sys/stdint.h> is a non-standard header, so include it only from
kernel code (where it will be included from the NetBSD kernel source
tree). Use <stdint.h> in userland namespace, i.e. when compiling
librumpuser.
 1.25 02-Sep-2009  pooka add rumpuser_net_setsockopt()
 1.24 10-Jun-2009  pooka Add rumpuser_dprintf(), which can be used as a "safe" debug print
routine -- the kernel printf does a lot of crud which is not always
nice and dandy especially when debugging locks.
 1.23 27-Apr-2009  pooka branches: 1.23.2;
* expand syncing logic into rumpuser, since it has more freedom on
how to do it (e.g. fsync_range)
* hash out O_DIRECT support. it's the fastest method of safely operating
on a file, but we can't currently autodetect support, so it's not
enabled by default
* sprinkle more event counters
 1.22 26-Apr-2009  pooka Bump maximum number of outstanding async i/o's to 1024, 128 can
fill up really fast.
 1.21 07-Apr-2009  pooka Make it possible to use VCHR devices again.
 1.20 18-Mar-2009  pooka * allow to specify PROT_READ/PROT_WRITE when mmapping a file
* add msync
 1.19 28-Feb-2009  pooka Remember to commit the rumpuser bits necessary for if_shm: mmaping
a file and waiting for writes to it.
 1.18 27-Feb-2009  pooka decouple rumpuser gettime from struct timeval
 1.17 26-Feb-2009  pooka decouple from host struct iovec
 1.16 26-Feb-2009  pooka Make rumpuser stat and nanosleep independent of the host system
stat and timespec definitions.
 1.15 07-Feb-2009  pooka branches: 1.15.2;
Make the clock interrupt tick based on absolute time instead of
relative time. This prevents drifting. Also, keep track of time
within userspace, so we do not have to make a syscall to get the
clock value. This is approximately 7 times cheaper, but on the
negative side is limited to the clock interrupt frequency.
 1.14 06-Feb-2009  pooka Rip out the rwlock spl emulation code. It never did anything useful
except keep my feet warm by consuming an insane amount of cpu
cycles -- in rump our current "cpu" context is never interrupted
& we have MULTIPROCESSOR.

(itch i'm scratching: it made the networking stack 10-20% slower.
this is one of the places where fast code actually matters)
 1.13 27-Jan-2009  pooka Instead of dynamically allocating and freeing the rumpuser async
io descriptors, just allocate an array statically and be happy.

Fixes a problem found by Arnaud Ysmal where a descriptor would be
allocated using kmem_alloc(9) and free'd using free(3).
 1.12 26-Jan-2009  pooka Support getsockname() and getpeername() in rumpuser.

XXX: all these rumpuser_net routines passing sockaddr should use proplib.
 1.11 23-Jan-2009  pooka rumpuser_seterrno() to set errno from a rump kernel context.
 1.10 23-Jan-2009  pooka Support mmapping anonymous memory.
XXX: this is mainly for the benefit of correct alignment, but
MAP_ALIGNED() is not portable.
 1.9 08-Jan-2009  pooka branches: 1.9.2; 1.9.4;
missed this in previous commit:

Explicitly pass a pointer to the kernel lock/unlock routines in
rumpuser init instead of magically relying on the linker giving us
the symbols.

thanks to uwe for pointing out
 1.8 07-Jan-2009  pooka more namespacing: rua -> rumpuser_aio
 1.7 07-Jan-2009  pooka Rename _rumpuser_malloc to rumpuser__malloc so that all exported
rumpuser symbols start with "rumpuser".
(no major bumps or compat will be provided)
 1.6 05-Jan-2009  pooka g/c unused rumpuser bswap routines
 1.5 02-Jan-2009  pooka Include kernel printf routines in rump instead of relying on the
magic libc symbol. This also allows to bid farewell to subr_prf2.c
and merge the contents back to subr_prf.c. The host kernel bridging
is now done via rumpuser_putchar().
 1.4 17-Dec-2008  pooka If available (__NetBSD__), use pthread_setname_np() to set the
thread name for kthread_create().
 1.3 25-Nov-2008  pooka Support PRU_BIND / PRU_LISTEN / PRU_ACCEPT in sockin.
 1.2 18-Nov-2008  pooka Pass biodone() to rumpuser as a callback instead of hardcoding it.
Also, explicitly init rumpuser async io thread.
 1.1 17-Nov-2008  pooka Move rump public headers to include/rump
 1.9.4.4 28-Apr-2009  skrll Sync with HEAD.
 1.9.4.3 03-Mar-2009  skrll Sync with HEAD.
 1.9.4.2 19-Jan-2009  skrll Sync with HEAD.
 1.9.4.1 08-Jan-2009  skrll file rumpuser.h was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.9.2.2 17-Jan-2009  mjf Sync with HEAD.
 1.9.2.1 08-Jan-2009  mjf file rumpuser.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.15.2.2 23-Jul-2009  jym Sync with HEAD.
 1.15.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.23.2.6 11-Aug-2010  yamt sync with head.
 1.23.2.5 11-Mar-2010  yamt sync with head
 1.23.2.4 16-Sep-2009  yamt sync with head
 1.23.2.3 20-Jun-2009  yamt sync with head
 1.23.2.2 04-May-2009  yamt sync with head.
 1.23.2.1 27-Apr-2009  yamt file rumpuser.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:29 +0000
 1.35.2.3 06-Nov-2010  uebayasi Sync with HEAD.
 1.35.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.35.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.38.2.5 31-May-2011  rmind sync with head
 1.38.2.4 21-Apr-2011  rmind sync with head
 1.38.2.3 05-Mar-2011  rmind sync with head
 1.38.2.2 03-Jul-2010  rmind sync with head
 1.38.2.1 30-May-2010  rmind sync with head
 1.63.4.2 17-Feb-2011  bouyer Sync with HEAD
 1.63.4.1 08-Feb-2011  bouyer Sync with HEAD
 1.63.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.70.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.70.2.2 30-Oct-2012  yamt sync with head
 1.70.2.1 17-Apr-2012  yamt sync with head
 1.71.2.1 05-Apr-2012  mrg sync to latest -current.
 1.72.2.4 03-Dec-2017  jdolecek update from HEAD
 1.72.2.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.72.2.2 23-Jun-2013  tls resync from head
 1.72.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.108.2.1 18-May-2014  rmind sync with head
 1.110.2.1 10-Aug-2014  tls Rebase.
 1.113.4.1 06-Apr-2015  skrll Sync with HEAD
 1.114.10.1 13-Jan-2018  snj Pull up following revision(s) (requested by ozaki-r in ticket #495):
lib/librumpuser/rumpfiber.c: revision 1.13
lib/librumpuser/rumpuser_pth.c: revision 1.46
lib/librumpuser/rumpuser_pth_dummy.c: revision 1.18
sys/kern/kern_condvar.c: revision 1.40
sys/kern/kern_lock.c: revision 1.161
sys/kern/kern_mutex.c: revision 1.68
sys/kern/kern_rwlock.c: revision 1.48
sys/rump/include/rump/rumpuser.h: revision 1.115
sys/rump/librump/rumpkern/locks.c: revision 1.76-1.79
Apply C99-style struct initialization to lockops_t
--
Tweak LOCKDEBUG macros (NFC)
--
Distinguish spin mutex and adaptive mutex on rump kernels for LOCKDEBUG
Formerly rump kernels treated the two types of mutexes as both adaptive for
LOCKDEBUG for some reasons.
Now we can detect violations of mutex restrictions on rump kernels such as
taking an adaptive mutex with holding a spin mutex as well as normal kernels.
--
rump: check if the mutex is surely owned by the caller in mutex_exit
Unlocking a not-owned mutex wasn't detected well (it could detect if the mutex
is not held by anyone but that's not enough). Let's check it (the check is the
same as normal kernel's mutex).
If LOCKDEBUG is enabled, give the check over LOCKDEBUG because it can provide
better debugging information.
 1.115.4.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.15 23-Feb-2020  ad UVM locking changes, proposed on tech-kern:

- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock.
- Break v_interlock and vmobjlock apart. v_interlock remains a mutex.
- Do partial PV list locking in the x86 pmap. Others to follow later.
 1.14 26-Jan-2016  pooka branches: 1.14.18; 1.14.24;
regen rump kernel interfaces for header change.
(they were already manually edited for a prior commit, so not much change)
 1.13 23-Apr-2015  pooka regen for COMPAT_50 sprinklage
 1.12 25-Apr-2014  pooka branches: 1.12.4;
regen
 1.11 25-Apr-2014  pooka regen for etfs move from rumpvfs to rumpkern
 1.10 18-Nov-2012  pooka branches: 1.10.2; 1.10.10;
regen
 1.9 30-Nov-2010  pooka branches: 1.9.8; 1.9.18;
regen: checksavecn is gone
 1.8 07-Sep-2010  pooka regen: rcvp/cdir interfaces go byebye in favour of rump syscalls
 1.7 19-Jul-2010  pooka regen: stat compat syscalls moved
 1.6 26-May-2010  pooka regen: rump_vfs_mount_print
 1.5 20-May-2010  pooka regen: rump_vfs_extattrctl
 1.4 14-Apr-2010  pooka regen: kauth_cred_t -> struct kauth_cred *
 1.3 15-Oct-2009  pooka branches: 1.3.2; 1.3.4; 1.3.6;
regen: scheduling points in rump_pub wrappers
 1.2 14-Oct-2009  pooka regen: put all public interfaces created by ifspec into a rump_pub namespace
 1.1 14-Oct-2009  pooka generate rump local interfaces
 1.3.6.2 05-Mar-2011  rmind sync with head
 1.3.6.1 30-May-2010  rmind sync with head
 1.3.4.4 09-Oct-2010  yamt sync with head
 1.3.4.3 11-Aug-2010  yamt sync with head.
 1.3.4.2 11-Mar-2010  yamt sync with head
 1.3.4.1 15-Oct-2009  yamt file rumpvfs_if_pub.h was added on branch yamt-nfs-mp on 2010-03-11 15:04:37 +0000
 1.3.2.3 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.3.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.3.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.9.18.3 03-Dec-2017  jdolecek update from HEAD
 1.9.18.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.18.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.9.8.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9.8.1 16-Jan-2013  yamt sync with (a bit old) head
 1.10.10.1 10-Aug-2014  tls Rebase.
 1.10.2.1 18-May-2014  rmind sync with head
 1.12.4.2 19-Mar-2016  skrll Sync with HEAD
 1.12.4.1 06-Jun-2015  skrll Sync with HEAD
 1.14.24.1 29-Feb-2020  ad Sync with head.
 1.14.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.41 15-Jun-2023  hannken Regen.
 1.40 18-Jul-2022  thorpej branches: 1.40.4;
Regen for:

Make kqueue event status for vnodes shareable, and for stacked file systems
like nullfs, make the upper vnode share that status with the lower vnode.

And, lo, NetBSD 9.99.99.

Fixes PR kern/56713.
 1.39 03-May-2022  hannken Regen.
 1.38 03-May-2022  hannken Regen.
 1.37 20-Oct-2021  thorpej Regen for:

Overhaul of the EVFILT_VNODE kevent(2) filter:

- Centralize vnode kevent handling in the VOP_*() wrappers, rather than
forcing each individual file system to deal with it (except VOP_RENAME(),
because VOP_RENAME() is a mess and we currently have 2 different ways
of handling it; at least it's reasonably well-centralized in the "new"
way).
- Add support for NOTE_OPEN, NOTE_CLOSE, NOTE_CLOSE_WRITE, and NOTE_READ,
compatible with the same events in FreeBSD.
- Track which kevent notifications clients are interested in receiving
to avoid doing work for events no one cares about (avoiding, e.g.
taking locks and traversing the klist to send a NOTE_WRITE when
someone is merely watching for a file to be deleted, for example).

In support of the above:

- Add support in vnode_if.sh for specifying PRE- and POST-op handlers,
to be invoked before and after vop_pre() and vop_post(), respectively.
Basic idea from FreeBSD, but implemented differently.
- Add support in vnode_if.sh for specifying CONTEXT fields in the
vop_*_args structures. These context fields are used to convey information
between the file system VOP function and the VOP wrapper, but do not
occupy an argument slot in the VOP_*() call itself. These context fields
are initialized and subsequently interpreted by PRE- and POST-op handlers.
- Version VOP_REMOVE(), uses the a context field for the file system to report
back the resulting link count of the target vnode. Return this in tmpfs,
udf, nfs, chfs, ext2fs, lfs, and ufs.

NetBSD 9.99.92.
 1.36 02-Jul-2021  dholland Regen.
 1.35 29-Jun-2021  dholland Regen.
 1.34 16-May-2020  christos branches: 1.34.6;
Add ACL support for FFS. From FreeBSD.
 1.33 23-Feb-2020  ad Regen.
 1.32 01-Dec-2019  ad branches: 1.32.2;
Regen for VOP_LOCK & LK_UPGRADE/LK_DOWNGRADE.
 1.31 12-Jul-2017  hannken branches: 1.31.6;
Regen.
 1.30 04-Jun-2017  hannken Operations fstrans_start() and fstrans_start_nowait() now always
use FSTRANS_SHARED as lock type so remove the lock type argument.

File system state FSTRANS_SUSPENDING is now unused so remove it.

Regen vnode_if files.

Ride 8.99.1 less than a hour ago.
 1.29 04-Jun-2017  hannken Regen.
 1.28 26-May-2017  riastradh branches: 1.28.2;
regen
 1.27 26-Apr-2017  riastradh regen
 1.26 16-Apr-2017  riastradh regen to confirm no functional change
 1.25 16-Apr-2017  riastradh regen
 1.24 15-Apr-2017  riastradh regen to confirm no functional change
 1.23 11-Apr-2017  riastradh regen to confirm no functional change
 1.22 11-Apr-2017  riastradh regen
 1.21 22-Feb-2017  hannken Regen.
 1.20 26-Jan-2016  pooka branches: 1.20.2; 1.20.4;
regen vnode interfaces
 1.19 20-Apr-2015  riastradh regen for good measure (no functional change)
 1.18 20-Apr-2015  riastradh Make VOP_LINK return directory still locked and referenced.

Ride 7.99.10 bump.
 1.17 25-Jul-2014  dholland branches: 1.17.4;
Regen for VOP_FALLOCATE/VOP_FDISCARD.
 1.16 07-Feb-2014  hannken branches: 1.16.2;
Change vnode operation lookup to return the resulting vnode *vpp unlocked.
Change cache_lookup() to return an unlocked vnode.

Discussed on tech-kern@

Welcome to 6.99.31
 1.15 23-Jan-2014  hannken Change vnode operations create, mknod, mkdir and symlink to return
the resulting vnode *vpp unlocked.

Discussed on tech-kern@

Welcome to 6.99.30
 1.14 17-Jan-2014  hannken Change vnode operations create, mknod, mkdir and symlink to keep the
directory node dvp locked on return.

Discussed on tech-kern@

Welcome to 6.99.29
 1.13 17-Jul-2013  pooka regen
 1.12 08-Aug-2011  manu branches: 1.12.2; 1.12.12; 1.12.16; 1.12.24;
regen
 1.11 11-Jul-2011  hannken Change VOP_BWRITE() to take a vnode as its first argument like all other
VOPs do. Layered file systems no longer have to modify bp->b_vp and run
into trouble when an async VOP_BWRITE() uses the wrong vnode.

- change all occurences of VOP_BWRITE(bp) to VOP_BWRITE(bp->b_vp, bp).
- remove layer_bwrite().
- welcome to 5.99.55

Adresses PR kern/38762 panic: vwakeup: neg numoutput

No objections from tech-kern@.
 1.10 04-Jul-2011  manu Add a flag to VOP_LISTEXTATTR(9) so that the vnode interface can tell the
filesystem in which format extended attribute shall be listed.

There are currently two formats:
- NUL-terminated strings, used for listxattr(2), this is the default.
- one byte length-pprefixed, non NUL-terminated strings, used for
extattr_list_file(2), which is obtanined by setting the
EXTATTR_LIST_PREFIXLEN flag to VOP_LISTEXTATTR(9)

This approach avoid the need for converting the list back and forth, except
in libperfuse, since FUSE uses NUL-terminated strings, and the kernel may
have requested EXTATTR_LIST_PREFIXLEN.
 1.9 06-Mar-2011  bouyer merge the bouyer-quota2 branch. This adds a new on-disk format
to store disk quota usage and limits, integrated with ffs
metadata. Usage is checked by fsck_ffs (no more quotacheck)
and is covered by the WAPBL journal. Enabled with kernel
option QUOTA2 (added where QUOTA was enabled in kernel config files),
turned on with tunefs(8) on a per-filesystem
basis. mount_mfs(8) can also turn quotas on.

See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html
for details.
 1.8 24-Jun-2010  hannken branches: 1.8.2; 1.8.4;
Clean up vnode lock operations pass 2:

VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.

Welcome to 5.99.32.

Discussed on tech-kern.
 1.7 14-Apr-2010  pooka regen: rump vnodeif went on a diet
 1.6 14-Apr-2010  pooka regenefactor for comment and whitespace changes
 1.5 10-Apr-2010  pooka regen: remove unused vdesc_transports
 1.4 15-Oct-2009  pooka branches: 1.4.2; 1.4.4;
regen: scheduling points
 1.3 29-Sep-2009  pooka regen: remove VNODE_LOCKDEBUG
 1.2 17-Nov-2008  pooka branches: 1.2.4; 1.2.6; 1.2.10;
reregen to get those most important rcsids right
 1.1 17-Nov-2008  pooka regen
 1.2.10.4 11-Aug-2010  yamt sync with head.
 1.2.10.3 11-Mar-2010  yamt sync with head
 1.2.10.2 04-May-2009  yamt sync with head.
 1.2.10.1 17-Nov-2008  yamt file rumpvnode_if.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:29 +0000
 1.2.6.2 19-Jan-2009  skrll Sync with HEAD.
 1.2.6.1 17-Nov-2008  skrll file rumpvnode_if.h was added on branch nick-hppapmap on 2009-01-19 13:20:25 +0000
 1.2.4.2 17-Jan-2009  mjf Sync with HEAD.
 1.2.4.1 17-Nov-2008  mjf file rumpvnode_if.h was added on branch mjf-devfs2 on 2009-01-17 13:29:35 +0000
 1.4.4.3 21-Apr-2011  rmind sync with head
 1.4.4.2 03-Jul-2010  rmind sync with head
 1.4.4.1 30-May-2010  rmind sync with head
 1.4.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.4.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.8.4.1 20-Jan-2011  bouyer Snapshot of work in progress on a modernised disk quota system:
- new quotactl syscall (versionned for backward compat), which takes
as parameter a path to a mount point, and a prop_dictionary
(in plistref format) describing commands and arguments.
For each command, status and data are returned as a prop_dictionary.
quota commands features will be added to take advantage of this,
exporting quota data or getting quota commands as plists.

- new on disk-format storage (all 64bit wide), integrated to metadata for
ffs (and playing nicely with wapbl).
Quotas are enabled on a ffs filesystem via superblock flags.
tunefs(8) can enable or disable quotas.
On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid
block and inode usages, and will check and update quotas in Pass 6.
quota usage and limits are stored in unliked files (one for users,
one for groups)l fsck_ffs(8) will create the files if needed, or
free them if needed. This means that after enabling or disabling
quotas on a filesystem; a fsck_ffs(8) run is required.
quotacheck(8) is not needed any more, on a unclean shutdown
fsck or journal replay will take care of fixing quotas.
newfs(8) can create a ready-to-mount quota-enabled filesystem
(superblock flags are set and quota inodes are created).
Other new features or semantic changes:
- default quota datas, applied to users or groups which don't already
have a quota entry
- per-user/group grace time (instead of a filesystem global one)
- 0 really means "nothing allowed at all", not "no limit".
If you want "no limit", set the limit to UQUAD_MAX (tools will
understand "unlimited" and "-")

A quota file is structured as follow:
it starts with a header, containing a few per-filesystem values,
and the default quota limits.
Quota entries are linked together as a simple list, each entry has a
pointer (as an offset withing the file) to the next.
The header has a pointer to a list of free quota entries, and
a hash table of in-use entries. The size of the hash table depends
on the filesystem block size (header+hash table should fit in the
first block). The file is not sparse and is a multiple of
filesystem block size (when the free quota entry list is empty a new
filesystem block is allocated). quota entries to not cross
filesystem block boundaries.

In memory, the kernel keeps a cache of recently used quota entries
as a reference to the block number, and offset withing the block.
The quota entry itself is keept in the buf cache.

fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with
related atf tests :)
The kernel can update disk usage and report it via quotactl(2).

Todo: enforce quotas limits (limits are not checked by kernel yet)
update repquota, edquota and rpc.rquotad to the new world
implement compat_50_quotactl ioctl.
update quotactl(2) man page

fsck_ffs required fixes so that allocating new blocks or inodes will
properly update the superblock and cg sumaries. This was not an issue up
to now because superblock and cg sumaries check happened last, but now
allocations or frees can happen in pass 6.
 1.8.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.12.24.1 23-Jul-2013  riastradh sync with HEAD
 1.12.16.2 18-May-2014  rmind sync with head
 1.12.16.1 28-Aug-2013  rmind sync with head
 1.12.12.2 03-Dec-2017  jdolecek update from HEAD
 1.12.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16.2.1 10-Aug-2014  tls Rebase.
 1.17.4.2 28-Aug-2017  skrll Sync with HEAD
 1.17.4.1 06-Jun-2015  skrll Sync with HEAD
 1.20.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.20.2.2 26-Apr-2017  pgoyette Sync with HEAD
 1.20.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.28.2.2 25-Jul-2017  snj regen for ticket 130
 1.28.2.1 04-Jun-2017  bouyer pullup the following revisions, requested by hannken in ticket #2:
src/share/man/man9/fstrans.9 1.25
src/sys/kern/vfs_mount.c 1.66
src/sys/kern/vfs_subr.c 1.468
src/sys/kern/vfs_trans.c 1.46
src/sys/kern/vfs_vnode.c 1.94, 1.95, 1.96
src/sys/kern/vnode_if.c 1.105, 1.106
src/sys/kern/vnode_if.sh 1.65, 1.66
src/sys/kern/vnode_if.src 1.76
src/sys/miscfs/genfs/genfs_io.c 1.69
src/sys/miscfs/genfs/genfs_vnops.c 1.196, 1.197
src/sys/miscfs/genfs/layer_extern.h 1.40
src/sys/miscfs/genfs/layer_vfsops.c 1.51
src/sys/miscfs/genfs/layer_vnops.c 1.67
src/sys/miscfs/nullfs/null_vnops.c 1.42
src/sys/miscfs/overlay/overlay_vnops.c 1.24
src/sys/miscfs/umapfs/umap_vnops.c 1.60
src/sys/rump/include/rump/rumpvnode_if.h 1.29, 1.30
src/sys/rump/librump/rumpkern/emul.c 1.182
src/sys/rump/librump/rumpvfs/rumpvnode_if.c 1.29, 1.30
src/sys/sys/fstrans.h 1.11
src/sys/sys/vnode.h 1.278
src/sys/sys/vnode_if.h 1.100, 1.101
src/sys/sys/vnode_impl.h 1.14, 1.15
src/sys/ufs/lfs/lfs_pages.c 1.12

Vnode state, lock and fstrans cleanup:
- Rename vnode state "VS_ACTIVE" to "VS_LOADED" and add synthetic
state "VS_ACTIVE" to assert a loaded vnode with usecount > 0.

- Redo FSTRANS in vnode_if.c and use it for VOP_LOCK and VOP_UNLOCK.

- Cleanup the genfs lock operations.

- Make "struct vnode_impl" member "vi_lock" a krwlock_t again.

- Remove the lock type argument from fstrans_start and
fstrans_start_nowait,
remove now unused FSTRANS state "FSTRANS_SUSPENDING".
 1.31.6.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.32.2.1 29-Feb-2020  ad Sync with head.
 1.34.6.1 01-Aug-2021  thorpej Sync with HEAD.
 1.40.4.1 21-Jun-2023  martin Regen (ticket #197)
 1.2 25-Apr-2014  pooka obsolete the installed <rump/scsitest.h> header and make it private
to tests/dev/scsipi
 1.1 24-Aug-2010  pooka branches: 1.1.2; 1.1.4; 1.1.10; 1.1.14; 1.1.24; 1.1.28; 1.1.38;
whoopsie, need to commit this as part of scsitest
 1.1.38.1 10-Aug-2014  tls Rebase.
 1.1.28.1 18-May-2014  rmind sync with head
 1.1.24.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.14.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.10.2 05-Mar-2011  rmind sync with head
 1.1.10.1 24-Aug-2010  rmind file scsitest.h was added on branch rmind-uvmplock on 2011-03-05 20:56:12 +0000
 1.1.4.2 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.1.4.1 24-Aug-2010  uebayasi file scsitest.h was added on branch uebayasi-xip on 2010-10-22 07:22:47 +0000
 1.1.2.2 09-Oct-2010  yamt sync with head
 1.1.2.1 24-Aug-2010  yamt file scsitest.h was added on branch yamt-nfs-mp on 2010-10-09 03:32:43 +0000
 1.1 26-Jan-2016  pooka branches: 1.1.2; 1.1.18;
Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 26-Jan-2016  jdolecek file README was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 19-Mar-2016  skrll Sync with HEAD
 1.1.2.1 26-Jan-2016  skrll file README was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.1 26-Jan-2016  pooka branches: 1.1.2; 1.1.18;
Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 26-Jan-2016  jdolecek file dev.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 19-Mar-2016  skrll Sync with HEAD
 1.1.2.1 26-Jan-2016  skrll file dev.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.5 01-Nov-2020  christos PR/55664: Ruslan Nikolaev: Fix:

1. A race condition (bug) in sys/rump/librump/rumpkern/intr.c since
rumpuser_cv_signal() is called without holding a mutex
2. sleepq is implemented using a single (global) conditional
variable; that should be done per each sleepq separately
 1.4 10-Aug-2018  pgoyette branches: 1.4.12;
Allow syscall_establish() to install new syscalls when the existing
entry-point is either sys_nomodule or sys_nosys. Update the
makesyscalls.sh script to create a const array of bits to allow
syscall_disestablish() to properly restore the original entry-point.
Update all the initializers of struct emul to initialize the pointer
to the bit array struct emul.

XXX Regen of all files created by makesyscalls.sh will come soon,
XXX followed by a kernel version bump (since struct emul is being
XXX modified).

This commit should address PR kern/45781 and also removes the need
for the work-around for that PR in file

sys/arch/usermode/modules/syscallemu/syscallemu.c
 1.3 08-Feb-2016  pooka branches: 1.3.2; 1.3.18; 1.3.20; 1.3.22;
Allocate struct cpu_info dynamically. Saves quite a lot of BSS in the
common case and reduces rump kernel memory requirements by 10% or more
in really tiny deployments.
 1.2 02-Feb-2016  pooka Remove leading spaces.

Bet you didn't see that one coming.
 1.1 26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.3.22.1 10-Jun-2019  christos Sync with HEAD
 1.3.20.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.3.18.2 03-Dec-2017  jdolecek update from HEAD
 1.3.18.1 08-Feb-2016  jdolecek file kern.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.3.2.2 19-Mar-2016  skrll Sync with HEAD
 1.3.2.1 08-Feb-2016  skrll file kern.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.4.12.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.2 26-Jan-2016  pooka branches: 1.2.2; 1.2.18;
regen rump kernel interfaces for header change.
(they were already manually edited for a prior commit, so not much change)
 1.1 26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.2.18.2 03-Dec-2017  jdolecek update from HEAD
 1.2.18.1 26-Jan-2016  jdolecek file kern_if.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.2.2.2 19-Mar-2016  skrll Sync with HEAD
 1.2.2.1 26-Jan-2016  skrll file kern_if.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.2 03-Sep-2022  thorpej Garbage-collect the remaining vestiges of netisr.
 1.1 26-Jan-2016  pooka branches: 1.1.2; 1.1.18;
Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 26-Jan-2016  jdolecek file net.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 19-Mar-2016  skrll Sync with HEAD
 1.1.2.1 26-Jan-2016  skrll file net.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.2 26-Jan-2016  pooka branches: 1.2.2; 1.2.18;
regen rump kernel interfaces for header change.
(they were already manually edited for a prior commit, so not much change)
 1.1 26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.2.18.2 03-Dec-2017  jdolecek update from HEAD
 1.2.18.1 26-Jan-2016  jdolecek file net_if.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.2.2.2 19-Mar-2016  skrll Sync with HEAD
 1.2.2.1 26-Jan-2016  skrll file net_if.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.1 26-Jan-2016  pooka branches: 1.1.2; 1.1.18;
Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.1.18.2 03-Dec-2017  jdolecek update from HEAD
 1.1.18.1 26-Jan-2016  jdolecek file vfs.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.1.2.2 19-Mar-2016  skrll Sync with HEAD
 1.1.2.1 26-Jan-2016  skrll file vfs.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.3 23-Feb-2020  ad UVM locking changes, proposed on tech-kern:

- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock.
- Break v_interlock and vmobjlock apart. v_interlock remains a mutex.
- Do partial PV list locking in the x86 pmap. Others to follow later.
 1.2 26-Jan-2016  pooka branches: 1.2.2; 1.2.18; 1.2.22; 1.2.28;
regen rump kernel interfaces for header change.
(they were already manually edited for a prior commit, so not much change)
 1.1 26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.2.28.1 29-Feb-2020  ad Sync with head.
 1.2.22.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.2.18.2 03-Dec-2017  jdolecek update from HEAD
 1.2.18.1 26-Jan-2016  jdolecek file vfs_if.h was added on branch tls-maxphys on 2017-12-03 11:39:14 +0000
 1.2.2.2 19-Mar-2016  skrll Sync with HEAD
 1.2.2.1 26-Jan-2016  skrll file vfs_if.h was added on branch nick-nhusb on 2016-03-19 11:30:36 +0000
 1.6 03-Jun-2015  pooka implement bus_dmamem_free()

from Robert Millan <rmh@freebsd.org> via rumpkernel-users
 1.5 14-Apr-2014  pooka branches: 1.5.4;
Add a vacookie to busdma_segment, for potential help with bus_dmamem_map()
 1.4 04-Apr-2014  pooka branches: 1.4.2;
make tags and handles long
 1.3 23-Sep-2013  pooka +BUS_DMA_TAG_IS_VALID
 1.2 22-Sep-2013  pooka Make dma_tag_t a bit more useful.

XXX: this header should definitely not exist, but given that it does,
let's use it to make life easier. The implication of its existence is
that x86 port rump kernel components are not ABI-compatible with kernel
modules which use bus_space/bus_dma. I'm not sure if anyone is interested
in that...
 1.1 15-Jul-2011  dyoung branches: 1.1.2; 1.1.12; 1.1.16;
Use <sys/bus.h> not <machine/bus.h>.
 1.1.16.1 18-May-2014  rmind sync with head
 1.1.12.2 03-Dec-2017  jdolecek update from HEAD
 1.1.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.2.1 10-Aug-2014  tls Rebase.
 1.5.4.1 06-Jun-2015  skrll Sync with HEAD
 1.2 04-Nov-2020  martin branches: 1.2.2;
Add turnstile_print prototype for LOCKDEBUG
 1.1 01-Nov-2020  christos PR/55664: Ruslan Nikolaev: Fix:

1. A race condition (bug) in sys/rump/librump/rumpkern/intr.c since
rumpuser_cv_signal() is called without holding a mutex
2. sleepq is implemented using a single (global) conditional
variable; that should be done per each sleepq separately
 1.2.2.2 14-Dec-2020  thorpej Sync w/ HEAD.
 1.2.2.1 04-Nov-2020  thorpej file sleeptab.h was added on branch thorpej-futex on 2020-12-14 14:38:16 +0000

RSS XML Feed