Home | History | Annotate | only in /src/sys/compat/linux/arch/i386
History log of /src/sys/compat/linux/arch/i386
RevisionDateAuthorComments
 1.4 29-May-2024  christos should not be using .include <> but .include "" here.
 1.3 08-Apr-2014  njoly Do not include bsd.kinc.mk in each arch Makefile, it's already pulled
by bsd.syscall.mk (from Makefile.inc).
 1.2 03-Oct-1998  christos branches: 1.2.184; 1.2.194; 1.2.200; 1.2.210;
Attempt to fix the mess.
 1.1 01-Oct-1998  erh New makefiles for includes, syscall gen.
 1.2.210.1 10-Aug-2014  tls Rebase.
 1.2.200.1 18-May-2014  rmind sync with head
 1.2.194.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.184.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.10 23-Feb-2009  rmind Switch Linux futex emulation to native ucas_int(), remove unecessary
futex-specific assembler routines.

Fixes PR/40490. Reviewed by <ad>.
 1.9 26-Oct-2008  christos branches: 1.9.2; 1.9.4; 1.9.8;
futex support fixes from FreeBSD via cube+pengo.
 1.8 30-Aug-2006  matt branches: 1.8.52; 1.8.62;
Update to deal with options PTRACE
 1.7 11-Dec-2005  christos branches: 1.7.4; 1.7.8;
merge ktrace-lwp.
 1.6 13-Nov-2004  christos branches: 1.6.12;
Split out the setup stack function for the benefit of lkms.
XXX: Our lkm system sucks. We really need to be exporting symbols, but
that leads to symbol conflicts.
 1.5 31-Mar-2002  christos branches: 1.5.10;
bring the reverse signal mapping array into linux_signo.c
 1.4 12-Dec-1999  tron branches: 1.4.6; 1.4.8;
Incomplete but already working emulation of Linux's ptrace(2) for i386.
 1.3 03-Jan-1999  erh branches: 1.3.8; 1.3.14;
Speed up compilation by #include-ing C files from common into one file.
 1.2 03-Oct-1998  christos Attempt to fix the mess.
 1.1 01-Oct-1998  erh New list of files for the i386.
 1.3.14.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.3.8.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.4.8.1 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.4.6.1 17-Apr-2002  nathanw Catch up to -current.
 1.5.10.1 14-Nov-2004  skrll Sync with HEAD.
 1.6.12.1 30-Dec-2006  yamt sync with head.
 1.7.8.1 03-Sep-2006  yamt sync with head.
 1.7.4.1 09-Sep-2006  rpaulo sync with head
 1.8.62.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.8.52.1 17-Jan-2009  mjf Sync with HEAD.
 1.9.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.9.4.1 26-Feb-2009  snj Pull up following revision(s) (requested by rmind in ticket #493):
sys/compat/linux/arch/amd64/files.linux_amd64: revision 1.4
sys/compat/linux/arch/amd64/linux_support.S: file removal
sys/compat/linux/common/linux_futex.c: revision 1.23
sys/compat/linux/arch/i386/linux_support.S: file removal
sys/compat/linux/arch/i386/files.linux_i386: revision 1.10
Switch Linux futex emulation to native ucas_int(), remove unecessary
futex-specific assembler routines.
Fixes PR/40490. Reviewed by <ad>.
 1.9.2.1 03-Mar-2009  skrll Sync with HEAD.
 1.18 12-Oct-2021  andvar fix various typos, mainly in comments.
 1.17 03-May-2020  thorpej Always clear FUTEX_PRIVATE_FLAG for Linux processes. NetBSD-native futexes
exist in different namespace depending on FUTEX_PRIVATE_FLAG. This appears
not to be the case in Linux, and some futex users will mix private and non-
private ops on the same futex object. Provide a convenience wrapper that
puts this logic in one place witn a comment explaining why.

While here, move the Linux futex wrapper out of its own file and plop
it in linux_misc.c, which is where it lives in the linux32 module.
 1.16 31-May-2011  njoly Fix path for fadvise64 files.
 1.15 30-May-2011  alnsn Add fadvise64 and fadvise64_64 syscalls to compat_linux and compat_linux32.
 1.14 02-Mar-2010  pooka branches: 1.14.2; 1.14.4;
Nuke fs_lfs.h included for unknown reasons (if there was a reason
other than "accident", i hereby declare that reason invalid)
 1.13 19-Nov-2008  ad branches: 1.13.6;
Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.12 02-Feb-2008  dsl branches: 1.12.6; 1.12.10; 1.12.12; 1.12.16; 1.12.18;
Extract the fcntl64() suppoort from linux_file64.c into linux_fcntl64.c
Unravel some of the knots that caused linux_file64.c to be compiled twice
for an amd64 kernel (once for linux and once for linux32) with different
parts being skipped each time.
 1.11 15-Jan-2008  njoly compat linux (and linux32) uid16 functions cleanup and fixes.

- Move uid16 functions to their own file linux_uid16.c, included by
needed archs (arm, i386 and m68k).
- Add new MI types linux_{u,g}id16_t.
- Add macros to handle linux_uid16_t and uid_t conversions.
- Add linux_sys_getres{uid,gid}16 syscalls, to fix an overflow with
bad sizes given to copyout when linux_sys_getres{uid,gid} are used.
- Update arm syscall table to use more uid16 functions.
 1.10 15-Aug-2007  ad branches: 1.10.2; 1.10.8; 1.10.14;
Changes to make ktrace LKM friendly and reduce ifdef KTRACE. Proposed
on tech-kern.
 1.9 13-Jun-2007  christos branches: 1.9.2; 1.9.6;
Add futex.
 1.8 09-Feb-2007  ad branches: 1.8.6; 1.8.8;
Merge newlock2 to head.
 1.7 18-Jan-2003  thorpej branches: 1.7.18; 1.7.48;
Merge the nathanw_sa branch.
 1.6 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.5 13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.4 30-May-2001  mrg branches: 1.4.2;
use _KERNEL_OPT.
 1.3 17-Dec-2000  jdolecek branches: 1.3.2;
make LKM safe
 1.2 12-Dec-2000  jdolecek add emulation of Linux truncate64(2), ftruncate64(2), *stat64(2)
 1.1 03-Jan-1999  erh branches: 1.1.8;
Speed up compilation by #include-ing C files from common into one file.
 1.1.8.2 05-Jan-2001  bouyer Sync with HEAD
 1.1.8.1 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.3.2.4 29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.3.2.3 08-Jan-2002  nathanw Catch up to -current.
 1.3.2.2 14-Nov-2001  nathanw Catch up to -current.
 1.3.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.4.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.7.48.1 30-Jan-2007  ad Remove support for SA. Ok core@.
 1.7.18.4 04-Feb-2008  yamt sync with head.
 1.7.18.3 21-Jan-2008  yamt sync with head
 1.7.18.2 03-Sep-2007  yamt sync with head.
 1.7.18.1 26-Feb-2007  yamt sync with head.
 1.8.8.1 11-Jul-2007  mjf Sync with head.
 1.8.6.2 20-Aug-2007  ad Sync with HEAD.
 1.8.6.1 15-Jul-2007  ad Sync with head.
 1.9.6.1 16-Aug-2007  jmcneill Sync with HEAD.
 1.9.2.1 03-Sep-2007  skrll Sync with HEAD.
 1.10.14.1 19-Jan-2008  bouyer Sync with HEAD
 1.10.8.1 18-Feb-2008  mjf Sync with HEAD.
 1.10.2.1 23-Mar-2008  matt sync with HEAD
 1.12.18.1 19-Jan-2009  skrll Sync with HEAD.
 1.12.16.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.12.12.2 14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.12.12.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.12.10.2 11-Mar-2010  yamt sync with head
 1.12.10.1 04-May-2009  yamt sync with head.
 1.12.6.1 17-Jan-2009  mjf Sync with HEAD.
 1.13.6.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.14.4.1 06-Jun-2011  jruoho Sync with HEAD.
 1.14.2.2 12-Jun-2011  rmind sync with head
 1.14.2.1 31-May-2011  rmind sync with head
 1.11 17-Dec-2013  njoly Cleanup compat linux errnos by adding generic errnos in a single file.
Use it for all arches except alpha and mips.
Add a few missing native to linux errno conversions.
 1.10 28-Apr-2008  martin branches: 1.10.34; 1.10.44; 1.10.50;
Remove clause 3 and 4 from TNF licenses
 1.9 11-Dec-2005  christos branches: 1.9.70; 1.9.72; 1.9.74;
merge ktrace-lwp.
 1.8 26-Feb-2005  perry nuke trailing whitespace
 1.7 12-Feb-2001  manu branches: 1.7.24; 1.7.32; 1.7.34;
Clarified comments about the LINUX_SCERR_SIGN macro
 1.6 11-Feb-2001  manu Moved the fix for negative errno returned to userland on the PowerPC to a
more machine independent fashion
 1.5 18-Jan-2001  jdolecek kill local declaration of native_to_linux_errno[], one in common/linux_errno.h suffices
 1.4 11-Dec-2000  mycroft Introduce 2 new flags in types.h:
* __HAVE_SYSCALL_INTERN. If this is defined, e_syscall is replaced by
e_syscall_intern, which is called at key places in the kernel. This can be
used to set a MD syscall handler pointer. This obsoletes and replaces the
*_HAS_SEPARATED_SYSCALL flags.
* __HAVE_MINIMAL_EMUL. If this is defined, certain (deprecated) elements in
struct emul are omitted.
 1.3 04-Oct-1998  fvdl branches: 1.3.12;
Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.2 01-Oct-1998  erh Split compat/linux/linux_errno.h into i386 and common parts.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.3.12.3 12-Mar-2001  bouyer Sync with HEAD.
 1.3.12.2 11-Feb-2001  bouyer Sync with HEAD.
 1.3.12.1 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.7.34.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.7.32.1 29-Apr-2005  kent sync with -current
 1.7.24.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.9.74.1 16-May-2008  yamt sync with head.
 1.9.72.1 18-May-2008  yamt sync with head.
 1.9.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.10.50.1 18-May-2014  rmind sync with head
 1.10.44.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.34.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 26-Nov-2021  ryo - LINUX_GO_RT0_SIGNATURE for compat_linux is no longer enabled by default.
it is now defined in each arch same as the other *_SIGNATURE definitions.
- add new LINUX32_GO_RT0_SIGNATURE for compat_linux32, and is defined in amd64 and aarch64.
 1.13 12-Feb-2017  chs es_arglen is now in units of bytes, update the emulations accordingly.
 1.12 09-Feb-2014  chs branches: 1.12.6; 1.12.10; 1.12.14;
account for the 16 bytes of AT_RANDOM data in the stack setup. fixes PR 48518.
use cprng_strong32() instead of random(). add AT_RANDOM support for linux32.
 1.11 21-Mar-2012  chs branches: 1.11.2; 1.11.4;
define LINUX_DEBUGLINK_SIGNATURE for i386 too.
this allows linux ldd to work.
 1.10 17-Nov-2008  ad branches: 1.10.16; 1.10.20; 1.10.22;
LINUX_GCC_SIGNATURE also matches NetBSD/i386 ELF binaries, so disable it.
 1.9 28-Apr-2008  martin branches: 1.9.6; 1.9.8;
Remove clause 3 and 4 from TNF licenses
 1.8 11-Dec-2005  christos branches: 1.8.70; 1.8.72; 1.8.74;
merge ktrace-lwp.
 1.7 21-Aug-2003  dsl branches: 1.7.16;
Hide prototype of linux_exec_setup_stack() inside #ifdef _KERNEL so
that sbin/sysctl will compile.
 1.6 08-Aug-2003  christos - GC all the setup_stack functions
- add one for linux/i386
 1.5 13-Nov-2002  jdolecek branches: 1.5.6;
add generic linux compat ELF copyargs function

this gives:
* linux sysconf(_SC_CLK_TCK) gives correct value for linux binaries (hz)
even if hz != 100
* glibc gets proper information on real/effective uid and enables
secure mode for suid binaries

g/c LINUX_COPYARGS_FUNCTION, replaced by linux ELF copyargs function
g/c alpha-specific linux ELF copyargs function and linux ELF defines
 1.4 21-Nov-2000  jdolecek branches: 1.4.2;
restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
provide single struct emul per emulation
* elf:
- kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
per emulation and contains pointer to respective probe function
- interp is allocated via MALLOC() rather than on stack
- elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
part of appropriate execsw[] entry
* constify couple of structures
 1.3 17-Nov-2000  erh Make the linux compatibilty code work on the alpha. (horay!) (at last!)
Two main changes:
Create a linux_elf64_copyargs that uses the linux specific LinuxAuxInfo
structure. This is only used on the alpha. i386 and m68k use the
standard elf copyargs function.

Since linux's approach to binary compatibilty is to look as much
like osf1 as possible, add all the osf1 syscalls that we have
implemented to the linux syscall table. This includes get/setsysinfo,
ported from FreeBSD.

In order for linux compat to work you must have COMPAT_OSF1, COMPAT_43,
COMPAT_09, COMPAT_12 and COMPAT_13 on also.
 1.2 22-Oct-1998  erh branches: 1.2.12;
Define LINUX_GCC_SIGNATURE.
 1.1 01-Oct-1998  erh Add linux i386 machine type.
 1.2.12.1 22-Nov-2000  bouyer Sync with HEAD.
 1.4.2.1 11-Dec-2002  thorpej Sync with HEAD.
 1.5.6.4 04-Feb-2005  skrll Adapt to branch.
 1.5.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1 03-Aug-2004  skrll Sync with HEAD
 1.7.16.1 21-Jun-2006  yamt sync with head.
 1.8.74.2 04-May-2009  yamt sync with head.
 1.8.74.1 16-May-2008  yamt sync with head.
 1.8.72.1 18-May-2008  yamt sync with head.
 1.8.70.2 17-Jan-2009  mjf Sync with HEAD.
 1.8.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.9.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.9.6.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.10.22.1 25-Mar-2012  bouyer Pull up following revision(s) (requested by chs in ticket #140):
sys/compat/linux/arch/i386/linux_exec.h: revision 1.11
define LINUX_DEBUGLINK_SIGNATURE for i386 too.
this allows linux ldd to work.
 1.10.20.1 05-Apr-2012  mrg sync to latest -current.
 1.10.16.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.10.16.1 17-Apr-2012  yamt sync with head
 1.11.4.1 18-May-2014  rmind sync with head
 1.11.2.2 03-Dec-2017  jdolecek update from HEAD
 1.11.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12.14.1 21-Apr-2017  bouyer Sync with HEAD
 1.12.10.1 20-Mar-2017  pgoyette Sync with HEAD
 1.12.6.1 28-Aug-2017  skrll Sync with HEAD
 1.20 05-Sep-2020  riastradh Round of uvm.h cleanup.

The poorly named uvm.h is generally supposed to be for uvm-internal
users only.

- Narrow it to files that actually need it -- mostly files that need
to query whether curlwp is the pagedaemon, which should maybe be
exposed by an external header.

- Use uvm_extern.h where feasible and uvm_*.h for things not exposed
by it. We should split up uvm_extern.h but this will serve for now
to reduce the uvm.h dependencies.

- Use uvm_stat.h and #ifdef UVMHIST uvm.h for files that use
UVMHIST(ubchist), since ubchist is declared in uvm.h but the
reference evaporates if UVMHIST is not defined, so we reduce header
file dependencies.

- Make uvm_device.h and uvm_swap.h independently includable while
here.

ok chs@
 1.19 19-Jul-2020  maxv don't include opt_user_ldt.h when it is not needed
 1.18 12-Aug-2017  maxv Remove vm86.

Pass 3.
 1.17 29-Mar-2011  plunky branches: 1.17.14; 1.17.32;
tidy up include pathname to exclude undefined behaviour

"If the characters ', \, ", //, or /* occur in the sequence between
the < and > delimiters, the behavior is undefined."
 1.16 07-Jul-2010  chs branches: 1.16.2;
many changes for COMPAT_LINUX:
- update the linux syscall table for each platform.
- support new-style (NPTL) linux pthreads on all platforms.
clone() with CLONE_THREAD uses 1 process with many LWPs
instead of separate processes.
- move the contents of sys__lwp_setprivate() into a new
lwp_setprivate() and use that everywhere.
- update linux_release[] and linux32_release[] to "2.6.18".
- adjust placement of emul fork/exec/exit hooks as needed
and adjust other emul code to match.
- convert all struct emul definitions to use named initializers.
- change the pid allocator to allow multiple pids to refer to the same proc.
- remove a few fields from struct proc that are no longer needed.
- disable the non-functional "vdso" code in linux32/amd64,
glibc works fine without it.
- fix a race in the futex code where we could miss a wakeup after
a requeue operation.
- redo futex locking to be a little more efficient.
 1.15 23-Apr-2010  joerg Use struct segment_descriptor for pcb_fsd and pcb_gsd instead of int[2].
 1.14 23-Nov-2009  rmind branches: 1.14.2; 1.14.4;
Use lwp_getpcb() in compat code, clean from struct user.
 1.13 20-Sep-2009  taca Trying to fix build problem. Thanks to joerg's advise.
 1.12 29-Mar-2009  mrg - add new RLIMIT_AS (aka RLIMIT_VMEM) resource that limits the total
address space available to processes. this limit exists in most other
modern unix variants, and like most of them, our defaults are unlimited.
remove the old mmap / rlimit.datasize hack.

- adds the VMCMD_STACK flag to all the stack-creation vmcmd callers.
it is currently unused, but was added a few years ago.

- add a pair of new process size values to kinfo_proc2{}. one is the
total size of the process memory map, and the other is the total size
adjusted for unused stack space (since most processes have a lot of
this...)

- patch sh, and csh to notice RLIMIT_AS. (in some cases, the alias
RLIMIT_VMEM was already present and used if availble.)

- patch ps, top and systat to notice the new k_vm_vsize member of
kinfo_proc2{}.

- update irix, svr4, svr4_32, linux and osf1 emulations to support
this information. (freebsd could be done, but that it's best left
as part of the full-update of compat/freebsd.)


this addresses PR 7897. it also gives correct memory usage values,
which have never been entirely correct (since mmap), and have been
very incorrect since jemalloc() was enabled.

tested on i386 and sparc64, build tested on several other platforms.

thanks to many folks for feedback and testing but most espcially
chuq and yamt for critical suggestions that lead to this patch not
having a special ugliness i wasn't happy with anyway :-)
 1.11 26-Oct-2008  christos branches: 1.11.2; 1.11.4; 1.11.8;
changes from pengo that make initializing skype more reliable.
 1.10 26-Oct-2008  christos use a symbolic constant instead of 6.
 1.9 26-Oct-2008  christos use GUGS_SEL instead of 3.
 1.8 26-Oct-2008  ad Assert that the segment descriptors we generate for TLS will not allow
privilege elevation.
 1.7 26-Oct-2008  christos don't forget the percpu stuff and load gs immediately.
 1.6 25-Oct-2008  christos Add preliminary tls support for i386. Does not work yet. From FreeBSD.
 1.5 28-Apr-2008  martin branches: 1.5.6;
Remove clause 3 and 4 from TNF licenses
 1.4 19-Oct-2007  ad branches: 1.4.16; 1.4.18; 1.4.20;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.3 11-Dec-2005  christos branches: 1.3.30; 1.3.44; 1.3.46; 1.3.50;
merge ktrace-lwp.
 1.2 26-Feb-2005  perry branches: 1.2.4;
nuke trailing whitespace
 1.1 13-Nov-2004  christos branches: 1.1.2; 1.1.6; 1.1.8;
Split out the setup stack function for the benefit of lkms.
XXX: Our lkm system sucks. We really need to be exporting symbols, but
that leads to symbol conflicts.
 1.1.8.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.1.6.1 29-Apr-2005  kent sync with -current
 1.1.2.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.1.2.3 04-Feb-2005  skrll Adapt to branch.
 1.1.2.2 14-Nov-2004  skrll Sync with HEAD.
 1.1.2.1 13-Nov-2004  skrll file linux_exec_machdep.c was added on branch ktrace-lwp on 2004-11-14 08:15:33 +0000
 1.2.4.2 27-Oct-2007  yamt sync with head.
 1.2.4.1 21-Jun-2006  yamt sync with head.
 1.3.50.1 25-Oct-2007  bouyer Sync with HEAD.
 1.3.46.1 06-Nov-2007  matt sync with HEAD
 1.3.44.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.3.30.1 23-Oct-2007  ad Sync with head.
 1.4.20.4 11-Aug-2010  yamt sync with head.
 1.4.20.3 11-Mar-2010  yamt sync with head
 1.4.20.2 04-May-2009  yamt sync with head.
 1.4.20.1 16-May-2008  yamt sync with head.
 1.4.18.1 18-May-2008  yamt sync with head.
 1.4.16.2 17-Jan-2009  mjf Sync with HEAD.
 1.4.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.6.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.11.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.11.4.1 01-Apr-2009  snj Pull up following revision(s) (requested by mrg in ticket #622):
bin/csh/csh.1: revision 1.46
bin/csh/func.c: revision 1.37
bin/ps/print.c: revision 1.111
bin/ps/ps.c: revision 1.74
bin/sh/miscbltin.c: revision 1.38
bin/sh/sh.1: revision 1.92 via patch
external/bsd/top/dist/machine/m_netbsd.c: revision 1.7
lib/libkvm/kvm_proc.c: revision 1.82
sys/arch/mips/mips/cpu_exec.c: revision 1.55
sys/compat/darwin/darwin_exec.c: revision 1.57
sys/compat/ibcs2/ibcs2_exec.c: revision 1.73
sys/compat/irix/irix_resource.c: revision 1.15
sys/compat/linux/arch/amd64/linux_exec_machdep.c: revision 1.16
sys/compat/linux/arch/i386/linux_exec_machdep.c: revision 1.12
sys/compat/linux/common/linux_limit.h: revision 1.5
sys/compat/osf1/osf1_resource.c: revision 1.14
sys/compat/svr4/svr4_resource.c: revision 1.18
sys/compat/svr4_32/svr4_32_resource.c: revision 1.17
sys/kern/exec_subr.c: revision 1.62
sys/kern/init_sysctl.c: revision 1.160
sys/kern/kern_exec.c: revision 1.288
sys/kern/kern_resource.c: revision 1.151
sys/sys/param.h: patch
sys/sys/resource.h: revision 1.31
sys/sys/sysctl.h: revision 1.184
sys/uvm/uvm_extern.h: revision 1.153
sys/uvm/uvm_glue.c: revision 1.136
sys/uvm/uvm_mmap.c: revision 1.128
usr.bin/systat/ps.c: revision 1.32
- - add new RLIMIT_AS (aka RLIMIT_VMEM) resource that limits the total
address space available to processes. this limit exists in most other
modern unix variants, and like most of them, our defaults are unlimited.
remove the old mmap / rlimit.datasize hack.
- - adds the VMCMD_STACK flag to all the stack-creation vmcmd callers.
it is currently unused, but was added a few years ago.
- - add a pair of new process size values to kinfo_proc2{}. one is the
total size of the process memory map, and the other is the total size
adjusted for unused stack space (since most processes have a lot of
this...)
- - patch sh, and csh to notice RLIMIT_AS. (in some cases, the alias
RLIMIT_VMEM was already present and used if availble.)
- - patch ps, top and systat to notice the new k_vm_vsize member of
kinfo_proc2{}.
- - update irix, svr4, svr4_32, linux and osf1 emulations to support
this information. (freebsd could be done, but that it's best left
as part of the full-update of compat/freebsd.)
this addresses PR 7897. it also gives correct memory usage values,
which have never been entirely correct (since mmap), and have been
very incorrect since jemalloc() was enabled.
tested on i386 and sparc64, build tested on several other platforms.
thanks to many folks for feedback and testing but most espcially
chuq and yamt for critical suggestions that lead to this patch not
having a special ugliness i wasn't happy with anyway :-)
 1.11.2.1 28-Apr-2009  skrll Sync with HEAD.
 1.14.4.3 21-Apr-2011  rmind sync with head
 1.14.4.2 05-Mar-2011  rmind sync with head
 1.14.4.1 30-May-2010  rmind sync with head
 1.14.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.14.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.16.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.17.32.1 28-Aug-2017  skrll Sync with HEAD
 1.17.14.1 03-Dec-2017  jdolecek update from HEAD
 1.8 25-Jun-2014  njoly Add a few missing open(2) flags (LINUX_O_*). Fix alpha wrong values.
 1.7 02-Nov-2010  chs branches: 1.7.18; 1.7.32;
define LINUX_O_CLOEXEC.
sort definitions by value.
consistently use hex instead of octal for the values.
 1.6 21-Sep-2010  chs implement O_DIRECTORY as standardized in POSIX-2008,
for both native and linux emulations.
this fixes the rest of PR 43695.
 1.5 28-Apr-2008  martin branches: 1.5.20; 1.5.22;
Remove clause 3 and 4 from TNF licenses
 1.4 30-Sep-2001  manu branches: 1.4.116; 1.4.118; 1.4.120;
Added initial support for fcntl64 system call (file locking is not
implemented)
 1.3 04-Oct-1998  fvdl branches: 1.3.24; 1.3.26; 1.3.28;
Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.2 01-Oct-1998  erh Split linux_fcntl.h into i386 and common parts.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.3.28.1 01-Oct-2001  fvdl Catch up with -current.
 1.3.26.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.24.1 08-Oct-2001  nathanw Catch up to -current.
 1.4.120.2 09-Oct-2010  yamt sync with head
 1.4.120.1 16-May-2008  yamt sync with head.
 1.4.118.1 18-May-2008  yamt sync with head.
 1.4.116.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.22.1 05-Mar-2011  rmind sync with head
 1.5.20.2 06-Nov-2010  uebayasi Sync with HEAD.
 1.5.20.1 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.7.32.1 10-Aug-2014  tls Rebase.
 1.7.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.10 10-Dec-2000  fvdl branches: 1.10.122; 1.10.124; 1.10.126;
The gist of the Linux _IOX definitions was the same for all platforms;
move it to the MI linux_ioctl.h and only leave the MD bits in the MD
header files.
 1.9 04-Oct-1998  fvdl branches: 1.9.12; 1.9.22;
Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.8 01-Oct-1998  erh Split compat/linux/linux_ioctl.h into i386 and common parts.
 1.7 15-Jan-1998  christos PR/4794: Urban Boquist: Linux cdrom ioctls are missing
 1.6 04-Apr-1997  augustss * Move the Linux audio emulation into its own directory and rename it
OSS (aka VoxWare) audio emulation.
* Use the OSS audio emulation for Linux and FreeBSD.
* Add mixer emulation to the OSS emulator.
 1.5 19-Mar-1997  mycroft Emulate the SOUND_PCM_WRITE_CHANNELS ioctl. From PR 3356, by Lennart
Augustsson. Also add hooks for mixer ioctls.
 1.4 05-Apr-1996  christos Prototyping changes.
 1.3 08-Mar-1996  mycroft Separate ioctl emulation by group. Add (minimal) audio emulation.
 1.2 16-Aug-1995  mycroft Convert 230400 baud.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.9.22.1 30-Mar-2001  he Pull up revision 1.10 (requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.9.12.1 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.10.126.1 16-May-2008  yamt sync with head.
 1.10.124.1 18-May-2008  yamt sync with head.
 1.10.122.1 02-Jun-2008  mjf Sync with HEAD.
 1.169 01-Nov-2021  thorpej Use "stack_t" instead of "struct sigaltstack", as the former is the
newer standardized name. NFC.
 1.168 07-Sep-2021  riastradh sys/compat: Memset zero before copyout.

Just in case of uninitialized padding which would lead to kernel
stack disclosure. If the compiler can prove the memset redundant
then it can optimize it away; otherwise better safe than sorry.
 1.167 09-Aug-2021  andvar fix typos in asymmetry, asymmetric(al), symmetrical.
 1.166 19-May-2019  maxv branches: 1.166.2;
Rename

fpu_save_area_clear -> fpu_clear
fpu_save_area_reset -> fpu_sigreset

Clearer, and reduces a future diff. No real functional change.
 1.165 17-Sep-2017  maxv branches: 1.165.4;
Remove the second argument from USERMODE and KERNELMODE, it is unused
now that we don't have vm86 anymore.
 1.164 12-Aug-2017  maxv Remove vm86. Simplifies a number of critical places.

Pass 2.
 1.163 05-Feb-2017  maxv branches: 1.163.4; 1.163.6;
Rename ldt->ldtstore and gdt->gdtstore on i386. It reduces the diff with
amd64, and makes it easier to track down these variables on nxr - 'ldt'
and 'gdt' being common keywords.
 1.162 13-Jul-2016  maxv branches: 1.162.2; 1.162.4;
x86_alldisks can be NULL, so don't dereference it. Not tested, but obvious
enough.
 1.161 08-Dec-2015  christos Fix DIOCGPARTINFO
 1.160 08-Dec-2015  christos Replace DIOCGPART -> DIOCGPARTINFO which returns the data needed instead of
pointers.
 1.159 09-Nov-2014  maxv branches: 1.159.2;
Do not uselessly include <sys/malloc.h>.
 1.158 19-Feb-2014  dsl branches: 1.158.4;
Add explicit #include <x86/fpu.h> instead of relying on pcb.h including it.
 1.157 15-Feb-2014  dsl Remove all references to MDL_USEDFPU and deferred fpu initialisation.
The cost of zeroing the save area on exec is minimal.
This stops the FP registers of a random process being used the first
time an lwp uses the fpu.
sendsig_siginfo() and get_mcontext() now unconditionally copy the FP
registers.
I'll remove the double-copy for signal handlers soon.
get_mcontext() might have been leaking kernel memory to userspace - and
may still do so if i386_use_fxsave is false (short copies).
 1.156 26-Jan-2014  dsl Remove support for 'external' floating point units and the MS-DOS
compatible method of handling floating point exceptions.
Make kernel support for teh fpu non-optional (486SX should still work).
Only 386 cpus support external fpu, and i386 support was removed years ago.
This means that the npx code no longer uses port 0xf0 or interupt 13.
All the "npx at isa" lines go from the configs, arch/i386/isa/npx.c
is now mandatory for all i386 kernels.
I've renamed npxinit() to fpuinit() and npxinit_cpu() to fpuinit_cpu()
to match the very similar amd64 functions.
The fpu of the boot cpu is now initialised by a direct call from
cpu_configure(), this enables FP emulation for a 486SX.
(for amd64 the cr0 values are set in locore.S and similar).
This fixes a long-standing bug in linux_setregs() - which did not
save the fpu regsiters if they were active.
I've test booted a single cpu i386 kernel (using anita).
amd64 builds - none of teh changes should affect it.
The i386 XEN kernels build, but I'm not sure where they set cr0, and
it might have got lost!
 1.155 19-Jan-2014  dsl Flatten the floating point register structures bu moving the
'environment' registers into the main strcuture.
There are x87 instructions that only affect the environment, but that
is no real excuse for all the sub-structures.
Rename fields so that there are far fewer collisions between the two
sets of field names.
 1.154 09-Dec-2013  dsl Missing change to the fxsave structure rename
 1.153 01-Dec-2013  christos revert fpu/pcu changes until we figure out what's wrong; they cause random
freezes
 1.152 23-Oct-2013  drochner Use the MI "pcu" framework for bookkeeping of npx/fpu states on x86.
This reduces the amount of MD code enormously, and makes it easier
to implement support for newer CPU features which require more fpu
state, or for fpu usage by the kernel.
For access to FPU state across CPUs, an xcall kthread is used now
rather than a dedicated IPI.
No user visible changes intended.
 1.151 18-Nov-2011  christos branches: 1.151.10; 1.151.14;
- add sigtimedwait support.
- merge the siginfo population code.
 1.150 04-Mar-2011  joerg branches: 1.150.4;
Refactor ps_strings access. Based on PK_32, write either the normal
version or the 32bit compat layout in execve1. Introduce a new function
copyin_psstrings for reading it back from userland and converting it to
the native layout. Refactor procfs to share most of the code with the
kern.proc_args sysctl handler.

This material is based upon work partially supported by
The NetBSD Foundation under a contract with Joerg Sonnenberger.
 1.149 07-Jul-2010  chs branches: 1.149.2; 1.149.4;
many changes for COMPAT_LINUX:
- update the linux syscall table for each platform.
- support new-style (NPTL) linux pthreads on all platforms.
clone() with CLONE_THREAD uses 1 process with many LWPs
instead of separate processes.
- move the contents of sys__lwp_setprivate() into a new
lwp_setprivate() and use that everywhere.
- update linux_release[] and linux32_release[] to "2.6.18".
- adjust placement of emul fork/exec/exit hooks as needed
and adjust other emul code to match.
- convert all struct emul definitions to use named initializers.
- change the pid allocator to allow multiple pids to refer to the same proc.
- remove a few fields from struct proc that are no longer needed.
- disable the non-functional "vdso" code in linux32/amd64,
glibc works fine without it.
- fix a race in the futex code where we could miss a wakeup after
a requeue operation.
- redo futex locking to be a little more efficient.
 1.148 03-Feb-2010  wiz branches: 1.148.2; 1.148.4;
Remove extra parenthesis. Found by cppcheck, reported by
Henning Petersen in PR 42732.
 1.147 05-Jan-2010  mbalmer Remove extra semicolon.
 1.146 23-Nov-2009  rmind Use lwp_getpcb() in compat code, clean from struct user.
 1.145 29-May-2009  njoly Add native to linux siginfo si_status translation, used on i386 and
amd64.
 1.144 23-Apr-2009  njoly Convert si_code value from native to linux.
 1.143 21-Mar-2009  ad PR port-i386/40143 Viewing an mpeg transport stream with mplayer causes crash

Fix numerous problems:

1. LDT updates are not atomic.

2. Number of processes running with private LDTs and/or I/O bitmaps
is not capped. System with high maxprocs can be paniced.

3. LDTR can be leaked over context switch.

4. GDT slot allocations can race, giving the same LDT slot to two procs.

5. Incomplete interrupt/trap frames can be stacked.

6. In some rare cases segment faults are not handled correctly.
 1.142 11-Jan-2009  christos branches: 1.142.2;
merge christos-time_t
 1.141 25-Oct-2008  christos branches: 1.141.2; 1.141.4; 1.141.6;
Add preliminary tls support for i386. Does not work yet. From FreeBSD.
 1.140 21-Oct-2008  njoly Do not use native_to_linux_si_code() outside LINUX_NPTL; until i
figure a better way to handle it.
 1.139 19-Oct-2008  njoly Add native to linux siginfo si_code translation, mostly for negative
values. Adjust amd64 and i386 accordingly, not sure about aother archs
i can't test.
 1.138 18-Sep-2008  christos Define a PSL_CLEARSIG macro for the psl flags to be cleared on signal delivery
and use it everywhere.
 1.137 19-May-2008  njoly branches: 1.137.4;
Fix free() argument in linux_read_ldt.
 1.136 28-Apr-2008  martin branches: 1.136.2;
Remove clause 3 and 4 from TNF licenses
 1.135 24-Apr-2008  ad branches: 1.135.2;
Merge proc::p_mutex and proc::p_smutex into a single adaptive mutex, since
we no longer need to guard against access from hardware interrupt handlers.

Additionally, if cloning a process with CLONE_SIGHAND, arrange to have the
child process share the parent's lock so that signal state may be kept in
sync. Partially addresses PR kern/37437.
 1.134 21-Mar-2008  ad branches: 1.134.2;
Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.
 1.133 20-Dec-2007  dsl branches: 1.133.6;
Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
 1.132 08-Dec-2007  dsl branches: 1.132.4;
ANSIfy most of the function definitions in sys/compat (but not ndis).
All by the magic of sed ...
 1.131 04-Dec-2007  dsl Remove all the __P
 1.130 19-Oct-2007  ad branches: 1.130.2; 1.130.4;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.129 30-Jun-2007  dsl branches: 1.129.6; 1.129.8; 1.129.12;
Call fp->f_ops->fo_ioctl() directly (not by sys_ioctl() for LINUX_VT_GETMODE
and LINUX_VT_SETMODE. One fewer use of the stackgap.
 1.128 23-Jun-2007  dsl Read and write the ldt without using the stackgap.
 1.127 13-Jun-2007  christos Get ready for NPTL but don't turn it on as of yet.
 1.126 21-May-2007  christos rename si_sigval -> si_value to match POSIX RTS.
 1.125 10-May-2007  christos - linux uname -m on x86 returns i{3,4,5,6}86 make it so.
- delete the machine sysctl that never worked, and gc linux_machine.
 1.124 16-Apr-2007  ad Share the sysarch stuff between the x86 ports. PR kern/36046.
 1.123 04-Mar-2007  christos branches: 1.123.2; 1.123.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.122 09-Feb-2007  ad branches: 1.122.2;
Merge newlock2 to head.
 1.121 29-Jan-2007  hubertf Remove more duplicate headers.
Patch by Slava Semushin <slava.semushin@gmail.com>

Again, this was tested by comparing obj files from a pristine and a patched
source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs,
src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers
were detected in 'objdump -d' output.
 1.120 26-Dec-2006  elad Adapt to recent machdep scope changes.

Pointed out by Kouichirou Hiratsuka, thanks!
 1.119 16-Nov-2006  christos branches: 1.119.2;
__unused removal on arguments; approved by core.
 1.118 14-Nov-2006  elad Clean some KAUTH_GENERIC_ISSUSER usage in compat code.
 1.117 14-Oct-2006  christos sprinkle __unused.
 1.116 12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.115 13-Sep-2006  christos branches: 1.115.2;
avoid empty if
 1.114 23-Jul-2006  ad branches: 1.114.4;
Use the LWP cached credentials where sane.
 1.113 14-May-2006  elad integrate kauth.
 1.112 11-Dec-2005  christos branches: 1.112.4; 1.112.6; 1.112.8; 1.112.10; 1.112.12;
merge ktrace-lwp.
 1.111 21-Aug-2005  yamt linux_machdepioctl: remove duplicated FILE_USE/UNUSE.
 1.110 25-Jun-2005  christos branches: 1.110.2;
- include <sys/wait.h> so that this compile
- use the code field directly, instead of redoing the logic.
- XXX: the status field must be wrong. I think that the _WSTATUS()
should not be used directly.
 1.109 24-Jun-2005  manu More accurate SIGCHLD code and status for siginfo
 1.108 22-Jun-2005  manu report the right process status
 1.107 20-May-2005  fvdl Define linux_usertrap function, and set it in struct emul. For all
but amd64, it just returns 0, doing nothing.

For amd64, it implements vsyscalls through cheating: if the faulting
address is in the vsyscall area (which is statically known on Linux/amd64),
and the intruction pointer is too, it must have been a vsyscall. In that
case, retrieve the return address from the user stack, fix up %rip and
%rsp, and just execute the normal system call. It will return as if
the vsyscall has been executed.
 1.106 26-Feb-2005  perry branches: 1.106.2;
nuke trailing whitespace
 1.105 13-Nov-2004  christos branches: 1.105.4; 1.105.6;
Remove setup stack function. It moved to linux_exec_machdep.c.
 1.104 13-Nov-2004  christos Add ptyfs pty device number translation.
 1.103 20-Oct-2004  thorpej Move boot device detection code from i386 and amd64 ports to x86_autoconf.c.
Rename i386_alldisks and x86_64_alldisks to x86_alldisks, adjust other
references to compensate.
 1.102 28-Jan-2004  yamt rename i386 mdlwp flags from MDP_ to MDL_
to avoid confusion with mdproc flags which also have MDP_ prefixes.
 1.101 08-Dec-2003  christos remove error(1) comment.
 1.100 06-Oct-2003  christos Catch up with chuck's stack changes. Don't map the linux stuff executable
and avoid mapping segments that have 0 size.
 1.99 25-Sep-2003  christos constify sendsig/trapsignal
 1.98 21-Sep-2003  jdolecek make compile after last change (!)
 1.97 21-Sep-2003  christos Now that we have siginfo, use it, instead of pretending to have one.
 1.96 06-Sep-2003  christos SA_SIGINFO changes
 1.95 24-Aug-2003  chs add support for non-executable mappings (where the hardware allows this)
and make the stack and heap non-executable by default. the changes
fall into two basic catagories:

- pmap and trap-handler changes. these are all MD:
= alpha: we already track per-page execute permission with the (software)
PG_EXEC bit, so just have the trap handler pay attention to it.
= i386: use a new GDT segment for %cs for processes that have no
executable mappings above a certain threshold (currently the
bottom of the stack). track per-page execute permission with
the last unused PTE bit.
= powerpc/ibm4xx: just use the hardware exec bit.
= powerpc/oea: we already track per-page exec bits, but the hardware only
implements non-exec mappings at the segment level. so track the
number of executable mappings in each segment and turn on the no-exec
segment bit iff the count is 0. adjust the trap handler to deal.
= sparc (sun4m): fix our use of the hardware protection bits.
fix the trap handler to recognize text faults.
= sparc64: split the existing unified TSB into data and instruction TSBs,
and only load TTEs into the appropriate TSB(s) for the permissions.
fix the trap handler to check for execute permission.
= not yet implemented: amd64, hppa, sh5

- changes in all the emulations that put a signal trampoline on the stack.
instead, we now put the trampoline into a uvm_aobj and map that into
the process separately.

originally from openbsd, adapted for netbsd by me.
 1.94 21-Aug-2003  hannken Fix syscall_vm86 argument:
struct trapframe -> struct trapframe *
 1.93 09-Aug-2003  christos Explain a diagnostic message a bit better, and make it a debug only message.
 1.92 08-Aug-2003  christos - GC all the setup_stack functions
- add one for linux/i386
 1.91 02-Aug-2003  jdolecek use copyout() instead of subyte()
 1.90 03-Jul-2003  christos Implement linux_rt_sigreturn for real. Add a hack for more plausible siginfo.
The java segv handler still segv's again inside the signal handler, but our
sample test program now works [gets the proper ucontext].
 1.89 29-Jun-2003  fvdl branches: 1.89.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.88 28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.87 21-Mar-2003  dsl Change 'data' argument to fo_ioctl and fo_fcntl from 'caddr_t' to 'void *'.
Avoids a lot of casting and removes the need for some line breaks.
Removed a load of (caddr_t) casts from calls to copyin/copyout as well.
(approved by christos - he has a plan to remove caddr_t...)
 1.86 27-Feb-2003  yamt make compat_linux struct file interlock friendly.
 1.85 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.84 06-Dec-2002  junyoung Fix compile error.
 1.83 06-Dec-2002  christos add a linux_rt_sigframe to support SA_SIGINFO, and use it when SA_SIGINFO
is requested. This appears to be how linuxthreads decides which signal handler
to use.
 1.82 26-Nov-2002  christos rename sa_ -> linux_sa_
first attempt at providing siginfo_t to the signal handler.
 1.81 09-Oct-2002  junyoung Get rid of pcb_flags which is no longer existent.
 1.80 25-Sep-2002  thorpej Don't include <sys/map.h>.
 1.79 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.78 04-Jul-2002  thorpej Add kernel support for having userland provide the signal trampoline:

* struct sigacts gets a new sigact_sigdesc structure, which has the
sigaction and the trampoline/version. Version 0 means "legacy kernel
provided trampoline". Other versions are coordinated with machine-
dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions. Instead,
sendsig() looks up the handler by peeking in the sigacts for the
process getting the signal (since it has to look in there for the
trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later. Kernel
version not bumped; we will ride the 1.6C bump made recently.
 1.77 20-May-2002  jdolecek Fix bug introduced in rev. 1.69 - linux_fakedev() returned always
zero for nontranslated raw devices.
This fixes recently discovered jdb /dev/dsp stdin problem, reported
on current-users by Mark Davies.
 1.76 13-May-2002  simonb branches: 1.76.2;
Remove an unreachable "return 0;".
 1.75 02-Apr-2002  christos save/restore fs and gs; this should be pulled up.
 1.74 31-Mar-2002  christos make signal array handling uniform, and put signal arrays in a separate
file. This is simular to errno array handling.
 1.73 29-Mar-2002  christos 1. fill in the ldt.sd_xx field, for total compat with linux.
2. in setregs, use gdt's instead of ldt's because linux wants to play with
all the ldts. Apparently linuxthreads uses ldt's to allocate space for
pthread_t's.
 1.72 22-Mar-2002  christos sync with current reality and fix debugging.
 1.71 16-Mar-2002  christos make the stackgap_{init,alloc} functions MP friendly (i.e. pass struct proc *
in, instead of using curproc). While there add an optional size argument to
stackgap_init.
 1.70 16-Feb-2002  christos 1. load cr2 now that we have it.
2. ldt_info.base_addr == 0 && ldt_info.limit == 0 means zero the ldt
From Robert V. Barron's wabi patch.
 1.69 15-Feb-2002  christos - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.68 13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.67 02-Aug-2001  thorpej Deal with the SSE FPU save format.
 1.66 15-Jul-2001  jdolecek execute signal handlers on separate signal stack, if it's been provided
 1.65 17-Jun-2001  sommerfeld branches: 1.65.2;
Add %fs/%gs to trap frame and save/restore them on
trap/interrupt/syscall entry from userspace.

Remove special-case "by hand" validation of fs/gs register values as
well as special handling of them in various signal handling paths.

Now, like %ds and %es, they are validated by the hardware on return to
userland.

This paves the way for the use of %fs for per-cpu data on
multiprocessor systems, and fixes an otherwise difficult-to-fix
interaction between threads/clone(2) and USER_LDT.

Discussed in advance with Frank van der Linden.
 1.64 14-Jun-2001  thorpej Fix a partial construction problem that can cause race conditions
between creation of a file descriptor and close(2) when using kernel
assisted threads. What we do is stick descriptors in the table, but
mark them as "larval". This causes essentially everything to treat
it as a non-existent descriptor, except for fdalloc(), which sees a
filled slot so that it won't (incorrectly) allocate it again. When
a descriptor is fully constructed, the code that has constructed it
marks it as "mature" (which actually clears the "larval" flag), and
things continue to work as normal.

While here, gather all the code that gets a descriptor from the table
into a fd_getfile() function, and call it, rather than having the
same (sometimes incorrect) code copied all over the place.
 1.63 30-May-2001  mrg use _KERNEL_OPT.
 1.62 26-Jan-2001  manu branches: 1.62.2;
Moved include <sys/ioctl.h> so that we can build without WSCONS enabled.
 1.61 18-Jan-2001  jdolecek constify
 1.60 18-Jan-2001  fvdl EINVAL -> ENOTTY
 1.59 09-Jan-2001  fvdl Add emulation of KIOCSOUND.
 1.58 29-Dec-2000  fvdl Implement KDGETMODE ioctl.
 1.57 29-Dec-2000  fvdl Under Linux it's possible to return values through the ioctl system
call directly (i.e. not a reference argument, but a direct return
value). So far I have only seen this with binaries that talk
to their own device modules, using non-standard ioctl calls.
Hence, allow for a pass-through ioctl call using PTIOCLINUX to
return EJUSTRETURN, signalling that the return value is in
the 'data' field of the structure, which can then be put in 'retval'.
 1.56 22-Dec-2000  jdolecek split off thread specific stuff from struct sigacts to struct sigctx, leaving
only signal handler array sharable between threads
move other random signal stuff from struct proc to struct sigctx

This addresses kern/10981 by Matthew Orgass.
 1.55 18-Dec-2000  fvdl For unknown ioctls, pass them through to a device using PTIOCLINUX,
so that it may deal with them if it knows them (i.e. LKMs which
deal with Linux binaries).
 1.54 12-Dec-2000  fvdl Allow for passing through of certain ranges of ioctl command values
directly to a device. The device has to be aware of how to handle
with these special ioctls. Useful for LKMs that deal with Linux
binaries.
 1.53 10-Dec-2000  thorpej Fix previous:
- EBADF, not NULL when a file descriptor can't be found.
- Check FIF_WANTCLOSE properly.
 1.52 10-Dec-2000  fvdl Add i386-specific code for a few ioctl calls.
 1.51 29-Nov-2000  jdolecek LKMify
 1.50 11-Jun-2000  veego branches: 1.50.2;
Remove the pcvt support.
 1.49 15-May-2000  jhawk branches: 1.49.2;
Remove conditionization upon XSERVER -- all the code
so conditionalized is already conditionalized on (NWSDISPLAY > 0),
so is wscons-specific. wscons has no conditionalization on XSERVER;
neither should the linux compatibility code.

Removing this is necessary to keep linux X server emulation functionining
after GENERIC rev 1.337 removing "options XSERVER" (relegating it
to the pccons/pcvt-specific, and therefore depricated).
 1.48 30-Mar-2000  augustss Kill register declarations.
 1.47 04-Oct-1999  fvdl branches: 1.47.2;
Handle the newer, larger sigset_t Linux now uses.
 1.46 08-Jan-1999  kleink Rearrange the emulation-specific setregs() entry to set up the FPU control
word *after* calling the native setregs(), which would clobber it again.
 1.45 04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.44 03-Oct-1998  christos Attempt to fix the mess.
 1.43 01-Oct-1998  erh Moved here from arch/i386/i386/linux_machdep.c.
 1.42 11-Sep-1998  mycroft Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
 1.41 11-Jun-1998  drochner Since wscons can support VT_xxx ioctl()s, enable them if NWSDISPLAY > 0.
Implement KDGKBTYPE and KDGKBENT, this will make X servers happy.
 1.40 08-May-1998  kleink Fix some arithmetics lossage on typeless pointers.
 1.39 24-Jan-1998  mycroft Store the initial NPX control word appropriate for the emulation in the saved
FPU state, and use it when initializing the FPU on demand.
 1.38 24-Jan-1998  mycroft Need foo_exec.h.
 1.37 24-Jan-1998  mycroft Add local versions of setregs(), so I can tweak some registers later.
 1.36 22-Jan-1998  thorpej Generate dependencies on the USER_LDT option.
 1.35 15-Jan-1998  thorpej Generate dependencies on the VM86 option.
 1.34 16-Oct-1997  mycroft branches: 1.34.2;
Pull in vmparam.h as necessary.
 1.33 29-Oct-1996  sommerfe branches: 1.33.12;
Workaround for building linux-emulation LKM.
 1.32 13-Oct-1996  christos backout previous kprintf changes
 1.31 12-Oct-1996  thorpej Need <sys/exec.h> for the PS_STRINGS definition.
 1.30 11-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.29 03-May-1996  christos Prototype and gcc -Wall cleanups
 1.28 18-Apr-1996  mycroft Turn off the alignment check flag when entering a signal handler.
 1.27 12-Apr-1996  mycroft Turn off the trace flag when delivering a signal.
 1.26 11-Apr-1996  mycroft Export [gs]et_vflags(), and always use them when saving/restoring registers
in VM86 mode.
Allow changing of *all* PSL bits in VM86 mode; some applications don't work
right otherwise, and all the nasty bits are virtualized anyway.
Make sure PSL_VIF, PSL_VIP, and PSL_VM don't show up in the user's view of
the PSL.
 1.25 08-Mar-1996  mycroft Add a message to help us debug Linux compat.
 1.24 04-Jan-1996  jtc Changed name of sigaltstack's ss_base field to ss_sp to match XPG4.2 and
traditional usage.
 1.23 10-Oct-1995  mycroft Switch to user code and data selectors in the GDT while handling signals.
 1.22 10-Oct-1995  mycroft Add USERMODE() and KERNELMODE() macros, and use them.
 1.21 08-Oct-1995  fvdl Implement the KDGKBMODE ioctl for Linux (possible with pcvt 3.32).
 1.20 07-Oct-1995  mycroft Prefix names of system call implementation functions with `sys_'.
 1.19 19-Sep-1995  thorpej Make system calls conform to a standard prototype and bring those
prototypes into scope.
 1.18 08-Sep-1995  fvdl Fix PR #1445 (incorrect ifdef/else/endif), from Bill Sommerfeld via
John Kohl.
 1.17 07-Sep-1995  fvdl Get notion of VT number right.
 1.16 01-Sep-1995  mycroft SA_ONSTACK --> SS_ONSTACK
 1.15 31-Aug-1995  fvdl Only define some vars (one of pcvt-specific type) when pcvt is configured.
Fixes PR #1424 (from Mike Long)
 1.14 30-Aug-1995  fvdl Remove VT-switch disabling hack now that pcvt handles this.
 1.13 27-Aug-1995  fvdl Add some yucky code to emulate Linux VTs well enough to make svgalib
stuff work reasonably well.
 1.12 14-Aug-1995  mycroft Export bsd_to_linux_sig[], and use it.
 1.11 14-Aug-1995  mycroft Rearrange #includes.
 1.10 24-Jun-1995  christos Stackgap_init() now takes an p->p_emul argument.
 1.9 22-Jun-1995  fvdl Include file change.
 1.8 07-May-1995  mycroft Turn off a debugging printf().
 1.7 07-May-1995  mycroft Improve Linux signal emulation, and emulate the modify_ldt() call.
 1.6 06-May-1995  mycroft Add stub for linux_modify_ldt().
 1.5 01-May-1995  mycroft Fix typos.
 1.4 01-May-1995  mycroft Save and restore %fs and %gs across signals.
 1.3 01-May-1995  mycroft Update to match include files. Eliminate _ucodesel, _udatasel, and IdlePTD.
 1.2 22-Apr-1995  christos - added sunos_machdep.c for sun3, atari, amiga and mac68k.
- changed machdep.c and trap.c to use struct emul.
- remove ep_setup references.
- added struct emul to all emulations.
 1.1 07-Apr-1995  fvdl Changes because of proper Linux signal stackframe building, and
seperate signal trampoline code. Ugly hack in trap.c no longer
needed.
 1.33.12.1 08-Sep-1997  thorpej Significantly restructure the way signal state for a process is stored.
Rather than using bitmasks to redundantly store the information kept
in the process's sigacts (because the sigacts was kept in the u-area),
hang sigacts directly off the process, and access it directly.

Simplify signal setup code tremendously by storing information in
the sigacts as an array of struct sigactions, rather than in a different
format, since userspace uses sigactions.

Make sigacts sharable by adding reference counting.
 1.34.2.1 29-Jan-1998  mellon Pull up 1.37-1.39 (mycroft)
 1.47.2.6 11-Feb-2001  bouyer Sync with HEAD.
 1.47.2.5 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.47.2.4 05-Jan-2001  bouyer Sync with HEAD
 1.47.2.3 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.47.2.2 08-Dec-2000  bouyer Sync with HEAD.
 1.47.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.49.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.50.2.4 03-Apr-2002  he Pull up revision 1.75 (requested by christos):
Fix restoral of %fs / %gs in i386 emulation code.
 1.50.2.3 17-Jun-2001  he Pull up revision 1.65 (requested by sommerfeld):
Add %fs/%gs to trap frame and save/restore them on trap/interupt/
syscall entry from userspace.

Remove special-case ``by hand'' validation of %fs/%gs register
values s well as special handling of them in various signal
handling paths. Now, like %ds and %es, they are validated by
the hardware on return to userland.

This paves the way for the use of %fs for per-cpu data on multi-
processor systems, and fixes an otherwise difficult-to-fix
interaction between threads/clone(2) and USER_LDT.
 1.50.2.2 15-May-2001  he Pull up revision 1.62 (requested by drochner):
Fix a build problem where COMPAT_LINUX is defined, but wscons is
not present. Fixes PR#12886.
 1.50.2.1 30-Mar-2001  he Pull up revisions 1.52-1.60 (via patch, requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.62.2.16 11-Dec-2002  thorpej Sync with HEAD.
 1.62.2.15 18-Oct-2002  nathanw Catch up to -current.
 1.62.2.14 17-Sep-2002  nathanw Catch up to -current.
 1.62.2.13 01-Aug-2002  nathanw Catch up to -current.
 1.62.2.12 12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.62.2.11 24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.62.2.10 20-Jun-2002  nathanw Catch up to -current.
 1.62.2.9 29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.62.2.8 17-Apr-2002  nathanw Catch up to -current.
 1.62.2.7 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.62.2.6 28-Feb-2002  nathanw p->p_addr ==> l->l_addr
 1.62.2.5 28-Feb-2002  nathanw Catch up to -current.
 1.62.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.62.2.3 24-Aug-2001  nathanw Catch up with -current.
 1.62.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.62.2.1 05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.65.2.6 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.65.2.5 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.65.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.65.2.3 16-Mar-2002  jdolecek Catch up with -current.
 1.65.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.65.2.1 03-Aug-2001  lukem update to -current
 1.76.2.3 15-Jul-2002  gehenna catch up with -current.
 1.76.2.2 30-May-2002  gehenna Catch up with -current.
 1.76.2.1 16-May-2002  gehenna Replace the direct-access to devsw table with calling devsw API.
Replace the block major -> name conversion function with devsw API.
 1.89.2.8 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.89.2.7 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.89.2.6 14-Nov-2004  skrll Sync with HEAD.
 1.89.2.5 02-Nov-2004  skrll Sync with HEAD.
 1.89.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.89.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.89.2.2 03-Aug-2004  skrll Sync with HEAD
 1.89.2.1 02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.105.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.105.4.1 29-Apr-2005  kent sync with -current
 1.106.2.1 28-Aug-2005  tron Pull up following revision(s) (requested by yamt in ticket #701):
sys/compat/linux/arch/i386/linux_machdep.c: revision 1.111
linux_machdepioctl: remove duplicated FILE_USE/UNUSE.
 1.110.2.8 24-Mar-2008  yamt sync with head.
 1.110.2.7 21-Jan-2008  yamt sync with head
 1.110.2.6 07-Dec-2007  yamt sync with head
 1.110.2.5 27-Oct-2007  yamt sync with head.
 1.110.2.4 03-Sep-2007  yamt sync with head.
 1.110.2.3 26-Feb-2007  yamt sync with head.
 1.110.2.2 30-Dec-2006  yamt sync with head.
 1.110.2.1 21-Jun-2006  yamt sync with head.
 1.112.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.112.10.3 06-May-2006  christos - Move kauth_cred_t declaration to <sys/types.h>
- Cleanup struct ucred; forward declarations that are unused.
- Don't include <sys/kauth.h> in any header, but include it in the c files
that need it.

Approved by core.
 1.112.10.2 10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.112.10.1 08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.112.8.3 14-Sep-2006  yamt sync with head.
 1.112.8.2 11-Aug-2006  yamt sync with head
 1.112.8.1 24-May-2006  yamt sync with head.
 1.112.6.1 01-Jun-2006  kardel Sync with head.
 1.112.4.1 09-Sep-2006  rpaulo sync with head
 1.114.4.7 01-Feb-2007  ad Sync with head.
 1.114.4.6 30-Jan-2007  ad Remove support for SA. Ok core@.
 1.114.4.5 19-Jan-2007  ad Fix Linux compatability for i386, others to follow later.
 1.114.4.4 18-Jan-2007  yamt linux_restore_sigcontext: fix an unused variable in the case of !VM86.
 1.114.4.3 12-Jan-2007  ad Sync with head.
 1.114.4.2 18-Nov-2006  ad Sync with head.
 1.114.4.1 24-Oct-2006  ad - Redo LWP locking slightly and fix some races.
- Fix some locking botches.
- Make signal mask / stack per-proc for SA processes.
- Add _lwp_kill().
 1.115.2.2 10-Dec-2006  yamt sync with head.
 1.115.2.1 22-Oct-2006  yamt sync with head
 1.119.2.1 06-Jan-2007  bouyer Pull up following revision(s) (requested by elad in ticket #317):
sys/compat/linux/arch/i386/linux_machdep.c: revision 1.120
sys/dev/wscons/wsdisplay_compat_usl.c: revision 1.38
Adapt to recent machdep scope changes.
Pointed out by Kouichirou Hiratsuka, thanks!
 1.122.2.3 17-May-2007  yamt sync with head.
 1.122.2.2 07-May-2007  yamt sync with head.
 1.122.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.123.4.1 11-Jul-2007  mjf Sync with head.
 1.123.2.3 23-Oct-2007  ad Sync with head.
 1.123.2.2 15-Jul-2007  ad Sync with head.
 1.123.2.1 27-May-2007  ad Sync with head.
 1.129.12.1 25-Oct-2007  bouyer Sync with HEAD.
 1.129.8.2 09-Jan-2008  matt sync with HEAD
 1.129.8.1 06-Nov-2007  matt sync with HEAD
 1.129.6.2 09-Dec-2007  jmcneill Sync with HEAD.
 1.129.6.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.130.4.2 26-Dec-2007  ad Sync with head.
 1.130.4.1 08-Dec-2007  ad Sync with head.
 1.130.2.2 27-Dec-2007  mjf Sync with HEAD.
 1.130.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.132.4.1 02-Jan-2008  bouyer Sync with HEAD
 1.133.6.4 17-Jan-2009  mjf Sync with HEAD.
 1.133.6.3 28-Sep-2008  mjf Sync with HEAD.
 1.133.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.133.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.134.2.2 04-Jun-2008  yamt sync with head
 1.134.2.1 18-May-2008  yamt sync with head.
 1.135.2.5 11-Aug-2010  yamt sync with head.
 1.135.2.4 11-Mar-2010  yamt sync with head
 1.135.2.3 20-Jun-2009  yamt sync with head
 1.135.2.2 04-May-2009  yamt sync with head.
 1.135.2.1 16-May-2008  yamt sync with head.
 1.136.2.5 24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.136.2.4 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.136.2.3 14-May-2008  wrstuden Per discussion with ad at n dot o, revert signal mask handling
changes.

The l_sigstk changes are most likely totally un-needed as SA will
never use a signal stack - we send an upcall (or will as other
diffs are brought in).

The l_sigmask changes were too controvertial. In all honesty, I
think it's probably best to revert them. The main reason they were
there is the fact that in an SA process, we don't mask signals per
kernel thread, we mask them per user thread. In the kernel, we want
them all to get turned into upcalls. Thus the normal state of
l_sigmask in an SA process is for it to always be empty.

While we are in the process of delivering a signal, we want to
temporarily mask a signal (so we don't recursively exhaust our
upcall stacks). However signal delivery is rare (important, but
rare), and delivering back-to-back signals is even rarer. So rather
than cause every user of a signal mask to be prepared for this very
rare case, we will just add a second check later in the signal
delivery code. Said change is not in this diff.

This also un-compensates all of our compatability code for dealing
with SA. SA is a NetBSD-specific thing, so there's no need for
Irix, Linux, Solaris, SVR4 and so on to cope with it.

As previously, everything other than kern_sa.c compiles in i386
GENERIC as of this checkin. I will switch to ALL soon for compile
testing.
 1.136.2.2 14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.136.2.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.137.4.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.137.4.1 19-Oct-2008  haad Sync with HEAD.
 1.141.6.2 09-Nov-2008  christos account for major and minor being unsigned long long
 1.141.6.1 25-Oct-2008  christos file linux_machdep.c was added on branch christos-time_t on 2008-11-09 02:05:20 +0000
 1.141.4.1 04-Apr-2009  snj Pull up following revision(s) (requested by ad in ticket #656):
sys/arch/amd64/amd64/gdt.c: revision 1.21 via patch
sys/arch/amd64/amd64/machdep.c: revision 1.129 via patch
sys/arch/i386/i386/gdt.c: revision 1.47 via patch
sys/arch/i386/i386/kvm86.c: revision 1.17 via patch
sys/arch/i386/i386/locore.S: revision 1.85 via patch
sys/arch/i386/i386/machdep.c: revision 1.666 via patch
sys/arch/i386/i386/vector.S: revision 1.45 via patch
sys/arch/i386/include/pcb.h: revision 1.47 via patch
sys/arch/x86/include/pmap.h: revision 1.22 via patch
sys/arch/x86/include/sysarch.h: revision 1.8 via patch
sys/arch/x86/x86/pmap.c: revision 1.80 via patch
sys/arch/x86/x86/sys_machdep.c: revision 1.17 via patch
sys/compat/linux/arch/i386/linux_machdep.c: revision 1.143 via patch
sys/kern/init_main.c: revision 1.384 via patch
PR port-i386/40143 Viewing an mpeg transport stream with mplayer causes crash
Fix numerous problems:
1. LDT updates are not atomic.
2. Number of processes running with private LDTs and/or I/O bitmaps
is not capped. System with high maxprocs can be paniced.
3. LDTR can be leaked over context switch.
4. GDT slot allocations can race, giving the same LDT slot to two procs.
5. Incomplete interrupt/trap frames can be stacked.
6. In some rare cases segment faults are not handled correctly.
 1.141.2.2 28-Apr-2009  skrll Sync with HEAD.
 1.141.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.142.2.2 23-Jul-2009  jym Sync with HEAD.
 1.142.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.148.4.1 05-Mar-2011  rmind sync with head
 1.148.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.149.4.1 05-Mar-2011  bouyer Sync with HEAD
 1.149.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.150.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.150.4.1 17-Apr-2012  yamt sync with head
 1.151.14.1 18-May-2014  rmind sync with head
 1.151.10.2 03-Dec-2017  jdolecek update from HEAD
 1.151.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.158.4.1 17-Jan-2015  martin Pull up following revision(s) (requested by maxv in ticket #427):
sys/compat/svr4/svr4_schedctl.c: revision 1.8
sys/netinet/tcp_timer.c: revision 1.88
sys/miscfs/genfs/layer_vfsops.c: revision 1.45
sys/compat/svr4/svr4_ioctl.c: revision 1.37
sys/ufs/chfs/chfs_vfsops.c: revision 1.14
sys/miscfs/fdesc/fdesc_vfsops.c: revision 1.91
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.30
sys/compat/common/kern_time_50.c: revision 1.28
sys/netinet6/ip6_forward.c: revision 1.74
sys/miscfs/umapfs/umap_vnops.c: revision 1.57
sys/compat/svr4/svr4_fcntl.c: revision 1.74
distrib/sets/lists/comp/mi: revision 1.1931
sys/netinet6/udp6_output.c: revision 1.46
sys/fs/puffs/puffs_compat.c: revision 1.3
sys/fs/udf/udf_rename.c: revision 1.11
sys/compat/svr4/svr4_filio.c: revision 1.24
sys/fs/udf/udf_rename.c: revision 1.12
sys/netinet/tcp_usrreq.c: revision 1.202
sys/miscfs/umapfs/umap_subr.c: revision 1.29
sys/compat/linux/common/linux_fadvise64.c: revision 1.3
sys/netinet/if_atm.c: revision 1.34
sys/miscfs/procfs/procfs_subr.c: revision 1.106
sys/miscfs/genfs/layer_subr.c: revision 1.37
sys/netinet/tcp_sack.c: revision 1.30
sys/compat/freebsd/freebsd_misc.c: revision 1.33
sys/compat/freebsd/freebsd_file.c: revision 1.33
sys/ufs/chfs/chfs_vnode.c: revision 1.12
sys/compat/svr4/svr4_ttold.c: revision 1.34
sys/compat/linux/common/linux_file.c: revision 1.114
sys/compat/linux/arch/mips/linux_machdep.c: revision 1.43
sys/compat/linux/common/linux_signal.c: revision 1.76
sys/compat/common/compat_util.c: revision 1.46
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.18
sys/compat/svr4/svr4_sockio.c: revision 1.36
sys/compat/linux/arch/arm/linux_machdep.c: revision 1.32
sys/compat/svr4/svr4_signal.c: revision 1.66
sys/kern/kern_exec.c: revision 1.410
sys/fs/puffs/puffs_vfsops.c: revision 1.115
sys/compat/svr4/svr4_exec_elf64.c: revision 1.15
sys/compat/linux/arch/i386/linux_machdep.c: revision 1.159
sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.50
sys/compat/linux32/common/linux32_misc.c: revision 1.24
sys/netinet/in_pcb.c: revision 1.153
sys/sys/malloc.h: revision 1.116
sys/compat/common/if_43.c: revision 1.9
share/man/man9/Makefile: revision 1.380
sys/netinet/tcp_vtw.c: revision 1.12
sys/miscfs/umapfs/umap_vfsops.c: revision 1.95
sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.186
sys/compat/common/uipc_syscalls_43.c: revision 1.46
sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.115
sys/fs/puffs/puffs_msgif.c: revision 1.97
sys/compat/svr4/svr4_ipc.c: revision 1.27
sys/compat/linux/common/linux_exec.c: revision 1.117
sys/ufs/ext2fs/ext2fs_readwrite.c: revision 1.66
sys/netinet/tcp_output.c: revision 1.179
sys/compat/svr4/svr4_termios.c: revision 1.28
sys/fs/udf/udf_strat_bootstrap.c: revision 1.4
sys/fs/puffs/puffs_subr.c: revision 1.67
sys/fs/puffs/puffs_node.c: revision 1.36
sys/miscfs/overlay/overlay_vnops.c: revision 1.21
sys/fs/cd9660/cd9660_node.c: revision 1.34
sys/netinet/raw_ip.c: revision 1.146
sys/sys/mallocvar.h: revision 1.13
sys/miscfs/overlay/overlay_vfsops.c: revision 1.63
share/man/man9/malloc.9: revision 1.50
sys/netinet6/dest6.c: revision 1.18
sys/compat/linux/common/linux_uselib.c: revision 1.33
sys/compat/linux/common/linux_socket.c: revision 1.120
share/man/man9/malloc.9: revision 1.51
sys/netinet/tcp_subr.c: revision 1.257
sys/compat/linux/common/linux_socketcall.c: revision 1.45
sys/compat/linux/common/linux_fadvise64_64.c: revision 1.3
sys/compat/freebsd/freebsd_ipc.c: revision 1.17
sys/compat/linux/common/linux_misc_notalpha.c: revision 1.109
sys/compat/linux/arch/alpha/linux_pipe.c: revision 1.17
sys/netinet6/in6_pcb.c: revision 1.132
sys/netinet6/in6_ifattach.c: revision 1.94
sys/compat/svr4/svr4_exec_elf32.c: revision 1.15
sys/miscfs/nullfs/null_vfsops.c: revision 1.90
sys/fs/cd9660/cd9660_util.c: revision 1.12
sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.48
sys/compat/freebsd/freebsd_exec_elf32.c: revision 1.20
sys/miscfs/procfs/procfs_vfsops.c: revision 1.94
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.28
sys/compat/linux/common/linux_sched.c: revision 1.67
sys/compat/linux/common/linux_exec_aout.c: revision 1.67
sys/compat/linux/common/linux_pipe.c: revision 1.67
sys/compat/linux/common/linux_llseek.c: revision 1.34
sys/compat/linux/arch/mips/linux_ptrace.c: revision 1.10
Do not uselessly include <sys/malloc.h>.
Cleanup:
- remove struct kmembuckets (dead)
- correctly deadify MALLOC_XX
- remove MALLOC_DEFINE_LIMIT and MALLOC_JUSTDEFINE_LIMIT (dead)
- remove malloc_roundup(), malloc_type_setlimit(), MALLOC_DEFINE_LIMIT()
and MALLOC_JUSTDEFINE_LIMIT() from man 9 malloc
New sentence, new line. Bump date for previous.
Obsolete malloc_roundup(9), malloc_type_setlimit(9) and MALLOC_DEFINE_LIMIT(9)
man pages.
 1.159.2.3 28-Aug-2017  skrll Sync with HEAD
 1.159.2.2 05-Oct-2016  skrll Sync with HEAD
 1.159.2.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.162.4.1 21-Apr-2017  bouyer Sync with HEAD
 1.162.2.2 20-Mar-2017  pgoyette Sync with HEAD
 1.162.2.1 20-Jul-2016  pgoyette Adapt machine-independant code to the new {b,c}devsw reference-counting
(using localcount(9)). All callers of {b,c}devsw_lookup() now call
{b,c}devsw_lookup_acquire() which retains a reference on the 'struct
{b,c}devsw'. This reference must be released by the caller once it is
finished with the structure's content (or other data that would disappear
if the 'struct {b,c}devsw' were to disappear).
 1.163.6.1 21-Jun-2023  martin Pull up following revision(s) (requested by riastradh in ticket #1836):

sys/compat/linux/arch/i386/linux_machdep.c: revision 1.168
sys/compat/sunos/sunos_misc.c: revision 1.177
sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.52
sys/compat/common/kern_resource_43.c: revision 1.23
sys/compat/netbsd32/netbsd32_conv.h: revision 1.46
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.35
sys/compat/common/vfs_syscalls_12.c: revision 1.38
sys/compat/ultrix/ultrix_misc.c: revision 1.126
sys/compat/common/kern_sig_43.c: revision 1.37
sys/compat/linux/common/linux_mtio.c: revision 1.8
sys/compat/freebsd/freebsd_misc.c: revision 1.34
sys/compat/linux/common/linux_olduname.c: revision 1.67
sys/compat/linux/arch/mips/linux_machdep.c: revision 1.44
sys/compat/freebsd/freebsd_sched.c: revision 1.23
sys/compat/ossaudio/ossaudio.c: revision 1.84
sys/compat/sys/time_types.h: revision 1.6
sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.51
sys/compat/linux/common/linux_file.c: revision 1.119
sys/compat/linux/arch/arm/linux_machdep.c: revision 1.34
sys/compat/netbsd32/netbsd32_wait.c: revision 1.25
sys/compat/linux32/common/linux32_time.c: revision 1.38
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.33
sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.52
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.46
sys/compat/netbsd32/netbsd32_compat_12.c: revision 1.36
sys/compat/ultrix/ultrix_ioctl.c: revision 1.39
sys/compat/linux/common/linux_misc.c: revision 1.252
sys/compat/linux/common/linux_hdio.c: revision 1.19
sys/compat/sunos/sunos_ioctl.c: revision 1.71
sys/compat/linux/common/linux_sched.c: revision 1.79
sys/compat/common/kern_info_43.c: revision 1.40
sys/compat/linux32/common/linux32_exec_elf32.c: revision 1.20
sys/compat/linux/common/linux_socket.c: revision 1.153
sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.60
sys/compat/common/vfs_syscalls_43.c: revision 1.68
sys/compat/linux/arch/powerpc/linux_exec_powerpc.c: revision 1.25
sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.9
sys/compat/common/kern_time_50.c: revision 1.37
sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.42
sys/compat/linux/common/linux_cdrom.c: revision 1.28
sys/compat/linux/arch/m68k/linux_machdep.c: revision 1.43
sys/compat/common/kern_info_09.c: revision 1.22
sys/compat/linux32/common/linux32_resource.c: revision 1.12
sys/compat/linux/common/linux_oldolduname.c: revision 1.67
sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.8
sys/compat/linux32/common/linux32_signal.c: revision 1.21
sys/compat/common/kern_sig_13.c: revision 1.22
sys/compat/sunos32/sunos32_ioctl.c: revision 1.36
sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.62
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.23
sys/compat/netbsd32/netbsd32_time.c: revision 1.56
sys/compat/linux/common/linux_signal.c: revision 1.84
sys/compat/netbsd32/netbsd32_signal.c: revision 1.52
sys/compat/sunos32/sunos32_misc.c: revision 1.85
sys/compat/linux/common/linux_time.c: revision 1.40
sys/compat/linux/common/linux_fdio.c: revision 1.14
sys/compat/common/vfs_syscalls_30.c: revision 1.43

sys/compat: Memset zero before copyout.

Just in case of uninitialized padding which would lead to kernel
stack disclosure. If the compiler can prove the memset redundant
then it can optimize it away; otherwise better safe than sorry.
 1.163.4.1 27-Apr-2017  pgoyette Restore all work from the former pgoyette-localcount branch (which is
now abandoned doe to cvs merge botch).

The branch now builds, and installs via anita. There are still some
problems (cgd is non-functional and all atf tests time-out) but they
will get resolved soon.
 1.165.4.1 10-Jun-2019  christos Sync with HEAD
 1.166.2.1 03-Aug-2022  martin Pull up following revision(s), all via patch
(requested by riastradh in ticket #1487):

sys/compat/linux/arch/i386/linux_machdep.c: revision 1.168
sys/compat/sunos/sunos_misc.c: revision 1.177
sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.52
sys/compat/common/kern_resource_43.c: revision 1.23
sys/compat/netbsd32/netbsd32_conv.h: revision 1.46
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.35
sys/compat/common/vfs_syscalls_12.c: revision 1.38
sys/compat/ultrix/ultrix_misc.c: revision 1.126
sys/compat/common/kern_sig_43.c: revision 1.37
sys/compat/linux/common/linux_mtio.c: revision 1.8
sys/compat/freebsd/freebsd_misc.c: revision 1.34
sys/compat/freebsd/freebsd_machdep.c: revision 1.5
sys/compat/linux/common/linux_olduname.c: revision 1.67
sys/compat/linux/arch/mips/linux_machdep.c: revision 1.44
sys/compat/freebsd/freebsd_sched.c: revision 1.23
sys/compat/ossaudio/ossaudio.c: revision 1.84
sys/compat/sys/time_types.h: revision 1.6
sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.51
sys/compat/common/ieee80211_20.c: revision 1.7
sys/compat/linux/common/linux_file.c: revision 1.119
sys/compat/linux/arch/arm/linux_machdep.c: revision 1.34
sys/compat/netbsd32/netbsd32_wait.c: revision 1.25
sys/compat/linux32/common/linux32_time.c: revision 1.38
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.33
sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.52
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.46
sys/compat/netbsd32/netbsd32_compat_12.c: revision 1.36
sys/compat/ultrix/ultrix_ioctl.c: revision 1.39
sys/compat/linux/common/linux_misc.c: revision 1.252
sys/compat/linux/common/linux_hdio.c: revision 1.19
sys/compat/sunos/sunos_ioctl.c: revision 1.71
sys/compat/linux/common/linux_sched.c: revision 1.79
sys/compat/common/kern_info_43.c: revision 1.40
sys/compat/linux32/common/linux32_exec_elf32.c: revision 1.20
sys/compat/linux/common/linux_socket.c: revision 1.153
sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.60
sys/compat/common/vfs_syscalls_43.c: revision 1.68
sys/compat/linux/arch/powerpc/linux_exec_powerpc.c: revision 1.25
sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.9
sys/compat/common/kern_time_50.c: revision 1.37
sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.42
sys/compat/linux/common/linux_cdrom.c: revision 1.28
sys/compat/linux/arch/m68k/linux_machdep.c: revision 1.43
sys/compat/common/kern_info_09.c: revision 1.22
sys/compat/linux32/common/linux32_resource.c: revision 1.12
sys/compat/linux/common/linux_oldolduname.c: revision 1.67
sys/compat/common/if_media_80.c: revision 1.4
sys/compat/linux/arch/alpha/linux_osf1.c: revision 1.5
sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.8
sys/compat/linux32/common/linux32_signal.c: revision 1.21
sys/compat/common/kern_sig_13.c: revision 1.22
sys/compat/sunos32/sunos32_ioctl.c: revision 1.36
sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.62
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.23
sys/compat/netbsd32/netbsd32_time.c: revision 1.56
sys/compat/linux/common/linux_signal.c: revision 1.84
sys/compat/netbsd32/netbsd32_signal.c: revision 1.52
sys/compat/sunos32/sunos32_misc.c: revision 1.85
sys/compat/linux/common/linux_time.c: revision 1.40
sys/compat/linux/common/linux_fdio.c: revision 1.14
sys/compat/common/vfs_syscalls_30.c: revision 1.43

sys/compat: Memset zero before copyout.

Just in case of uninitialized padding which would lead to kernel
stack disclosure. If the compiler can prove the memset redundant
then it can optimize it away; otherwise better safe than sorry.
 1.37 07-Jul-2010  chs many changes for COMPAT_LINUX:
- update the linux syscall table for each platform.
- support new-style (NPTL) linux pthreads on all platforms.
clone() with CLONE_THREAD uses 1 process with many LWPs
instead of separate processes.
- move the contents of sys__lwp_setprivate() into a new
lwp_setprivate() and use that everywhere.
- update linux_release[] and linux32_release[] to "2.6.18".
- adjust placement of emul fork/exec/exit hooks as needed
and adjust other emul code to match.
- convert all struct emul definitions to use named initializers.
- change the pid allocator to allow multiple pids to refer to the same proc.
- remove a few fields from struct proc that are no longer needed.
- disable the non-functional "vdso" code in linux32/amd64,
glibc works fine without it.
- fix a race in the futex code where we could miss a wakeup after
a requeue operation.
- redo futex locking to be a little more efficient.
 1.36 12-Nov-2008  ad branches: 1.36.6; 1.36.8;
Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.35 26-Oct-2008  christos branches: 1.35.2;
use a symbolic constant instead of 6.
 1.34 25-Oct-2008  christos Add preliminary tls support for i386. Does not work yet. From FreeBSD.
 1.33 28-Apr-2008  martin branches: 1.33.6;
Remove clause 3 and 4 from TNF licenses
 1.32 13-Jun-2007  christos branches: 1.32.28; 1.32.30; 1.32.32;
Get ready for NPTL but don't turn it on as of yet.
 1.31 13-Jun-2007  christos cleanup some bitrot; from Matthew Orgass
 1.30 10-May-2007  christos - linux uname -m on x86 returns i{3,4,5,6}86 make it so.
- delete the machine sysctl that never worked, and gc linux_machine.
 1.29 11-Dec-2005  christos branches: 1.29.26; 1.29.30; 1.29.32;
merge ktrace-lwp.
 1.28 13-Nov-2004  christos branches: 1.28.12;
Add ptyfs pty device number translation.
 1.27 06-Sep-2003  christos SA_SIGINFO changes
 1.26 03-Jul-2003  christos Implement linux_rt_sigreturn for real. Add a hack for more plausible siginfo.
The java segv handler still segv's again inside the signal handler, but our
sample test program now works [gets the proper ucontext].
 1.25 06-Dec-2002  christos branches: 1.25.6;
add a linux_rt_sigframe to support SA_SIGINFO, and use it when SA_SIGINFO
is requested. This appears to be how linuxthreads decides which signal handler
to use.
 1.24 26-Nov-2002  christos rename sa_ -> linux_sa_
first attempt at providing siginfo_t to the signal handler.
 1.23 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.22 04-Jul-2002  thorpej Add kernel support for having userland provide the signal trampoline:

* struct sigacts gets a new sigact_sigdesc structure, which has the
sigaction and the trampoline/version. Version 0 means "legacy kernel
provided trampoline". Other versions are coordinated with machine-
dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions. Instead,
sendsig() looks up the handler by peeking in the sigacts for the
process getting the signal (since it has to look in there for the
trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later. Kernel
version not bumped; we will ride the 1.6C bump made recently.
 1.21 15-Feb-2002  christos branches: 1.21.8;
- add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.20 09-Jan-2001  fvdl branches: 1.20.2; 1.20.4;
Add emulation of KIOCSOUND.
 1.19 29-Dec-2000  fvdl Implement KDGETMODE ioctl.
 1.18 14-Dec-2000  mycroft Some namespace hiding I forgot before.
 1.17 12-Dec-2000  fvdl Allow for passing through of certain ranges of ioctl command values
directly to a device. The device has to be aware of how to handle
with these special ioctls. Useful for LKMs that deal with Linux
binaries.
 1.16 11-Dec-2000  mycroft Introduce 2 new flags in types.h:
* __HAVE_SYSCALL_INTERN. If this is defined, e_syscall is replaced by
e_syscall_intern, which is called at key places in the kernel. This can be
used to set a MD syscall handler pointer. This obsoletes and replaces the
*_HAS_SEPARATED_SYSCALL flags.
* __HAVE_MINIMAL_EMUL. If this is defined, certain (deprecated) elements in
struct emul are omitted.
 1.15 10-Dec-2000  fvdl Add i386-specific code for a few ioctl calls.
 1.14 09-Dec-2000  christos how many different prototypes does linux_syscall() need finally? sheesh!
 1.13 02-Dec-2000  jdolecek if machdep define LINUX_MACHDEP_HAS_SEPARATED_SYSCALL is defined, put
linux_syscall() to emul_linux
define LINUX_MACHDEP_HAS_SEPARATED_SYSCALL for i386
 1.12 11-Jun-2000  veego branches: 1.12.2;
Fix a comment.
 1.11 11-Jun-2000  veego Remove the pcvt support.
 1.10 04-Oct-1999  fvdl branches: 1.10.2; 1.10.10;
Handle the newer, larger sigset_t Linux now uses.
 1.9 04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.8 01-Oct-1998  erh Moved here from arch/i386/include/linux_machdep.h.
 1.7 11-Sep-1998  mycroft Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
 1.6 11-Jun-1998  drochner Since wscons can support VT_xxx ioctl()s, enable them if NWSDISPLAY > 0.
Implement KDGKBTYPE and KDGKBENT, this will make X servers happy.
 1.5 03-May-1996  christos Add missing prototypes.
 1.4 27-Aug-1995  fvdl A couple of definitions added for previous changes.
 1.3 07-May-1995  mycroft Improve Linux signal emulation, and emulate the modify_ldt() call.
 1.2 22-Apr-1995  christos - added sunos_machdep.c for sun3, atari, amiga and mac68k.
- changed machdep.c and trap.c to use struct emul.
- remove ep_setup references.
- added struct emul to all emulations.
 1.1 07-Apr-1995  fvdl Arch dependant defs for Linux. Just signal stackframe definition for now.
 1.10.10.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.10.2.5 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.10.2.4 05-Jan-2001  bouyer Sync with HEAD
 1.10.2.3 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.10.2.2 08-Dec-2000  bouyer Sync with HEAD.
 1.10.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.12.2.1 30-Mar-2001  he Pull up revision 1.14-1.20 (via patch, requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.20.4.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.20.4.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.20.4.1 16-Mar-2002  jdolecek Catch up with -current.
 1.20.2.4 11-Dec-2002  thorpej Sync with HEAD.
 1.20.2.3 17-Sep-2002  nathanw Catch up to -current.
 1.20.2.2 01-Aug-2002  nathanw Catch up to -current.
 1.20.2.1 28-Feb-2002  nathanw Catch up to -current.
 1.21.8.2 15-Jul-2002  gehenna catch up with -current.
 1.21.8.1 16-May-2002  gehenna Remove a hard-coded device major.
 1.25.6.4 14-Nov-2004  skrll Sync with HEAD.
 1.25.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.25.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.25.6.1 03-Aug-2004  skrll Sync with HEAD
 1.28.12.1 03-Sep-2007  yamt sync with head.
 1.29.32.1 11-Jul-2007  mjf Sync with head.
 1.29.30.2 15-Jul-2007  ad Sync with head.
 1.29.30.1 27-May-2007  ad Sync with head.
 1.29.26.1 17-May-2007  yamt sync with head.
 1.32.32.3 11-Aug-2010  yamt sync with head.
 1.32.32.2 04-May-2009  yamt sync with head.
 1.32.32.1 16-May-2008  yamt sync with head.
 1.32.30.1 18-May-2008  yamt sync with head.
 1.32.28.2 17-Jan-2009  mjf Sync with HEAD.
 1.32.28.1 02-Jun-2008  mjf Sync with HEAD.
 1.33.6.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.35.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.36.8.1 05-Mar-2011  rmind sync with head
 1.36.6.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.7 14-Mar-2015  njoly Support Linux MAP_LOCKED mmap flag.
 1.6 28-Apr-2008  martin branches: 1.6.44; 1.6.64;
Remove clause 3 and 4 from TNF licenses
 1.5 11-Dec-2005  christos branches: 1.5.70; 1.5.72; 1.5.74;
merge ktrace-lwp.
 1.4 28-Aug-2004  jdolecek g/c LINUX_MAP_IGNMASK define - it's not used anywhere
 1.3 04-Oct-1998  fvdl branches: 1.3.46;
Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.2 01-Oct-1998  erh Split compat/linux/linux_mmap.h into i386 and common parts.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.3.46.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.46.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.46.1 03-Sep-2004  skrll Sync with HEAD
 1.5.74.1 16-May-2008  yamt sync with head.
 1.5.72.1 18-May-2008  yamt sync with head.
 1.5.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.6.64.1 06-Apr-2015  skrll Sync with HEAD
 1.6.44.1 03-Dec-2017  jdolecek update from HEAD
 1.36 05-Sep-2022  tsutsui G/C ISSET() macro copies. It has been defined in <sys/types.h> since 2006.
 1.35 07-Sep-2021  riastradh sys/compat: Memset zero before copyout.

Just in case of uninitialized padding which would lead to kernel
stack disclosure. If the compiler can prove the memset redundant
then it can optimize it away; otherwise better safe than sorry.
 1.34 23-May-2020  ad Move proc_lock into the data segment. It was dynamically allocated because
at the time we had mutex_obj_alloc() but not __cacheline_aligned.
 1.33 03-Sep-2018  riastradh branches: 1.33.4;
Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.32 28-Aug-2017  kamil branches: 1.32.2; 1.32.4;
Remove the filesystem tracing feature

This is a legacy interface from 4.4BSD, and it was
introduced to overcome shortcomings of ptrace(2) at that time, which are
no longer relevant (performance). Today /proc/#/ctl offers a narrow
subset of ptrace(2) commands and is not applicable for modern
applications use beyond simplistic tracing scenarios.

This removal will simplify kernel internals. Users will still be able to
use all the other /proc files.

This change won't affect other procfs files neither Linux compat
features within mount_procfs(8). /proc/#/ctl isn't available on Linux.

Remove:
- /proc/#/ctl from mount_procfs(8)
- P_FSTRACE note from the documentation of ps(1)
- /proc/#/ctl and filesystem tracing documentation from mount_procfs(8)
- KAUTH_REQ_PROCESS_PROCFS_CTL documentation from kauth(9)
- source code file miscfs/procfs/procfs_ctl.c
- PFSctl and procfs_doctl() from sys/miscfs/procfs/procfs.h
- KAUTH_REQ_PROCESS_PROCFS_CTL from sys/sys/kauth.h
- PSL_FSTRACE (0x00010000) from sys/sys/proc.h
- P_FSTRACE (0x00010000) from sys/sys/sysctl.h

Reduce code complexity after removal of this functionality.

Update TODO.ptrace accordingly: remove two entries about /proc tracing.

Do not keep legacy notes as comments in the headers about removed
PSL_FSTRACE / P_FSTRACE, as this interface had little number of users
(close or equal to zero).

Proposed on tech-kern@.

All filesystem tracing utility users are encouraged to switch to ptrace(2).

Sponsored by <The NetBSD Foundation>
 1.31 13-Oct-2015  pgoyette branches: 1.31.10;
Don't release proc_lock until we're done looking at things that are
protected by the lock, particularly p_stat and p_waited. Found by
Robert Elz.

XXX Pullup to NetBSD-7, -6, -6-0, and -6-1
 1.30 09-Nov-2014  maxv branches: 1.30.2;
Do not uselessly include <sys/malloc.h>.
 1.29 21-Sep-2014  christos fix leak
 1.28 15-Apr-2014  maxv branches: 1.28.2;
There are two times the same branches.

} else if (addr == LUSR_OFF(__signal)) {
error = ENOTSUP;
} else if (addr == LUSR_OFF(__signal)) {
error = ENOTSUP;
}

Just delete one of them. Spotted by my code scanner.

ok christos@
 1.27 04-Jan-2014  dsl branches: 1.27.2;
Remove __HAVE_PROCESS_XFPREGS and add the extra parameter for the size
of the fp save area to all the process_read_fpregs() and
process_write_fpregs() functions.
None of the functions have been modified to use the new parameters.
The size is set for all the writes, but some of the arch-specific reads
just pass NULL.
The amd64 (and i386) need variable sized fp register save areas in order
to support AVX and other enhanced register areas.
These functions are rarely called - so the extra argument won't matter.
 1.26 07-Jul-2010  chs branches: 1.26.8; 1.26.14; 1.26.18; 1.26.20; 1.26.22; 1.26.28;
many changes for COMPAT_LINUX:
- update the linux syscall table for each platform.
- support new-style (NPTL) linux pthreads on all platforms.
clone() with CLONE_THREAD uses 1 process with many LWPs
instead of separate processes.
- move the contents of sys__lwp_setprivate() into a new
lwp_setprivate() and use that everywhere.
- update linux_release[] and linux32_release[] to "2.6.18".
- adjust placement of emul fork/exec/exit hooks as needed
and adjust other emul code to match.
- convert all struct emul definitions to use named initializers.
- change the pid allocator to allow multiple pids to refer to the same proc.
- remove a few fields from struct proc that are no longer needed.
- disable the non-functional "vdso" code in linux32/amd64,
glibc works fine without it.
- fix a race in the futex code where we could miss a wakeup after
a requeue operation.
- redo futex locking to be a little more efficient.
 1.25 01-Jul-2010  rmind Remove pfind() and pgfind(), fix locking in various broken uses of these.
Rename real routines to proc_find() and pgrp_find(), remove PFIND_* flags
and have consistent behaviour. Provide proc_find_raw() for special cases.
Fix memory leak in sysctl_proc_corename().

COMPAT_LINUX: rework ptrace() locking, minimise differences between
different versions per-arch.

Note: while this change adds some formal cosmetics for COMPAT_DARWIN and
COMPAT_IRIX - locking there is utterly broken (for ages).

Fixes PR/43176.
 1.24 21-Oct-2009  rmind branches: 1.24.2; 1.24.4;
Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.
 1.23 17-Dec-2008  cegger kill MALLOC and FREE macros.
 1.22 28-Apr-2008  martin branches: 1.22.2; 1.22.8;
Remove clause 3 and 4 from TNF licenses
 1.21 23-Apr-2008  ad branches: 1.21.2;
Disable bitrotted linux ptrace interfaces, which are likely now a
security hole. Can be re-enabled at runtime. If you want to repair
them please look at the native implementation.
 1.20 20-Dec-2007  dsl branches: 1.20.6; 1.20.8;
Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
 1.19 08-Dec-2007  dsl branches: 1.19.4;
ANSIfy most of the function definitions in sys/compat (but not ndis).
All by the magic of sed ...
 1.18 09-Jul-2007  ad branches: 1.18.6; 1.18.8; 1.18.16;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.17 04-Mar-2007  christos branches: 1.17.2; 1.17.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.16 09-Feb-2007  ad branches: 1.16.2;
Merge newlock2 to head.
 1.15 01-Sep-2006  matt branches: 1.15.2;
When calling PTRACE from an LKM, use sysent[SYS_ptrace].sy_call in case
the sys_ptrace symbol isn't present.
 1.14 30-Aug-2006  matt Update to deal with options PTRACE
 1.13 11-Dec-2005  christos branches: 1.13.4; 1.13.8;
merge ktrace-lwp.
 1.12 26-Feb-2005  perry branches: 1.12.4;
nuke trailing whitespace
 1.11 18-Jan-2003  thorpej branches: 1.11.2; 1.11.10; 1.11.12;
Merge the nathanw_sa branch.
 1.10 08-Dec-2002  junyoung - Rename struct linux_ctx to linux_fpctx.
- KNF.
 1.9 06-Dec-2002  tron Fix namespace collision caused by recent change to "linux_machdep.h".
 1.8 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.7 13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.6 15-May-2001  lukem branches: 1.6.2;
delint: fix comments
 1.5 21-Nov-2000  jdolecek branches: 1.5.2;
implement PTRACE_{GET|SET}FPREGS and framework for PTRACE_{PEEK|POKE}USER

this makes it possible to attach to linux process with linux gdb and
see top-most function on traceback; lower functions are not available,
probably due to bad frame setup
it's not possible to setup breakpoints - Linux gdb uses hw breakpoints,
so support for them would need to be written
 1.4 01-Nov-2000  jdolecek branches: 1.4.2;
move definition of LINUX_PTRACE_{SET|GET}(FP)REGS flags to
sys/compat/linux/common/linux_ptrace.h, they seem to be actually MI
 1.3 16-Dec-1999  tron branches: 1.3.2;
Add support for reading and writing non FPU register with ptrace(2).
 1.2 12-Dec-1999  tron Support a few more request types in ptrace(2) emulation.
 1.1 12-Dec-1999  tron Incomplete but already working emulation of Linux's ptrace(2) for i386.
 1.3.2.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.4.2.3 22-Nov-2000  bouyer Sync with HEAD.
 1.4.2.2 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.4.2.1 01-Nov-2000  bouyer file linux_ptrace.c was added on branch thorpej_scsipi on 2000-11-20 18:08:19 +0000
 1.5.2.6 11-Dec-2002  thorpej Sync with HEAD.
 1.5.2.5 29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.5.2.4 08-Jan-2002  nathanw Catch up to -current.
 1.5.2.3 14-Nov-2001  nathanw Catch up to -current.
 1.5.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.5.2.1 05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.6.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.11.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.11.10.1 29-Apr-2005  kent sync with -current
 1.11.2.1 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.12.4.4 21-Jan-2008  yamt sync with head
 1.12.4.3 03-Sep-2007  yamt sync with head.
 1.12.4.2 26-Feb-2007  yamt sync with head.
 1.12.4.1 30-Dec-2006  yamt sync with head.
 1.13.8.1 03-Sep-2006  yamt sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.15.2.3 30-Jan-2007  ad Remove support for SA. Ok core@.
 1.15.2.2 29-Dec-2006  ad Checkpoint work in progress.
 1.15.2.1 17-Nov-2006  ad Checkpoint work in progress.
 1.16.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.17.4.1 11-Jul-2007  mjf Sync with head.
 1.17.2.1 05-Apr-2007  ad Compile fixes.
 1.18.16.1 26-Dec-2007  ad Sync with head.
 1.18.8.1 09-Jan-2008  matt sync with HEAD
 1.18.6.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.19.4.1 02-Jan-2008  bouyer Sync with HEAD
 1.20.8.1 18-May-2008  yamt sync with head.
 1.20.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.20.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.21.2.4 11-Aug-2010  yamt sync with head.
 1.21.2.3 11-Mar-2010  yamt sync with head
 1.21.2.2 04-May-2009  yamt sync with head.
 1.21.2.1 16-May-2008  yamt sync with head.
 1.22.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.22.2.2 14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.22.2.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.24.4.2 05-Mar-2011  rmind sync with head
 1.24.4.1 03-Jul-2010  rmind sync with head
 1.24.2.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.26.28.1 15-Nov-2015  bouyer Pull up following revision(s) (requested by pgoyette in ticket #1335):
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.31
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.19
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.29
Don't release proc_lock until we're done looking at things that are
protected by the lock, particularly p_stat and p_waited. Found by
Robert Elz.
XXX Pullup to NetBSD-7, -6, -6-0, and -6-1
 1.26.22.1 18-May-2014  rmind sync with head
 1.26.20.1 15-Nov-2015  bouyer Pull up following revision(s) (requested by pgoyette in ticket #1335):
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.31
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.19
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.29
Don't release proc_lock until we're done looking at things that are
protected by the lock, particularly p_stat and p_waited. Found by
Robert Elz.
XXX Pullup to NetBSD-7, -6, -6-0, and -6-1
 1.26.18.2 03-Dec-2017  jdolecek update from HEAD
 1.26.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.26.14.1 15-Nov-2015  bouyer Pull up following revision(s) (requested by pgoyette in ticket #1335):
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.31
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.19
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.29
Don't release proc_lock until we're done looking at things that are
protected by the lock, particularly p_stat and p_waited. Found by
Robert Elz.
XXX Pullup to NetBSD-7, -6, -6-0, and -6-1
 1.26.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.27.2.1 10-Aug-2014  tls Rebase.
 1.28.2.3 05-Nov-2015  snj Pull up following revision(s) (requested by pgoyette in ticket #998):
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.19
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.31
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.29
Don't release proc_lock until we're done looking at things that are
protected by the lock, particularly p_stat and p_waited. Found by
Robert Elz.
 1.28.2.2 17-Jan-2015  martin branches: 1.28.2.2.2;
Pull up following revision(s) (requested by maxv in ticket #427):
sys/compat/svr4/svr4_schedctl.c: revision 1.8
sys/netinet/tcp_timer.c: revision 1.88
sys/miscfs/genfs/layer_vfsops.c: revision 1.45
sys/compat/svr4/svr4_ioctl.c: revision 1.37
sys/ufs/chfs/chfs_vfsops.c: revision 1.14
sys/miscfs/fdesc/fdesc_vfsops.c: revision 1.91
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.30
sys/compat/common/kern_time_50.c: revision 1.28
sys/netinet6/ip6_forward.c: revision 1.74
sys/miscfs/umapfs/umap_vnops.c: revision 1.57
sys/compat/svr4/svr4_fcntl.c: revision 1.74
distrib/sets/lists/comp/mi: revision 1.1931
sys/netinet6/udp6_output.c: revision 1.46
sys/fs/puffs/puffs_compat.c: revision 1.3
sys/fs/udf/udf_rename.c: revision 1.11
sys/compat/svr4/svr4_filio.c: revision 1.24
sys/fs/udf/udf_rename.c: revision 1.12
sys/netinet/tcp_usrreq.c: revision 1.202
sys/miscfs/umapfs/umap_subr.c: revision 1.29
sys/compat/linux/common/linux_fadvise64.c: revision 1.3
sys/netinet/if_atm.c: revision 1.34
sys/miscfs/procfs/procfs_subr.c: revision 1.106
sys/miscfs/genfs/layer_subr.c: revision 1.37
sys/netinet/tcp_sack.c: revision 1.30
sys/compat/freebsd/freebsd_misc.c: revision 1.33
sys/compat/freebsd/freebsd_file.c: revision 1.33
sys/ufs/chfs/chfs_vnode.c: revision 1.12
sys/compat/svr4/svr4_ttold.c: revision 1.34
sys/compat/linux/common/linux_file.c: revision 1.114
sys/compat/linux/arch/mips/linux_machdep.c: revision 1.43
sys/compat/linux/common/linux_signal.c: revision 1.76
sys/compat/common/compat_util.c: revision 1.46
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.18
sys/compat/svr4/svr4_sockio.c: revision 1.36
sys/compat/linux/arch/arm/linux_machdep.c: revision 1.32
sys/compat/svr4/svr4_signal.c: revision 1.66
sys/kern/kern_exec.c: revision 1.410
sys/fs/puffs/puffs_vfsops.c: revision 1.115
sys/compat/svr4/svr4_exec_elf64.c: revision 1.15
sys/compat/linux/arch/i386/linux_machdep.c: revision 1.159
sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.50
sys/compat/linux32/common/linux32_misc.c: revision 1.24
sys/netinet/in_pcb.c: revision 1.153
sys/sys/malloc.h: revision 1.116
sys/compat/common/if_43.c: revision 1.9
share/man/man9/Makefile: revision 1.380
sys/netinet/tcp_vtw.c: revision 1.12
sys/miscfs/umapfs/umap_vfsops.c: revision 1.95
sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.186
sys/compat/common/uipc_syscalls_43.c: revision 1.46
sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.115
sys/fs/puffs/puffs_msgif.c: revision 1.97
sys/compat/svr4/svr4_ipc.c: revision 1.27
sys/compat/linux/common/linux_exec.c: revision 1.117
sys/ufs/ext2fs/ext2fs_readwrite.c: revision 1.66
sys/netinet/tcp_output.c: revision 1.179
sys/compat/svr4/svr4_termios.c: revision 1.28
sys/fs/udf/udf_strat_bootstrap.c: revision 1.4
sys/fs/puffs/puffs_subr.c: revision 1.67
sys/fs/puffs/puffs_node.c: revision 1.36
sys/miscfs/overlay/overlay_vnops.c: revision 1.21
sys/fs/cd9660/cd9660_node.c: revision 1.34
sys/netinet/raw_ip.c: revision 1.146
sys/sys/mallocvar.h: revision 1.13
sys/miscfs/overlay/overlay_vfsops.c: revision 1.63
share/man/man9/malloc.9: revision 1.50
sys/netinet6/dest6.c: revision 1.18
sys/compat/linux/common/linux_uselib.c: revision 1.33
sys/compat/linux/common/linux_socket.c: revision 1.120
share/man/man9/malloc.9: revision 1.51
sys/netinet/tcp_subr.c: revision 1.257
sys/compat/linux/common/linux_socketcall.c: revision 1.45
sys/compat/linux/common/linux_fadvise64_64.c: revision 1.3
sys/compat/freebsd/freebsd_ipc.c: revision 1.17
sys/compat/linux/common/linux_misc_notalpha.c: revision 1.109
sys/compat/linux/arch/alpha/linux_pipe.c: revision 1.17
sys/netinet6/in6_pcb.c: revision 1.132
sys/netinet6/in6_ifattach.c: revision 1.94
sys/compat/svr4/svr4_exec_elf32.c: revision 1.15
sys/miscfs/nullfs/null_vfsops.c: revision 1.90
sys/fs/cd9660/cd9660_util.c: revision 1.12
sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.48
sys/compat/freebsd/freebsd_exec_elf32.c: revision 1.20
sys/miscfs/procfs/procfs_vfsops.c: revision 1.94
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.28
sys/compat/linux/common/linux_sched.c: revision 1.67
sys/compat/linux/common/linux_exec_aout.c: revision 1.67
sys/compat/linux/common/linux_pipe.c: revision 1.67
sys/compat/linux/common/linux_llseek.c: revision 1.34
sys/compat/linux/arch/mips/linux_ptrace.c: revision 1.10
Do not uselessly include <sys/malloc.h>.
Cleanup:
- remove struct kmembuckets (dead)
- correctly deadify MALLOC_XX
- remove MALLOC_DEFINE_LIMIT and MALLOC_JUSTDEFINE_LIMIT (dead)
- remove malloc_roundup(), malloc_type_setlimit(), MALLOC_DEFINE_LIMIT()
and MALLOC_JUSTDEFINE_LIMIT() from man 9 malloc
New sentence, new line. Bump date for previous.
Obsolete malloc_roundup(9), malloc_type_setlimit(9) and MALLOC_DEFINE_LIMIT(9)
man pages.
 1.28.2.1 30-Oct-2014  martin Pull up following revision(s) (requested by maxv in ticket #163):
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.29
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.26
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.27
Fix four memory leaks in compat/linux.
 1.28.2.2.2.1 05-Nov-2015  snj Pull up following revision(s) (requested by pgoyette in ticket #998):
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.19
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.31
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.29
Don't release proc_lock until we're done looking at things that are
protected by the lock, particularly p_stat and p_waited. Found by
Robert Elz.
 1.30.2.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.31.10.2 21-Jun-2023  martin Pull up following revision(s) (requested by riastradh in ticket #1836):

sys/compat/linux/arch/i386/linux_machdep.c: revision 1.168
sys/compat/sunos/sunos_misc.c: revision 1.177
sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.52
sys/compat/common/kern_resource_43.c: revision 1.23
sys/compat/netbsd32/netbsd32_conv.h: revision 1.46
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.35
sys/compat/common/vfs_syscalls_12.c: revision 1.38
sys/compat/ultrix/ultrix_misc.c: revision 1.126
sys/compat/common/kern_sig_43.c: revision 1.37
sys/compat/linux/common/linux_mtio.c: revision 1.8
sys/compat/freebsd/freebsd_misc.c: revision 1.34
sys/compat/linux/common/linux_olduname.c: revision 1.67
sys/compat/linux/arch/mips/linux_machdep.c: revision 1.44
sys/compat/freebsd/freebsd_sched.c: revision 1.23
sys/compat/ossaudio/ossaudio.c: revision 1.84
sys/compat/sys/time_types.h: revision 1.6
sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.51
sys/compat/linux/common/linux_file.c: revision 1.119
sys/compat/linux/arch/arm/linux_machdep.c: revision 1.34
sys/compat/netbsd32/netbsd32_wait.c: revision 1.25
sys/compat/linux32/common/linux32_time.c: revision 1.38
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.33
sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.52
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.46
sys/compat/netbsd32/netbsd32_compat_12.c: revision 1.36
sys/compat/ultrix/ultrix_ioctl.c: revision 1.39
sys/compat/linux/common/linux_misc.c: revision 1.252
sys/compat/linux/common/linux_hdio.c: revision 1.19
sys/compat/sunos/sunos_ioctl.c: revision 1.71
sys/compat/linux/common/linux_sched.c: revision 1.79
sys/compat/common/kern_info_43.c: revision 1.40
sys/compat/linux32/common/linux32_exec_elf32.c: revision 1.20
sys/compat/linux/common/linux_socket.c: revision 1.153
sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.60
sys/compat/common/vfs_syscalls_43.c: revision 1.68
sys/compat/linux/arch/powerpc/linux_exec_powerpc.c: revision 1.25
sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.9
sys/compat/common/kern_time_50.c: revision 1.37
sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.42
sys/compat/linux/common/linux_cdrom.c: revision 1.28
sys/compat/linux/arch/m68k/linux_machdep.c: revision 1.43
sys/compat/common/kern_info_09.c: revision 1.22
sys/compat/linux32/common/linux32_resource.c: revision 1.12
sys/compat/linux/common/linux_oldolduname.c: revision 1.67
sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.8
sys/compat/linux32/common/linux32_signal.c: revision 1.21
sys/compat/common/kern_sig_13.c: revision 1.22
sys/compat/sunos32/sunos32_ioctl.c: revision 1.36
sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.62
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.23
sys/compat/netbsd32/netbsd32_time.c: revision 1.56
sys/compat/linux/common/linux_signal.c: revision 1.84
sys/compat/netbsd32/netbsd32_signal.c: revision 1.52
sys/compat/sunos32/sunos32_misc.c: revision 1.85
sys/compat/linux/common/linux_time.c: revision 1.40
sys/compat/linux/common/linux_fdio.c: revision 1.14
sys/compat/common/vfs_syscalls_30.c: revision 1.43

sys/compat: Memset zero before copyout.

Just in case of uninitialized padding which would lead to kernel
stack disclosure. If the compiler can prove the memset redundant
then it can optimize it away; otherwise better safe than sorry.
 1.31.10.1 12-Apr-2018  martin Pull up following revision(s) (requested by kamil in ticket #713):

sys/modules/procfs/Makefile: revision 1.4
sys/miscfs/procfs/procfs_vfsops.c: revision 1.98
bin/ps/ps.1: revision 1.108
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.32
sys/miscfs/procfs/procfs_vnops.c: revision 1.198
sys/kern/sys_ptrace_common.c: revision 1.23
sys/kern/sys_ptrace_common.c: revision 1.24
sbin/mount_procfs/mount_procfs.8: revision 1.36
sys/kern/sys_ptrace_common.c: revision 1.25
sys/kern/sys_ptrace.c: revision 1.5
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.30
sys/sys/proc.h: revision 1.342
sys/kern/sys_ptrace_common.c: revision 1.26
sys/miscfs/procfs/procfs_ctl.c: file removal
sys/kern/sys_ptrace_common.c: revision 1.27
sys/miscfs/procfs/procfs_subr.c: revision 1.109
sys/kern/sys_ptrace_common.c: revision 1.28
sys/secmodel/extensions/secmodel_extensions.c: revision 1.8
sys/kern/sys_ptrace_common.c: revision 1.29
sys/sys/ptrace.h: revision 1.62
sys/compat/netbsd32/netbsd32_signal.c: revision 1.45
share/man/man9/kauth.9: revision 1.109
sys/miscfs/procfs/files.procfs: revision 1.12
sys/compat/netbsd32/netbsd32.h: revision 1.115
sys/miscfs/procfs/procfs.h: revision 1.72
sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.5
sys/kern/kern_sig.c: revision 1.337
sys/sys/kauth.h: revision 1.75
sys/sys/sysctl.h: revision 1.224
sys/kern/sys_ptrace_common.c: revision 1.30
sys/kern/sys_ptrace_common.c: revision 1.31
sys/kern/sys_ptrace_common.c: revision 1.32
sys/kern/sys_ptrace_common.c: revision 1.33
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.20
sys/kern/sys_ptrace_common.c: revision 1.34
sys/kern/sys_ptrace_common.c: revision 1.36
sys/kern/kern_proc.c: revision 1.207
sys/kern/kern_exit.c: revision 1.269
doc/TODO.ptrace: revision 1.29

Make {s,g}et{db,fp,}regs work again for PK_32 processes
XXX: pullup-8

add disgusting magic to handle compat_netbsd32 as a module.

use process_*reg32 instead of struct *reg32.

Remove the filesystem tracing feature

This is a legacy interface from 4.4BSD, and it was
introduced to overcome shortcomings of ptrace(2) at that time, which are
no longer relevant (performance). Today /proc/#/ctl offers a narrow
subset of ptrace(2) commands and is not applicable for modern
applications use beyond simplistic tracing scenarios.

This removal will simplify kernel internals. Users will still be able to
use all the other /proc files.

This change won't affect other procfs files neither Linux compat
features within mount_procfs(8). /proc/#/ctl isn't available on Linux.

Remove:
- /proc/#/ctl from mount_procfs(8)
- P_FSTRACE note from the documentation of ps(1)
- /proc/#/ctl and filesystem tracing documentation from mount_procfs(8)
- KAUTH_REQ_PROCESS_PROCFS_CTL documentation from kauth(9)
- source code file miscfs/procfs/procfs_ctl.c
- PFSctl and procfs_doctl() from sys/miscfs/procfs/procfs.h
- KAUTH_REQ_PROCESS_PROCFS_CTL from sys/sys/kauth.h
- PSL_FSTRACE (0x00010000) from sys/sys/proc.h
- P_FSTRACE (0x00010000) from sys/sys/sysctl.h

Reduce code complexity after removal of this functionality.

Update TODO.ptrace accordingly: remove two entries about /proc tracing.

Do not keep legacy notes as comments in the headers about removed

PSL_FSTRACE / P_FSTRACE, as this interface had little number of users
(close or equal to zero).
Proposed on tech-kern@.

All filesystem tracing utility users are encouraged to switch to ptrace(2).

Sponsored by <The NetBSD Foundation>

untangle the mess:
- factor out common code
- break each ptrace subcall to its own sub-function
.. more to come ...
- reduce ifdef ugliness by moving it up top.
- factor out PT_IO and make PT_{READ,WRITE}_{I,D} use it
- factor out PT_DUMPCORE
- factor out sendsig code
.. more to come ...

handle siginfo requests for ptrace32

ptrace: Partially undo PT_{READ,WRITE}_{I,D} and unbreak these commands

The refactored code did not work and was generating EFAULT.

Sponsored by <The NetBSD Foundation>

Merge the code back; the problem was that since we are reading/writing
to a kernel address for PT_{READ,WRITE}_{I,D} we need the kernel vmspace.
provide separate read and write functions to accomodate register functions
that need a size argument.

don't ignore error from copyout_piod

Use the proper process (the tracee) to get information about lwps and
registers and the tracer for vmspace.

Add new sysctl(3) entry: security.models.extensions.user_set_dbregs

Model this new sysctl(3) entry after "user_set_cpu_affinity" in the same
level of sysctl(3) switches.

Allow to read unconditionally Debug Registers (no change here). This is
convenient as even if a user of a debugger does not use hardware assisted
watchpoints/breakpoints, a debugger can still prompt these values to store
in an internal cache with context of registers. Reading them should have
no security concerns.

Add a paranoid MI switch that prohibits by default setting these registers
by a regular user (non-superuser). Make this switch disabled by default.
There are enough reserved bits out there to allow using them
unconditionally on hardened hosts.

Features shipped with Debug Registers are optional features in debuggers.
There is no reduction in elementary functionality.

Reviewed by <christos>

Sponsored by <The NetBSD Foundation>
 1.32.4.1 10-Jun-2019  christos Sync with HEAD
 1.32.2.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.33.4.1 03-Aug-2022  martin Pull up following revision(s), all via patch
(requested by riastradh in ticket #1487):

sys/compat/linux/arch/i386/linux_machdep.c: revision 1.168
sys/compat/sunos/sunos_misc.c: revision 1.177
sys/compat/netbsd32/netbsd32_compat_50.c: revision 1.52
sys/compat/common/kern_resource_43.c: revision 1.23
sys/compat/netbsd32/netbsd32_conv.h: revision 1.46
sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.35
sys/compat/common/vfs_syscalls_12.c: revision 1.38
sys/compat/ultrix/ultrix_misc.c: revision 1.126
sys/compat/common/kern_sig_43.c: revision 1.37
sys/compat/linux/common/linux_mtio.c: revision 1.8
sys/compat/freebsd/freebsd_misc.c: revision 1.34
sys/compat/freebsd/freebsd_machdep.c: revision 1.5
sys/compat/linux/common/linux_olduname.c: revision 1.67
sys/compat/linux/arch/mips/linux_machdep.c: revision 1.44
sys/compat/freebsd/freebsd_sched.c: revision 1.23
sys/compat/ossaudio/ossaudio.c: revision 1.84
sys/compat/sys/time_types.h: revision 1.6
sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.51
sys/compat/common/ieee80211_20.c: revision 1.7
sys/compat/linux/common/linux_file.c: revision 1.119
sys/compat/linux/arch/arm/linux_machdep.c: revision 1.34
sys/compat/netbsd32/netbsd32_wait.c: revision 1.25
sys/compat/linux32/common/linux32_time.c: revision 1.38
sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.33
sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.52
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.46
sys/compat/netbsd32/netbsd32_compat_12.c: revision 1.36
sys/compat/ultrix/ultrix_ioctl.c: revision 1.39
sys/compat/linux/common/linux_misc.c: revision 1.252
sys/compat/linux/common/linux_hdio.c: revision 1.19
sys/compat/sunos/sunos_ioctl.c: revision 1.71
sys/compat/linux/common/linux_sched.c: revision 1.79
sys/compat/common/kern_info_43.c: revision 1.40
sys/compat/linux32/common/linux32_exec_elf32.c: revision 1.20
sys/compat/linux/common/linux_socket.c: revision 1.153
sys/compat/linux/arch/amd64/linux_machdep.c: revision 1.60
sys/compat/common/vfs_syscalls_43.c: revision 1.68
sys/compat/linux/arch/powerpc/linux_exec_powerpc.c: revision 1.25
sys/compat/netbsd32/netbsd32_ptrace.c: revision 1.9
sys/compat/common/kern_time_50.c: revision 1.37
sys/compat/netbsd32/netbsd32_compat_20.c: revision 1.42
sys/compat/linux/common/linux_cdrom.c: revision 1.28
sys/compat/linux/arch/m68k/linux_machdep.c: revision 1.43
sys/compat/common/kern_info_09.c: revision 1.22
sys/compat/linux32/common/linux32_resource.c: revision 1.12
sys/compat/linux/common/linux_oldolduname.c: revision 1.67
sys/compat/common/if_media_80.c: revision 1.4
sys/compat/linux/arch/alpha/linux_osf1.c: revision 1.5
sys/compat/netbsd32/netbsd32_nfssvc.c: revision 1.8
sys/compat/linux32/common/linux32_signal.c: revision 1.21
sys/compat/common/kern_sig_13.c: revision 1.22
sys/compat/sunos32/sunos32_ioctl.c: revision 1.36
sys/compat/netbsd32/netbsd32_compat_43.c: revision 1.62
sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.23
sys/compat/netbsd32/netbsd32_time.c: revision 1.56
sys/compat/linux/common/linux_signal.c: revision 1.84
sys/compat/netbsd32/netbsd32_signal.c: revision 1.52
sys/compat/sunos32/sunos32_misc.c: revision 1.85
sys/compat/linux/common/linux_time.c: revision 1.40
sys/compat/linux/common/linux_fdio.c: revision 1.14
sys/compat/common/vfs_syscalls_30.c: revision 1.43

sys/compat: Memset zero before copyout.

Just in case of uninitialized padding which would lead to kernel
stack disclosure. If the compiler can prove the memset redundant
then it can optimize it away; otherwise better safe than sorry.
 1.25 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.24 10-Apr-2002  itojun branches: 1.24.108; 1.24.110; 1.24.112;
revert previous
 1.23 10-Apr-2002  itojun make it compile (missing includes)
 1.22 31-Mar-2002  christos bring the reverse signal mapping array into linux_signo.c
 1.21 31-Mar-2002  christos make signal array handling uniform, and put signal arrays in a separate
file. This is simular to errno array handling.
 1.20 19-Mar-2002  christos - Now that RT-signals fit, fix the array to deliver them. [i386 only].
- jdk-1.4 works perfectly now. :-)
 1.19 13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.18 18-Jan-2001  jdolecek branches: 1.18.2; 1.18.4;
constify
 1.17 04-Oct-1999  fvdl branches: 1.17.2;
Handle the newer, larger sigset_t Linux now uses.
 1.16 04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.15 03-Oct-1998  christos Attempt to fix the mess.
 1.14 01-Oct-1998  erh Split compat/linux/linux_signal.c into i386, common and multi-architecture parts.
 1.13 29-Sep-1998  tv Bracket stray printf()s by #ifdef DEBUG.
 1.12 11-Sep-1998  mycroft Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
 1.11 09-Aug-1998  perry bzero->memset, bcopy->memcpy, bcmp->memcmp
 1.10 04-Apr-1996  christos - Add missing prototypes
- Fix bugs with reversed arguments that prototyping discovered
 1.9 07-Oct-1995  mycroft Prefix names of system call implementation functions with `sys_'.
 1.8 19-Sep-1995  thorpej Make system calls conform to a standard prototype and bring those
prototypes into scope.
 1.7 14-Aug-1995  mycroft Move signal types into signal.h.
 1.6 13-Aug-1995  mycroft Convert SA_NOMASK and SA_ONESHOT.
Clean up this code a bit.
 1.5 24-Jun-1995  christos Use compat_util.[ch].
 1.4 22-Jun-1995  fvdl * Changed to use generic ELF code from kern/exec_elf.c (which was taken
from the svr4 exec code plus the linux compat mods)
* Include file change
* Add multicast sockopts (from John Brezak)
 1.3 10-Mar-1995  fvdl Add the Linux pause() system call. Fix the arguments to sigsuspend().
 1.2 08-Mar-1995  fvdl Fix typo in comment.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.17.2.1 11-Feb-2001  bouyer Sync with HEAD.
 1.18.4.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.18.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.18.2.3 17-Apr-2002  nathanw Catch up to -current.
 1.18.2.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.18.2.1 14-Nov-2001  nathanw Catch up to -current.
 1.24.112.1 16-May-2008  yamt sync with head.
 1.24.110.1 18-May-2008  yamt sync with head.
 1.24.108.1 02-Jun-2008  mjf Sync with HEAD.
 1.8 18-Nov-2011  christos - add sigtimedwait support.
- merge the siginfo population code.
 1.7 23-Nov-2008  njoly branches: 1.7.16;
Move si_code definitions from MD to MI linux_siginfo.h, all archs
(except mips for 3 values) are identical.
While here, remove unused/unneeded LINUX__SI_CODE macro. Only the
lower 16-bits are used for userland si_code.
 1.6 25-Oct-2008  christos branches: 1.6.2;
Add preliminary tls support for i386. Does not work yet. From FreeBSD.
 1.5 28-Apr-2008  martin branches: 1.5.6;
Remove clause 3 and 4 from TNF licenses
 1.4 11-Dec-2005  christos branches: 1.4.70; 1.4.72; 1.4.74;
merge ktrace-lwp.
 1.3 26-Feb-2005  perry nuke trailing whitespace
 1.2 03-Jul-2003  christos branches: 1.2.8; 1.2.10;
Implement linux_rt_sigreturn for real. Add a hack for more plausible siginfo.
The java segv handler still segv's again inside the signal handler, but our
sample test program now works [gets the proper ucontext].
 1.1 05-Sep-2002  christos branches: 1.1.2; 1.1.4; 1.1.10;
Make this match reality [not used yet]
 1.1.10.4 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.1.10.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.10.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.10.1 03-Aug-2004  skrll Sync with HEAD
 1.1.4.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.4.1 05-Sep-2002  jdolecek file linux_siginfo.h was added on branch kqueue on 2002-10-10 18:38:00 +0000
 1.1.2.2 17-Sep-2002  nathanw Catch up to -current.
 1.1.2.1 05-Sep-2002  nathanw file linux_siginfo.h was added on branch nathanw_sa on 2002-09-17 21:19:00 +0000
 1.2.10.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.2.8.1 29-Apr-2005  kent sync with -current
 1.4.74.2 04-May-2009  yamt sync with head.
 1.4.74.1 16-May-2008  yamt sync with head.
 1.4.72.1 18-May-2008  yamt sync with head.
 1.4.70.2 17-Jan-2009  mjf Sync with HEAD.
 1.4.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.6.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.6.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.7.16.1 17-Apr-2012  yamt sync with head
 1.16 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.15 04-Dec-2007  dsl branches: 1.15.12; 1.15.14; 1.15.16;
Remove all the __P
 1.14 11-Dec-2005  christos branches: 1.14.44; 1.14.46; 1.14.52; 1.14.56;
merge ktrace-lwp.
 1.13 19-Sep-2005  christos MINSIGSTKSZ on linux is different depending on the platform and usually
smaller than ours.
 1.12 26-Nov-2002  christos branches: 1.12.6; 1.12.22;
rename sa_ -> linux_sa_
first attempt at providing siginfo_t to the signal handler.
 1.11 19-Mar-2002  christos - Now that RT-signals fit, fix the array to deliver them. [i386 only].
- jdk-1.4 works perfectly now. :-)
 1.10 15-Feb-2002  christos - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.9 23-Aug-2000  christos branches: 1.9.2; 1.9.4;
add support for syscall 186 [sigaltstack]
 1.8 04-Oct-1999  fvdl branches: 1.8.2;
Handle the newer, larger sigset_t Linux now uses.
 1.7 04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.6 01-Oct-1998  erh Split compat/linux/linux_signal.h into i386 and common parts.
 1.5 11-Sep-1998  mycroft Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
 1.4 27-Aug-1995  fvdl Add a hook for MD ioctl calls, plus a couple of more changes to make
svgalib binaries work on the i386
 1.3 14-Aug-1995  mycroft Export bsd_to_linux_sig[], and use it.
 1.2 14-Aug-1995  mycroft Move signal types into signal.h.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.8.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.9.4.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.9.4.1 16-Mar-2002  jdolecek Catch up with -current.
 1.9.2.3 11-Dec-2002  thorpej Sync with HEAD.
 1.9.2.2 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.9.2.1 28-Feb-2002  nathanw Catch up to -current.
 1.12.22.2 07-Dec-2007  yamt sync with head
 1.12.22.1 21-Jun-2006  yamt sync with head.
 1.12.6.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.14.56.1 08-Dec-2007  ad Sync with head.
 1.14.52.1 08-Dec-2007  mjf Sync with HEAD.
 1.14.46.1 09-Jan-2008  matt sync with HEAD
 1.14.44.1 09-Dec-2007  jmcneill Sync with HEAD.
 1.15.16.1 16-May-2008  yamt sync with head.
 1.15.14.1 18-May-2008  yamt sync with head.
 1.15.12.1 02-Jun-2008  mjf Sync with HEAD.
 1.9 25-Jan-2014  njoly Update linux socket socket options (SO_*). Add common version to its
own file (linux_socket_generic.h); use it for all but alpha and mips.
 1.8 28-Apr-2008  martin branches: 1.8.34; 1.8.44; 1.8.50;
Remove clause 3 and 4 from TNF licenses
 1.7 11-Dec-2005  christos branches: 1.7.70; 1.7.72; 1.7.74;
merge ktrace-lwp.
 1.6 26-Jul-2003  jdolecek add LINUX_SO_PEERNAME, LINUX_SO_TIMESTAMP where it has been missing
fix value for LINUX_SO_DETACH_FILTER on couple places (unused anyway)

g/c LINUX_SCM_TIMESTAMP definition for some archs, it will be defined
in generic linux_socket.h
 1.5 04-Oct-1998  fvdl branches: 1.5.46;
Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.4 01-Oct-1998  erh Split linux_socket.h into i386 and common parts.
 1.3 28-May-1995  mycroft Convert TCP socket options.
 1.2 28-May-1995  mycroft Convert IP socket options.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.5.46.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.46.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.46.1 03-Aug-2004  skrll Sync with HEAD
 1.7.74.1 16-May-2008  yamt sync with head.
 1.7.72.1 18-May-2008  yamt sync with head.
 1.7.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.8.50.1 18-May-2014  rmind sync with head
 1.8.44.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.34.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.5 23-Feb-2009  rmind Switch Linux futex emulation to native ucas_int(), remove unecessary
futex-specific assembler routines.

Fixes PR/40490. Reviewed by <ad>.
 1.4 14-Nov-2008  ad branches: 1.4.4; 1.4.6; 1.4.8;
Unneeded ifdef
 1.3 26-Oct-2008  jmcneill branches: 1.3.2; 1.3.4;
Need opt_multiprocessor.h for MULTIPROCESSOR definition.
 1.2 26-Oct-2008  christos multiprocessor fixes, from rmind
 1.1 26-Oct-2008  christos futex support fixes from FreeBSD via cube+pengo.
 1.3.4.1 26-Feb-2009  snj Pull up following revision(s) (requested by rmind in ticket #493):
sys/compat/linux/arch/amd64/files.linux_amd64: revision 1.4
sys/compat/linux/arch/amd64/linux_support.S: file removal
sys/compat/linux/common/linux_futex.c: revision 1.23
sys/compat/linux/arch/i386/linux_support.S: file removal
sys/compat/linux/arch/i386/files.linux_i386: revision 1.10
Switch Linux futex emulation to native ucas_int(), remove unecessary
futex-specific assembler routines.
Fixes PR/40490. Reviewed by <ad>.
 1.3.2.2 03-Mar-2009  skrll Sync with HEAD.
 1.3.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.4.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.4.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.4.6.1 14-Nov-2008  mjf file linux_support.S was added on branch mjf-devfs2 on 2009-01-17 13:28:43 +0000
 1.4.4.2 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.4.4.1 14-Nov-2008  haad file linux_support.S was added on branch haad-dm on 2008-12-13 01:13:53 +0000
 1.129 28-Sep-2024  christos regen
 1.128 01-Jul-2024  christos regen
 1.127 29-Jun-2024  christos branches: 1.127.2;
regen
 1.126 19-Aug-2023  christos regen
 1.125 18-Aug-2023  christos regen
 1.124 29-Jul-2023  christos regen
 1.123 28-Jul-2023  christos regen
 1.122 10-Jul-2023  christos regen
 1.121 02-Dec-2021  ryo regen
 1.120 20-Sep-2021  thorpej Regen for preadv(2) / pwritev(2).
 1.119 20-Sep-2021  thorpej Regen for eventfd.
 1.118 19-Sep-2021  thorpej Regen for timerfd.
 1.117 19-Sep-2021  thorpej Regen for POSIX timer syscalls.
 1.116 26-Apr-2020  thorpej branches: 1.116.2;
Regen for native futex calls.
 1.115 09-Nov-2019  jdolecek regen
 1.114 10-Aug-2018  pgoyette Regen
 1.113 10-May-2017  riastradh branches: 1.113.8; 1.113.10;
regen
 1.112 16-Jan-2017  christos branches: 1.112.4;
regen all
 1.111 13-Jan-2017  christos branches: 1.111.2;
regen
 1.110 02-Jan-2017  martin Regen (something apparently went wrong in previous)
 1.109 02-Jan-2017  manu Regen
 1.108 24-Jul-2016  njoly Regen for readlink/readlinkat signatures.
 1.107 24-Sep-2015  christos branches: 1.107.2;
regen
 1.106 23-Mar-2015  ozaki-r Regen
 1.105 07-Mar-2015  christos regen
 1.104 22-Nov-2014  njoly branches: 1.104.2;
Regen for ppoll signature fix
 1.103 31-May-2014  njoly branches: 1.103.2;
Regen for munmap(2) signature.
 1.102 29-May-2014  njoly Regen for utimes(2) change.
 1.101 20-May-2014  njoly Regen for getgroups/setgroups update.
 1.100 17-May-2014  njoly Regen for fadvise64 offset types changes.
 1.99 04-May-2014  njoly Regen for pread/pwrite 64bit offset argument.
 1.98 08-Apr-2014  njoly Regen.
 1.97 18-Nov-2013  chs branches: 1.97.2;
regen
 1.96 07-Nov-2013  njoly Regen for dup/dup2/dup3 argument types fix.
 1.95 24-Sep-2013  njoly Regen for utimensat(2).
 1.94 08-Apr-2013  pooka branches: 1.94.4;
regen for utimes
 1.93 19-Sep-2012  pooka regen for ppoll (and, apparently, SYCALL_ARG_PTR)
 1.92 18-Nov-2011  christos branches: 1.92.10;
- add sigtimedwait support.
- merge the siginfo population code.
 1.91 30-May-2011  alnsn branches: 1.91.4;
Regenerate files to pick up correct RCS Ids. Suggested by Chris Badura.
 1.90 30-May-2011  alnsn Add fadvise64 and fadvise64_64 syscalls to compat_linux and compat_linux32.
 1.89 10-Apr-2011  christos Regen: Argh:
cat: rumphdr.types: No such file or directory
rm: rumphdr.types: No such file or directory
*** Error code 1
 1.88 07-Jul-2010  chs branches: 1.88.2;
regen
 1.87 23-Apr-2010  chs regen
 1.86 14-Dec-2009  matt branches: 1.86.2; 1.86.4;
Regen (new makesyscalls.sh)
 1.85 24-Nov-2009  njoly Regen for personality(2) update.
 1.84 08-Jun-2009  njoly Regen for rt_queueinfo(2) update.
 1.83 17-Jan-2009  njoly branches: 1.83.2;
Regen for wait4 update.
 1.82 13-Jan-2009  pooka Regen to prove I didn't screw up the conversion: purely RCSID changes.
 1.81 11-Jan-2009  christos merge christos-time_t
 1.80 19-Nov-2008  ad Regen.
 1.79 19-Nov-2008  njoly Regen for futex timeout argument cleanup/fix.
 1.78 12-Nov-2008  njoly Regen for nanosleep(2) fix.
 1.77 26-Oct-2008  christos branches: 1.77.2; 1.77.4;
regen
 1.76 26-Oct-2008  christos regen
 1.75 23-Apr-2008  ad branches: 1.75.2; 1.75.4; 1.75.8;
Regen.
 1.74 04-Apr-2008  njoly branches: 1.74.2;
Regen for linux_sys_msync removal.
 1.73 15-Jan-2008  njoly branches: 1.73.6; 1.73.8;
Regen.
 1.72 24-Dec-2007  njoly Regen for linux_sys_getpgid removal.
 1.71 21-Dec-2007  njoly Regen for getfsuid/setfsgid syscall exchange.
 1.70 20-Dec-2007  dsl regen
 1.69 16-Nov-2007  njoly branches: 1.69.2; 1.69.6;
Regen, for syscalls cleanup.
 1.68 13-Jun-2007  christos branches: 1.68.6; 1.68.8; 1.68.12; 1.68.14;
regen
 1.67 13-Jun-2007  christos regen.
 1.66 04-Mar-2007  christos branches: 1.66.2; 1.66.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.65 01-Sep-2006  matt branches: 1.65.8;
Regen.
 1.64 30-Aug-2006  matt Regen
 1.63 10-Jun-2006  christos regen
 1.62 11-Dec-2005  christos branches: 1.62.4; 1.62.8; 1.62.14;
merge ktrace-lwp.
 1.61 06-Nov-2005  manu regen
 1.60 06-Nov-2005  tron Regen with correct RCS Ids.
 1.59 05-Nov-2005  dogcow mirror manu's amd64 changes to implement linux sched_{seg,get}affinity;
the kernel and linux lkm now compile again.
 1.58 18-Oct-2005  joerg Regen.
 1.57 16-May-2005  fvdl branches: 1.57.2;
Regen.
 1.56 16-May-2005  fvdl Regen.
 1.55 26-Feb-2005  perry regen
 1.54 20-Sep-2004  jdolecek branches: 1.54.4; 1.54.6;
regen:
implement support for Linux statfs64() syscall - 64bit variant of statfs()
 1.53 08-Sep-2004  jdolecek regen: add exit_group(2)
 1.52 01-Aug-2004  jdolecek regen - sync syscall lists with Linux kernel 2.6.7
 1.51 01-Aug-2004  jdolecek regen:

connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.50 01-Aug-2004  jdolecek connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.49 10-Aug-2003  jdolecek regen - added wrapper for Linux ftruncate64()
 1.48 03-Jul-2003  christos Regen.
 1.47 23-Jun-2003  christos branches: 1.47.2;
Regen.
 1.46 18-Jan-2003  thorpej Regen for correct RCS IDs.
 1.45 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.44 10-Apr-2002  christos branches: 1.44.4;
regen
 1.43 22-Mar-2002  christos regen
 1.42 15-Feb-2002  christos regen
 1.41 15-Feb-2002  christos - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.40 13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.39 30-Sep-2001  manu Fixes my last commit: only mips really need fcntl64 to work now. i386 and
powerpc could use it later if needed. m68k and alpha should never need it.
 1.38 30-May-2001  mrg branches: 1.38.2; 1.38.4;
use _KERNEL_OPT.
 1.37 13-May-2001  manu Improved the accuracy of gettimeofday/settimeofday: Linux stores a srtuct
timezone in the kernel. We now keep track of it for emulated processes.
Tested for powerpc and i386. Untested on m68k, but it should be ok
Alpha has a particular implementation (osf1_sys_gettimeofday), and it has
therefore not been touched.
 1.36 30-Mar-2001  jdolecek regen
 1.35 30-Mar-2001  jdolecek regen
 1.34 27-Jan-2001  thorpej branches: 1.34.2;
Regen; getpid(2) is MP-safe.
 1.33 27-Jan-2001  thorpej Regen; add sy_flags.
 1.32 29-Dec-2000  fvdl Regen.
 1.31 27-Dec-2000  fvdl Regen.
 1.30 18-Dec-2000  fvdl Regen.
 1.29 13-Dec-2000  augustss Regen.
 1.28 12-Dec-2000  jdolecek regen
 1.27 12-Dec-2000  jdolecek regen
 1.26 11-Dec-2000  mycroft Regen.
 1.25 09-Dec-2000  jdolecek regen
 1.24 09-Dec-2000  mycroft Regen.
 1.23 02-Dec-2000  jdolecek regen after addition of linux_sys_swapoff()
 1.22 01-Dec-2000  jdolecek regen
 1.21 01-Nov-2000  jdolecek regen
 1.20 23-Aug-2000  christos regen
 1.19 18-Aug-2000  cgd update for changed makesyscalls.master
 1.18 18-Aug-2000  cgd update for new makesyscalls.sh, and also for correct ids for changed
syscalls.master files. (you need to regenerate after checking in
syscalls.master to get the correct ids.)
 1.17 18-Mar-2000  erh branches: 1.17.4;
Regen.
 1.16 03-Feb-2000  abs regen
 1.15 12-Dec-1999  tron Regen.
 1.14 05-Dec-1999  tron Regen.
 1.13 04-Dec-1999  tron Regen.
 1.12 04-Oct-1999  tron branches: 1.12.2; 1.12.8;
Regen from "syscalls.master".
 1.11 16-Aug-1999  tron Regen.
 1.10 14-May-1999  thorpej Regen.
 1.9 13-May-1999  thorpej Regen.
 1.8 30-Mar-1999  abs branches: 1.8.2; 1.8.4;
Regenerate (with poll())
 1.7 27-Mar-1999  tron Regen.
 1.6 23-Mar-1999  thorpej Regen; pread(2) and pwrite(2).
 1.5 09-Feb-1999  christos Regen
 1.4 10-Dec-1998  christos Regen
 1.3 04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.2 03-Oct-1998  christos Attempt to fix the mess.
 1.1 01-Oct-1998  erh Regen.
 1.8.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.8.2.2 15-Aug-2000  he Pull up regenerated files (requested by abs):
Enable basic versions of Linux fsuid calls.
 1.8.2.1 31-Jan-2000  he Pull up generated files (requested by abs):
Enable emulation of vfork(2).
 1.12.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.12.2.7 21-Apr-2001  bouyer Sync with HEAD
 1.12.2.6 11-Feb-2001  bouyer Sync with HEAD.
 1.12.2.5 05-Jan-2001  bouyer Sync with HEAD
 1.12.2.4 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.12.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.12.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.12.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.17.4.2 01-May-2001  he Pull up regenerated files (requested by jdolecek):
Make it possible to use a different function for unimplemented
syscalls than sys_nosys(), so that the Linux emulation can avoid
posting SIGSYS and instead just return ENOSYS.
 1.17.4.1 30-Mar-2001  he Pull up regenerated files (requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.34.2.9 29-May-2002  nathanw Regen.
 1.34.2.8 17-Apr-2002  nathanw Catch up to -current.
 1.34.2.7 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.34.2.6 28-Feb-2002  nathanw Catch up to -current.
 1.34.2.5 14-Nov-2001  nathanw Catch up to -current.
 1.34.2.4 08-Oct-2001  nathanw Catch up to -current.
 1.34.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.34.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.34.2.1 05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.38.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.38.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.38.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.38.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.44.4.3 14-Jun-2004  jmc Regen for changes in ticket #1708
 1.44.4.2 11-May-2004  tron Regen for ticket 1686.
 1.44.4.1 22-Oct-2003  jmc Regen files (requested by tv in ticket #1427)

Proper support for mmap2
 1.47.2.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.47.2.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.47.2.4 24-Sep-2004  skrll Sync with HEAD.
 1.47.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.47.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.47.2.1 03-Aug-2004  skrll Sync with HEAD
 1.54.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.54.4.1 29-Apr-2005  kent sync with -current
 1.57.2.5 21-Jan-2008  yamt sync with head
 1.57.2.4 07-Dec-2007  yamt sync with head
 1.57.2.3 03-Sep-2007  yamt sync with head.
 1.57.2.2 30-Dec-2006  yamt sync with head.
 1.57.2.1 21-Jun-2006  yamt sync with head.
 1.62.14.1 19-Jun-2006  chap Sync with head.
 1.62.8.2 03-Sep-2006  yamt sync with head.
 1.62.8.1 26-Jun-2006  yamt sync with head.
 1.62.4.1 09-Sep-2006  rpaulo sync with head
 1.65.8.1 12-Mar-2007  rmind Sync with HEAD.
 1.66.4.1 11-Jul-2007  mjf Sync with head.
 1.66.2.1 15-Jul-2007  ad Sync with head.
 1.68.14.3 18-Feb-2008  mjf Sync with HEAD.
 1.68.14.2 27-Dec-2007  mjf Sync with HEAD.
 1.68.14.1 19-Nov-2007  mjf Sync with HEAD.
 1.68.12.1 18-Nov-2007  bouyer Sync with HEAD
 1.68.8.2 23-Mar-2008  matt sync with HEAD
 1.68.8.1 09-Jan-2008  matt sync with HEAD
 1.68.6.1 21-Nov-2007  joerg Sync with HEAD.
 1.69.6.2 19-Jan-2008  bouyer Sync with HEAD
 1.69.6.1 02-Jan-2008  bouyer Sync with HEAD
 1.69.2.1 26-Dec-2007  ad Sync with head.
 1.73.8.3 20-Nov-2008  christos merge with head.
 1.73.8.2 01-Nov-2008  christos Sync with head.
 1.73.8.1 29-Mar-2008  christos Welcome to the time_t=long long dev_t=uint64_t branch.
 1.73.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.73.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.74.2.1 18-May-2008  yamt sync with head.
 1.75.8.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.75.4.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.75.2.4 11-Aug-2010  yamt sync with head.
 1.75.2.3 11-Mar-2010  yamt sync with head
 1.75.2.2 20-Jun-2009  yamt sync with head
 1.75.2.1 04-May-2009  yamt sync with head.
 1.77.4.1 20-Nov-2008  snj Regen for ticket 81.
 1.77.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.83.2.1 23-Jul-2009  jym Sync with HEAD.
 1.86.4.4 31-May-2011  rmind sync with head
 1.86.4.3 21-Apr-2011  rmind sync with head
 1.86.4.2 05-Mar-2011  rmind sync with head
 1.86.4.1 30-May-2010  rmind sync with head
 1.86.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.86.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.88.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.91.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.91.4.2 30-Oct-2012  yamt sync with head
 1.91.4.1 17-Apr-2012  yamt sync with head
 1.92.10.4 03-Dec-2017  jdolecek update from HEAD
 1.92.10.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.92.10.2 23-Jun-2013  tls resync from head
 1.92.10.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.94.4.1 18-May-2014  rmind sync with head
 1.97.2.1 10-Aug-2014  tls Rebase.
 1.103.2.1 17-Apr-2017  snj regen for ticket 1354
 1.104.2.3 05-Feb-2017  skrll Sync with HEAD
 1.104.2.2 05-Oct-2016  skrll Sync with HEAD
 1.104.2.1 06-Apr-2015  skrll Sync with HEAD
 1.107.2.3 20-Mar-2017  pgoyette Sync with HEAD
 1.107.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.107.2.1 26-Jul-2016  pgoyette Sync with HEAD
 1.111.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.112.4.1 11-May-2017  pgoyette Sync with HEAD
 1.113.10.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.113.10.1 10-Jun-2019  christos Sync with HEAD
 1.113.8.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.116.2.2 17-Dec-2020  thorpej Regen for preadv(2) and pwritev(2).
 1.116.2.1 15-Dec-2020  thorpej Regen for eventfd, timerfd, POSIX timers.
 1.127.2.1 02-Aug-2025  perseant Sync with HEAD
 1.129 28-Sep-2024  christos regen
 1.128 01-Jul-2024  christos regen
 1.127 29-Jun-2024  christos branches: 1.127.2;
regen
 1.126 19-Aug-2023  christos regen
 1.125 18-Aug-2023  christos regen
 1.124 29-Jul-2023  christos regen
 1.123 28-Jul-2023  christos regen
 1.122 10-Jul-2023  christos regen
 1.121 02-Dec-2021  ryo regen
 1.120 20-Sep-2021  thorpej Regen for preadv(2) / pwritev(2).
 1.119 20-Sep-2021  thorpej Regen for eventfd.
 1.118 19-Sep-2021  thorpej Regen for timerfd.
 1.117 19-Sep-2021  thorpej Regen for POSIX timer syscalls.
 1.116 26-Apr-2020  thorpej branches: 1.116.2;
Regen for native futex calls.
 1.115 09-Nov-2019  jdolecek regen
 1.114 10-Aug-2018  pgoyette Regen
 1.113 10-May-2017  riastradh branches: 1.113.8; 1.113.10;
regen
 1.112 16-Jan-2017  christos branches: 1.112.4;
regen all
 1.111 13-Jan-2017  christos branches: 1.111.2;
regen
 1.110 02-Jan-2017  martin Regen (something apparently went wrong in previous)
 1.109 02-Jan-2017  manu Regen
 1.108 24-Jul-2016  njoly Regen for readlink/readlinkat signatures.
 1.107 24-Sep-2015  christos branches: 1.107.2;
regen
 1.106 23-Mar-2015  ozaki-r Regen
 1.105 07-Mar-2015  christos regen
 1.104 22-Nov-2014  njoly branches: 1.104.2;
Regen for ppoll signature fix
 1.103 31-May-2014  njoly branches: 1.103.2;
Regen for munmap(2) signature.
 1.102 29-May-2014  njoly Regen for utimes(2) change.
 1.101 20-May-2014  njoly Regen for getgroups/setgroups update.
 1.100 17-May-2014  njoly Regen for fadvise64 offset types changes.
 1.99 04-May-2014  njoly Regen for pread/pwrite 64bit offset argument.
 1.98 08-Apr-2014  njoly Regen.
 1.97 18-Nov-2013  chs branches: 1.97.2;
regen
 1.96 07-Nov-2013  njoly Regen for dup/dup2/dup3 argument types fix.
 1.95 24-Sep-2013  njoly Regen for utimensat(2).
 1.94 08-Apr-2013  pooka branches: 1.94.4;
regen for utimes
 1.93 19-Sep-2012  pooka regen for ppoll (and, apparently, SYCALL_ARG_PTR)
 1.92 18-Nov-2011  christos branches: 1.92.10;
- add sigtimedwait support.
- merge the siginfo population code.
 1.91 30-May-2011  alnsn branches: 1.91.4;
Regenerate files to pick up correct RCS Ids. Suggested by Chris Badura.
 1.90 30-May-2011  alnsn Add fadvise64 and fadvise64_64 syscalls to compat_linux and compat_linux32.
 1.89 10-Apr-2011  christos Regen: Argh:
cat: rumphdr.types: No such file or directory
rm: rumphdr.types: No such file or directory
*** Error code 1
 1.88 07-Jul-2010  chs branches: 1.88.2;
regen
 1.87 23-Apr-2010  chs regen
 1.86 14-Dec-2009  matt branches: 1.86.2; 1.86.4;
Regen (new makesyscalls.sh)
 1.85 24-Nov-2009  njoly Regen for personality(2) update.
 1.84 08-Jun-2009  njoly Regen for rt_queueinfo(2) update.
 1.83 17-Jan-2009  njoly branches: 1.83.2;
Regen for wait4 update.
 1.82 13-Jan-2009  pooka Regen to prove I didn't screw up the conversion: purely RCSID changes.
 1.81 11-Jan-2009  christos merge christos-time_t
 1.80 19-Nov-2008  ad Regen.
 1.79 19-Nov-2008  njoly Regen for futex timeout argument cleanup/fix.
 1.78 12-Nov-2008  njoly Regen for nanosleep(2) fix.
 1.77 26-Oct-2008  christos branches: 1.77.2; 1.77.4;
regen
 1.76 26-Oct-2008  christos regen
 1.75 23-Apr-2008  ad branches: 1.75.2; 1.75.4; 1.75.8;
Regen.
 1.74 04-Apr-2008  njoly branches: 1.74.2;
Regen for linux_sys_msync removal.
 1.73 15-Jan-2008  njoly branches: 1.73.6; 1.73.8;
Regen.
 1.72 24-Dec-2007  njoly Regen for linux_sys_getpgid removal.
 1.71 21-Dec-2007  njoly Regen for getfsuid/setfsgid syscall exchange.
 1.70 20-Dec-2007  dsl regen
 1.69 16-Nov-2007  njoly branches: 1.69.2; 1.69.6;
Regen, for syscalls cleanup.
 1.68 13-Jun-2007  christos branches: 1.68.6; 1.68.8; 1.68.12; 1.68.14;
regen
 1.67 13-Jun-2007  christos regen.
 1.66 04-Mar-2007  christos branches: 1.66.2; 1.66.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.65 01-Sep-2006  matt branches: 1.65.8;
Regen.
 1.64 30-Aug-2006  matt Regen
 1.63 10-Jun-2006  christos regen
 1.62 11-Dec-2005  christos branches: 1.62.4; 1.62.8; 1.62.14;
merge ktrace-lwp.
 1.61 06-Nov-2005  manu regen
 1.60 06-Nov-2005  tron Regen with correct RCS Ids.
 1.59 05-Nov-2005  dogcow mirror manu's amd64 changes to implement linux sched_{seg,get}affinity;
the kernel and linux lkm now compile again.
 1.58 18-Oct-2005  joerg Regen.
 1.57 16-May-2005  fvdl branches: 1.57.2;
Regen.
 1.56 16-May-2005  fvdl Regen.
 1.55 26-Feb-2005  perry regen
 1.54 20-Sep-2004  jdolecek branches: 1.54.4; 1.54.6;
regen:
implement support for Linux statfs64() syscall - 64bit variant of statfs()
 1.53 08-Sep-2004  jdolecek regen: add exit_group(2)
 1.52 01-Aug-2004  jdolecek regen - sync syscall lists with Linux kernel 2.6.7
 1.51 01-Aug-2004  jdolecek regen:

connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.50 01-Aug-2004  jdolecek connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.49 10-Aug-2003  jdolecek regen - added wrapper for Linux ftruncate64()
 1.48 03-Jul-2003  christos Regen.
 1.47 23-Jun-2003  christos branches: 1.47.2;
Regen.
 1.46 18-Jan-2003  thorpej Regen for correct RCS IDs.
 1.45 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.44 10-Apr-2002  christos branches: 1.44.4;
regen
 1.43 22-Mar-2002  christos regen
 1.42 15-Feb-2002  christos regen
 1.41 15-Feb-2002  christos - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.40 13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.39 30-Sep-2001  manu Fixes my last commit: only mips really need fcntl64 to work now. i386 and
powerpc could use it later if needed. m68k and alpha should never need it.
 1.38 30-May-2001  mrg branches: 1.38.2; 1.38.4;
use _KERNEL_OPT.
 1.37 13-May-2001  manu Improved the accuracy of gettimeofday/settimeofday: Linux stores a srtuct
timezone in the kernel. We now keep track of it for emulated processes.
Tested for powerpc and i386. Untested on m68k, but it should be ok
Alpha has a particular implementation (osf1_sys_gettimeofday), and it has
therefore not been touched.
 1.36 30-Mar-2001  jdolecek regen
 1.35 30-Mar-2001  jdolecek regen
 1.34 27-Jan-2001  thorpej branches: 1.34.2;
Regen; getpid(2) is MP-safe.
 1.33 27-Jan-2001  thorpej Regen; add sy_flags.
 1.32 29-Dec-2000  fvdl Regen.
 1.31 27-Dec-2000  fvdl Regen.
 1.30 18-Dec-2000  fvdl Regen.
 1.29 13-Dec-2000  augustss Regen.
 1.28 12-Dec-2000  jdolecek regen
 1.27 12-Dec-2000  jdolecek regen
 1.26 11-Dec-2000  mycroft Regen.
 1.25 09-Dec-2000  jdolecek regen
 1.24 09-Dec-2000  mycroft Regen.
 1.23 02-Dec-2000  jdolecek regen after addition of linux_sys_swapoff()
 1.22 01-Dec-2000  jdolecek regen
 1.21 01-Nov-2000  jdolecek regen
 1.20 23-Aug-2000  christos regen
 1.19 18-Aug-2000  cgd update for changed makesyscalls.master
 1.18 18-Aug-2000  cgd update for new makesyscalls.sh, and also for correct ids for changed
syscalls.master files. (you need to regenerate after checking in
syscalls.master to get the correct ids.)
 1.17 18-Mar-2000  erh branches: 1.17.4;
Regen.
 1.16 03-Feb-2000  abs regen
 1.15 12-Dec-1999  tron Regen.
 1.14 05-Dec-1999  tron Regen.
 1.13 04-Dec-1999  tron Regen.
 1.12 04-Oct-1999  tron branches: 1.12.2; 1.12.8;
Regen from "syscalls.master".
 1.11 16-Aug-1999  tron Regen.
 1.10 14-May-1999  thorpej Regen.
 1.9 13-May-1999  thorpej Regen.
 1.8 30-Mar-1999  abs branches: 1.8.2; 1.8.4;
Regenerate (with poll())
 1.7 27-Mar-1999  tron Regen.
 1.6 23-Mar-1999  thorpej Regen; pread(2) and pwrite(2).
 1.5 09-Feb-1999  christos Regen
 1.4 10-Dec-1998  christos Regen
 1.3 04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.2 03-Oct-1998  christos Attempt to fix the mess.
 1.1 01-Oct-1998  erh Regen.
 1.8.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.8.2.2 15-Aug-2000  he Pull up regenerated files (requested by abs):
Enable basic versions of Linux fsuid calls.
 1.8.2.1 31-Jan-2000  he Pull up generated files (requested by abs):
Enable emulation of vfork(2).
 1.12.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.12.2.7 21-Apr-2001  bouyer Sync with HEAD
 1.12.2.6 11-Feb-2001  bouyer Sync with HEAD.
 1.12.2.5 05-Jan-2001  bouyer Sync with HEAD
 1.12.2.4 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.12.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.12.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.12.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.17.4.2 01-May-2001  he Pull up regenerated files (requested by jdolecek):
Make it possible to use a different function for unimplemented
syscalls than sys_nosys(), so that the Linux emulation can avoid
posting SIGSYS and instead just return ENOSYS.
 1.17.4.1 30-Mar-2001  he Pull up regenerated files (requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.34.2.9 29-May-2002  nathanw Regen.
 1.34.2.8 17-Apr-2002  nathanw Catch up to -current.
 1.34.2.7 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.34.2.6 28-Feb-2002  nathanw Catch up to -current.
 1.34.2.5 14-Nov-2001  nathanw Catch up to -current.
 1.34.2.4 08-Oct-2001  nathanw Catch up to -current.
 1.34.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.34.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.34.2.1 05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.38.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.38.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.38.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.38.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.44.4.3 14-Jun-2004  jmc Regen for changes in ticket #1708
 1.44.4.2 11-May-2004  tron Regen for ticket 1686.
 1.44.4.1 22-Oct-2003  jmc Regen files (requested by tv in ticket #1427)

Proper support for mmap2
 1.47.2.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.47.2.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.47.2.4 24-Sep-2004  skrll Sync with HEAD.
 1.47.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.47.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.47.2.1 03-Aug-2004  skrll Sync with HEAD
 1.54.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.54.4.1 29-Apr-2005  kent sync with -current
 1.57.2.5 21-Jan-2008  yamt sync with head
 1.57.2.4 07-Dec-2007  yamt sync with head
 1.57.2.3 03-Sep-2007  yamt sync with head.
 1.57.2.2 30-Dec-2006  yamt sync with head.
 1.57.2.1 21-Jun-2006  yamt sync with head.
 1.62.14.1 19-Jun-2006  chap Sync with head.
 1.62.8.2 03-Sep-2006  yamt sync with head.
 1.62.8.1 26-Jun-2006  yamt sync with head.
 1.62.4.1 09-Sep-2006  rpaulo sync with head
 1.65.8.1 12-Mar-2007  rmind Sync with HEAD.
 1.66.4.1 11-Jul-2007  mjf Sync with head.
 1.66.2.1 15-Jul-2007  ad Sync with head.
 1.68.14.3 18-Feb-2008  mjf Sync with HEAD.
 1.68.14.2 27-Dec-2007  mjf Sync with HEAD.
 1.68.14.1 19-Nov-2007  mjf Sync with HEAD.
 1.68.12.1 18-Nov-2007  bouyer Sync with HEAD
 1.68.8.2 23-Mar-2008  matt sync with HEAD
 1.68.8.1 09-Jan-2008  matt sync with HEAD
 1.68.6.1 21-Nov-2007  joerg Sync with HEAD.
 1.69.6.2 19-Jan-2008  bouyer Sync with HEAD
 1.69.6.1 02-Jan-2008  bouyer Sync with HEAD
 1.69.2.1 26-Dec-2007  ad Sync with head.
 1.73.8.3 20-Nov-2008  christos merge with head.
 1.73.8.2 01-Nov-2008  christos Sync with head.
 1.73.8.1 29-Mar-2008  christos Welcome to the time_t=long long dev_t=uint64_t branch.
 1.73.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.73.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.74.2.1 18-May-2008  yamt sync with head.
 1.75.8.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.75.4.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.75.2.4 11-Aug-2010  yamt sync with head.
 1.75.2.3 11-Mar-2010  yamt sync with head
 1.75.2.2 20-Jun-2009  yamt sync with head
 1.75.2.1 04-May-2009  yamt sync with head.
 1.77.4.1 20-Nov-2008  snj Regen for ticket 81.
 1.77.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.83.2.1 23-Jul-2009  jym Sync with HEAD.
 1.86.4.4 31-May-2011  rmind sync with head
 1.86.4.3 21-Apr-2011  rmind sync with head
 1.86.4.2 05-Mar-2011  rmind sync with head
 1.86.4.1 30-May-2010  rmind sync with head
 1.86.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.86.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.88.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.91.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.91.4.2 30-Oct-2012  yamt sync with head
 1.91.4.1 17-Apr-2012  yamt sync with head
 1.92.10.4 03-Dec-2017  jdolecek update from HEAD
 1.92.10.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.92.10.2 23-Jun-2013  tls resync from head
 1.92.10.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.94.4.1 18-May-2014  rmind sync with head
 1.97.2.1 10-Aug-2014  tls Rebase.
 1.103.2.1 17-Apr-2017  snj regen for ticket 1354
 1.104.2.4 28-Aug-2017  skrll Sync with HEAD
 1.104.2.3 05-Feb-2017  skrll Sync with HEAD
 1.104.2.2 05-Oct-2016  skrll Sync with HEAD
 1.104.2.1 06-Apr-2015  skrll Sync with HEAD
 1.107.2.3 20-Mar-2017  pgoyette Sync with HEAD
 1.107.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.107.2.1 26-Jul-2016  pgoyette Sync with HEAD
 1.111.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.112.4.1 11-May-2017  pgoyette Sync with HEAD
 1.113.10.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.113.10.1 10-Jun-2019  christos Sync with HEAD
 1.113.8.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.116.2.2 17-Dec-2020  thorpej Regen for preadv(2) and pwritev(2).
 1.116.2.1 15-Dec-2020  thorpej Regen for eventfd, timerfd, POSIX timers.
 1.127.2.1 02-Aug-2025  perseant Sync with HEAD
 1.130 28-Sep-2024  christos regen
 1.129 01-Jul-2024  christos regen
 1.128 29-Jun-2024  christos branches: 1.128.2;
regen
 1.127 19-Aug-2023  christos regen
 1.126 18-Aug-2023  christos regen
 1.125 29-Jul-2023  christos regen
 1.124 28-Jul-2023  christos regen
 1.123 10-Jul-2023  christos regen
 1.122 02-Dec-2021  ryo regen
 1.121 20-Sep-2021  thorpej Regen for preadv(2) / pwritev(2).
 1.120 20-Sep-2021  thorpej Regen for eventfd.
 1.119 19-Sep-2021  thorpej Regen for timerfd.
 1.118 19-Sep-2021  thorpej Regen for POSIX timer syscalls.
 1.117 26-Apr-2020  thorpej branches: 1.117.2;
Regen for native futex calls.
 1.116 09-Nov-2019  jdolecek regen
 1.115 10-Aug-2018  pgoyette Regen
 1.114 10-May-2017  riastradh branches: 1.114.8; 1.114.10;
regen
 1.113 16-Jan-2017  christos branches: 1.113.4;
regen all
 1.112 13-Jan-2017  christos branches: 1.112.2;
regen
 1.111 02-Jan-2017  martin Regen (something apparently went wrong in previous)
 1.110 02-Jan-2017  manu Regen
 1.109 24-Jul-2016  njoly Regen for readlink/readlinkat signatures.
 1.108 24-Sep-2015  christos branches: 1.108.2;
regen
 1.107 23-Mar-2015  ozaki-r Regen
 1.106 07-Mar-2015  christos regen
 1.105 22-Nov-2014  njoly branches: 1.105.2;
Regen for ppoll signature fix
 1.104 31-May-2014  njoly branches: 1.104.2;
Regen for munmap(2) signature.
 1.103 29-May-2014  njoly Regen for utimes(2) change.
 1.102 20-May-2014  njoly Regen for getgroups/setgroups update.
 1.101 17-May-2014  njoly Regen for fadvise64 offset types changes.
 1.100 04-May-2014  njoly Regen for pread/pwrite 64bit offset argument.
 1.99 08-Apr-2014  njoly Regen.
 1.98 18-Nov-2013  chs branches: 1.98.2;
regen
 1.97 07-Nov-2013  njoly Regen for dup/dup2/dup3 argument types fix.
 1.96 24-Sep-2013  njoly Regen for utimensat(2).
 1.95 08-Apr-2013  pooka branches: 1.95.4;
regen for utimes
 1.94 19-Sep-2012  pooka regen for ppoll (and, apparently, SYCALL_ARG_PTR)
 1.93 18-Nov-2011  christos branches: 1.93.10;
- add sigtimedwait support.
- merge the siginfo population code.
 1.92 30-May-2011  alnsn branches: 1.92.4;
Regenerate files to pick up correct RCS Ids. Suggested by Chris Badura.
 1.91 30-May-2011  alnsn Add fadvise64 and fadvise64_64 syscalls to compat_linux and compat_linux32.
 1.90 10-Apr-2011  christos Regen: Argh:
cat: rumphdr.types: No such file or directory
rm: rumphdr.types: No such file or directory
*** Error code 1
 1.89 07-Jul-2010  chs branches: 1.89.2;
regen
 1.88 23-Apr-2010  chs regen
 1.87 14-Dec-2009  matt branches: 1.87.2; 1.87.4;
Regen (new makesyscalls.sh)
 1.86 24-Nov-2009  njoly Regen for personality(2) update.
 1.85 08-Jun-2009  njoly Regen for rt_queueinfo(2) update.
 1.84 17-Jan-2009  njoly branches: 1.84.2;
Regen for wait4 update.
 1.83 13-Jan-2009  pooka Regen to prove I didn't screw up the conversion: purely RCSID changes.
 1.82 11-Jan-2009  christos merge christos-time_t
 1.81 19-Nov-2008  ad Regen.
 1.80 19-Nov-2008  njoly Regen for futex timeout argument cleanup/fix.
 1.79 12-Nov-2008  njoly Regen for nanosleep(2) fix.
 1.78 26-Oct-2008  christos branches: 1.78.2; 1.78.4;
regen
 1.77 26-Oct-2008  christos regen
 1.76 23-Apr-2008  ad branches: 1.76.2; 1.76.4; 1.76.8;
Regen.
 1.75 04-Apr-2008  njoly branches: 1.75.2;
Regen for linux_sys_msync removal.
 1.74 15-Jan-2008  njoly branches: 1.74.6; 1.74.8;
Regen.
 1.73 24-Dec-2007  njoly Regen for linux_sys_getpgid removal.
 1.72 21-Dec-2007  njoly Regen for getfsuid/setfsgid syscall exchange.
 1.71 20-Dec-2007  dsl regen
 1.70 16-Nov-2007  njoly branches: 1.70.2; 1.70.6;
Regen, for syscalls cleanup.
 1.69 13-Jun-2007  christos branches: 1.69.6; 1.69.8; 1.69.12; 1.69.14;
regen
 1.68 13-Jun-2007  christos regen.
 1.67 09-Feb-2007  ad branches: 1.67.6; 1.67.8;
Merge newlock2 to head.
 1.66 01-Sep-2006  matt branches: 1.66.2;
Regen.
 1.65 30-Aug-2006  matt Regen
 1.64 10-Jun-2006  christos regen
 1.63 11-Dec-2005  christos branches: 1.63.4; 1.63.8; 1.63.14;
merge ktrace-lwp.
 1.62 06-Nov-2005  manu regen
 1.61 06-Nov-2005  tron Regen with correct RCS Ids.
 1.60 05-Nov-2005  dogcow mirror manu's amd64 changes to implement linux sched_{seg,get}affinity;
the kernel and linux lkm now compile again.
 1.59 18-Oct-2005  joerg Regen.
 1.58 16-May-2005  fvdl branches: 1.58.2;
Regen.
 1.57 16-May-2005  fvdl Regen.
 1.56 26-Feb-2005  perry regen
 1.55 20-Sep-2004  jdolecek branches: 1.55.4; 1.55.6;
regen:
implement support for Linux statfs64() syscall - 64bit variant of statfs()
 1.54 08-Sep-2004  jdolecek regen: add exit_group(2)
 1.53 01-Aug-2004  jdolecek regen - sync syscall lists with Linux kernel 2.6.7
 1.52 01-Aug-2004  jdolecek regen:

connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.51 01-Aug-2004  jdolecek connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.50 10-Aug-2003  jdolecek regen - added wrapper for Linux ftruncate64()
 1.49 03-Jul-2003  christos Regen.
 1.48 23-Jun-2003  christos branches: 1.48.2;
Regen.
 1.47 18-Jan-2003  thorpej Regen for correct RCS IDs.
 1.46 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.45 10-Apr-2002  christos branches: 1.45.4;
regen
 1.44 22-Mar-2002  christos regen
 1.43 15-Feb-2002  christos regen
 1.42 15-Feb-2002  christos - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.41 13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.40 30-Sep-2001  manu Fixes my last commit: only mips really need fcntl64 to work now. i386 and
powerpc could use it later if needed. m68k and alpha should never need it.
 1.39 30-May-2001  mrg branches: 1.39.2; 1.39.4;
use _KERNEL_OPT.
 1.38 13-May-2001  manu Improved the accuracy of gettimeofday/settimeofday: Linux stores a srtuct
timezone in the kernel. We now keep track of it for emulated processes.
Tested for powerpc and i386. Untested on m68k, but it should be ok
Alpha has a particular implementation (osf1_sys_gettimeofday), and it has
therefore not been touched.
 1.37 30-Mar-2001  jdolecek regen
 1.36 30-Mar-2001  jdolecek regen
 1.35 27-Jan-2001  thorpej branches: 1.35.2;
Regen; getpid(2) is MP-safe.
 1.34 27-Jan-2001  thorpej Regen; add sy_flags.
 1.33 29-Dec-2000  fvdl Regen.
 1.32 27-Dec-2000  fvdl Regen.
 1.31 18-Dec-2000  fvdl Regen.
 1.30 13-Dec-2000  augustss Regen.
 1.29 12-Dec-2000  jdolecek regen
 1.28 12-Dec-2000  jdolecek regen
 1.27 11-Dec-2000  mycroft Regen.
 1.26 09-Dec-2000  jdolecek regen
 1.25 09-Dec-2000  mycroft Regen.
 1.24 02-Dec-2000  jdolecek regen after addition of linux_sys_swapoff()
 1.23 01-Dec-2000  jdolecek regen
 1.22 13-Nov-2000  jdolecek change the type of *syscallnames[] array to 'const char * const foo[]'
 1.21 01-Nov-2000  jdolecek regen
 1.20 23-Aug-2000  christos regen
 1.19 18-Aug-2000  cgd update for changed makesyscalls.master
 1.18 18-Aug-2000  cgd update for new makesyscalls.sh, and also for correct ids for changed
syscalls.master files. (you need to regenerate after checking in
syscalls.master to get the correct ids.)
 1.17 18-Mar-2000  erh branches: 1.17.4;
Regen.
 1.16 03-Feb-2000  abs regen
 1.15 12-Dec-1999  tron Regen.
 1.14 05-Dec-1999  tron Regen.
 1.13 04-Dec-1999  tron Regen.
 1.12 04-Oct-1999  tron branches: 1.12.2; 1.12.8;
Regen from "syscalls.master".
 1.11 16-Aug-1999  tron Regen.
 1.10 14-May-1999  thorpej Regen.
 1.9 13-May-1999  thorpej Regen.
 1.8 30-Mar-1999  abs branches: 1.8.2; 1.8.4;
Regenerate (with poll())
 1.7 27-Mar-1999  tron Regen.
 1.6 23-Mar-1999  thorpej Regen; pread(2) and pwrite(2).
 1.5 09-Feb-1999  christos Regen
 1.4 10-Dec-1998  christos Regen
 1.3 04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.2 03-Oct-1998  christos Attempt to fix the mess.
 1.1 01-Oct-1998  erh Regen.
 1.8.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.8.2.2 15-Aug-2000  he Pull up regenerated files (requested by abs):
Enable basic versions of Linux fsuid calls.
 1.8.2.1 31-Jan-2000  he Pull up generated files (requested by abs):
Enable emulation of vfork(2).
 1.12.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.12.2.7 21-Apr-2001  bouyer Sync with HEAD
 1.12.2.6 11-Feb-2001  bouyer Sync with HEAD.
 1.12.2.5 05-Jan-2001  bouyer Sync with HEAD
 1.12.2.4 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.12.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.12.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.12.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.17.4.2 01-May-2001  he Pull up regenerated files (requested by jdolecek):
Make it possible to use a different function for unimplemented
syscalls than sys_nosys(), so that the Linux emulation can avoid
posting SIGSYS and instead just return ENOSYS.
 1.17.4.1 30-Mar-2001  he Pull up regenerated files (requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.35.2.9 29-May-2002  nathanw Regen.
 1.35.2.8 17-Apr-2002  nathanw Catch up to -current.
 1.35.2.7 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.35.2.6 28-Feb-2002  nathanw Catch up to -current.
 1.35.2.5 14-Nov-2001  nathanw Catch up to -current.
 1.35.2.4 08-Oct-2001  nathanw Catch up to -current.
 1.35.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.35.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.35.2.1 05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.39.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.39.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.39.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.39.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.45.4.3 14-Jun-2004  jmc Regen for changes in ticket #1708
 1.45.4.2 11-May-2004  tron Regen for ticket 1686.
 1.45.4.1 22-Oct-2003  jmc Regen files (requested by tv in ticket #1427)

Proper support for mmap2
 1.48.2.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.48.2.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.48.2.4 24-Sep-2004  skrll Sync with HEAD.
 1.48.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.48.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.48.2.1 03-Aug-2004  skrll Sync with HEAD
 1.55.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.55.4.1 29-Apr-2005  kent sync with -current
 1.58.2.6 21-Jan-2008  yamt sync with head
 1.58.2.5 07-Dec-2007  yamt sync with head
 1.58.2.4 03-Sep-2007  yamt sync with head.
 1.58.2.3 26-Feb-2007  yamt sync with head.
 1.58.2.2 30-Dec-2006  yamt sync with head.
 1.58.2.1 21-Jun-2006  yamt sync with head.
 1.63.14.1 19-Jun-2006  chap Sync with head.
 1.63.8.2 03-Sep-2006  yamt sync with head.
 1.63.8.1 26-Jun-2006  yamt sync with head.
 1.63.4.1 09-Sep-2006  rpaulo sync with head
 1.66.2.1 30-Jan-2007  ad Remove support for SA. Ok core@.
 1.67.8.1 11-Jul-2007  mjf Sync with head.
 1.67.6.1 15-Jul-2007  ad Sync with head.
 1.69.14.3 18-Feb-2008  mjf Sync with HEAD.
 1.69.14.2 27-Dec-2007  mjf Sync with HEAD.
 1.69.14.1 19-Nov-2007  mjf Sync with HEAD.
 1.69.12.1 18-Nov-2007  bouyer Sync with HEAD
 1.69.8.2 23-Mar-2008  matt sync with HEAD
 1.69.8.1 09-Jan-2008  matt sync with HEAD
 1.69.6.1 21-Nov-2007  joerg Sync with HEAD.
 1.70.6.2 19-Jan-2008  bouyer Sync with HEAD
 1.70.6.1 02-Jan-2008  bouyer Sync with HEAD
 1.70.2.1 26-Dec-2007  ad Sync with head.
 1.74.8.3 20-Nov-2008  christos merge with head.
 1.74.8.2 01-Nov-2008  christos Sync with head.
 1.74.8.1 29-Mar-2008  christos Welcome to the time_t=long long dev_t=uint64_t branch.
 1.74.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.74.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.75.2.1 18-May-2008  yamt sync with head.
 1.76.8.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.76.4.2 14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.76.4.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.76.2.4 11-Aug-2010  yamt sync with head.
 1.76.2.3 11-Mar-2010  yamt sync with head
 1.76.2.2 20-Jun-2009  yamt sync with head
 1.76.2.1 04-May-2009  yamt sync with head.
 1.78.4.1 20-Nov-2008  snj Regen for ticket 81.
 1.78.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.84.2.1 23-Jul-2009  jym Sync with HEAD.
 1.87.4.4 31-May-2011  rmind sync with head
 1.87.4.3 21-Apr-2011  rmind sync with head
 1.87.4.2 05-Mar-2011  rmind sync with head
 1.87.4.1 30-May-2010  rmind sync with head
 1.87.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.87.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.89.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.92.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.92.4.2 30-Oct-2012  yamt sync with head
 1.92.4.1 17-Apr-2012  yamt sync with head
 1.93.10.4 03-Dec-2017  jdolecek update from HEAD
 1.93.10.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.93.10.2 23-Jun-2013  tls resync from head
 1.93.10.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.95.4.1 18-May-2014  rmind sync with head
 1.98.2.1 10-Aug-2014  tls Rebase.
 1.104.2.1 17-Apr-2017  snj regen for ticket 1354
 1.105.2.4 05-Feb-2017  skrll Sync with HEAD
 1.105.2.3 05-Oct-2016  skrll Sync with HEAD
 1.105.2.2 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.105.2.1 06-Apr-2015  skrll Sync with HEAD
 1.108.2.3 20-Mar-2017  pgoyette Sync with HEAD
 1.108.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.108.2.1 26-Jul-2016  pgoyette Sync with HEAD
 1.112.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.113.4.1 11-May-2017  pgoyette Sync with HEAD
 1.114.10.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.114.10.1 10-Jun-2019  christos Sync with HEAD
 1.114.8.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.117.2.2 17-Dec-2020  thorpej Regen for preadv(2) and pwritev(2).
 1.117.2.1 15-Dec-2020  thorpej Regen for eventfd, timerfd, POSIX timers.
 1.128.2.1 02-Aug-2025  perseant Sync with HEAD
 1.129 28-Sep-2024  christos regen
 1.128 01-Jul-2024  christos regen
 1.127 29-Jun-2024  christos branches: 1.127.2;
regen
 1.126 19-Aug-2023  christos regen
 1.125 18-Aug-2023  christos regen
 1.124 29-Jul-2023  christos regen
 1.123 28-Jul-2023  christos regen
 1.122 10-Jul-2023  christos regen
 1.121 02-Dec-2021  ryo regen
 1.120 20-Sep-2021  thorpej Regen for preadv(2) / pwritev(2).
 1.119 20-Sep-2021  thorpej Regen for eventfd.
 1.118 19-Sep-2021  thorpej Regen for timerfd.
 1.117 19-Sep-2021  thorpej Regen for POSIX timer syscalls.
 1.116 26-Apr-2020  thorpej branches: 1.116.2;
Regen for native futex calls.
 1.115 09-Nov-2019  jdolecek regen
 1.114 10-Aug-2018  pgoyette Regen
 1.113 10-May-2017  riastradh branches: 1.113.8; 1.113.10;
regen
 1.112 16-Jan-2017  christos branches: 1.112.4;
regen all
 1.111 13-Jan-2017  christos branches: 1.111.2;
regen
 1.110 02-Jan-2017  martin Regen (something apparently went wrong in previous)
 1.109 02-Jan-2017  manu Regen
 1.108 24-Jul-2016  njoly Regen for readlink/readlinkat signatures.
 1.107 24-Sep-2015  christos branches: 1.107.2;
regen
 1.106 23-Mar-2015  ozaki-r Regen
 1.105 07-Mar-2015  christos regen
 1.104 22-Nov-2014  njoly branches: 1.104.2;
Regen for ppoll signature fix
 1.103 31-May-2014  njoly branches: 1.103.2;
Regen for munmap(2) signature.
 1.102 29-May-2014  njoly Regen for utimes(2) change.
 1.101 20-May-2014  njoly Regen for getgroups/setgroups update.
 1.100 17-May-2014  njoly Regen for fadvise64 offset types changes.
 1.99 04-May-2014  njoly Regen for pread/pwrite 64bit offset argument.
 1.98 08-Apr-2014  njoly Regen.
 1.97 18-Nov-2013  chs branches: 1.97.2;
regen
 1.96 07-Nov-2013  njoly Regen for dup/dup2/dup3 argument types fix.
 1.95 24-Sep-2013  njoly Regen for utimensat(2).
 1.94 08-Apr-2013  pooka branches: 1.94.4;
regen for utimes
 1.93 19-Sep-2012  pooka regen for ppoll (and, apparently, SYCALL_ARG_PTR)
 1.92 18-Nov-2011  christos branches: 1.92.10;
- add sigtimedwait support.
- merge the siginfo population code.
 1.91 30-May-2011  alnsn branches: 1.91.4;
Regenerate files to pick up correct RCS Ids. Suggested by Chris Badura.
 1.90 30-May-2011  alnsn Add fadvise64 and fadvise64_64 syscalls to compat_linux and compat_linux32.
 1.89 10-Apr-2011  christos Regen: Argh:
cat: rumphdr.types: No such file or directory
rm: rumphdr.types: No such file or directory
*** Error code 1
 1.88 07-Jul-2010  chs branches: 1.88.2;
regen
 1.87 23-Apr-2010  chs regen
 1.86 14-Dec-2009  matt branches: 1.86.2; 1.86.4;
Regen (new makesyscalls.sh)
 1.85 24-Nov-2009  njoly Regen for personality(2) update.
 1.84 08-Jun-2009  njoly Regen for rt_queueinfo(2) update.
 1.83 17-Jan-2009  njoly branches: 1.83.2;
Regen for wait4 update.
 1.82 13-Jan-2009  pooka Regen to prove I didn't screw up the conversion: purely RCSID changes.
 1.81 11-Jan-2009  christos merge christos-time_t
 1.80 19-Nov-2008  ad Regen.
 1.79 19-Nov-2008  njoly Regen for futex timeout argument cleanup/fix.
 1.78 12-Nov-2008  njoly Regen for nanosleep(2) fix.
 1.77 26-Oct-2008  christos branches: 1.77.2; 1.77.4;
regen
 1.76 26-Oct-2008  christos regen
 1.75 23-Apr-2008  ad branches: 1.75.2; 1.75.4; 1.75.8;
Regen.
 1.74 04-Apr-2008  njoly branches: 1.74.2;
Regen for linux_sys_msync removal.
 1.73 15-Jan-2008  njoly branches: 1.73.6; 1.73.8;
Regen.
 1.72 24-Dec-2007  njoly Regen for linux_sys_getpgid removal.
 1.71 21-Dec-2007  njoly Regen for getfsuid/setfsgid syscall exchange.
 1.70 20-Dec-2007  dsl regen
 1.69 16-Nov-2007  njoly branches: 1.69.2; 1.69.6;
Regen, for syscalls cleanup.
 1.68 13-Jun-2007  christos branches: 1.68.6; 1.68.8; 1.68.12; 1.68.14;
regen
 1.67 13-Jun-2007  christos regen.
 1.66 09-Feb-2007  ad branches: 1.66.6; 1.66.8;
Merge newlock2 to head.
 1.65 01-Sep-2006  matt branches: 1.65.2;
Regen.
 1.64 30-Aug-2006  matt Regen
 1.63 10-Jun-2006  christos regen
 1.62 11-Dec-2005  christos branches: 1.62.4; 1.62.8; 1.62.14;
merge ktrace-lwp.
 1.61 06-Nov-2005  manu regen
 1.60 06-Nov-2005  tron Regen with correct RCS Ids.
 1.59 05-Nov-2005  dogcow mirror manu's amd64 changes to implement linux sched_{seg,get}affinity;
the kernel and linux lkm now compile again.
 1.58 18-Oct-2005  joerg Regen.
 1.57 16-May-2005  fvdl branches: 1.57.2;
Regen.
 1.56 16-May-2005  fvdl Regen.
 1.55 26-Feb-2005  perry regen
 1.54 20-Sep-2004  jdolecek branches: 1.54.4; 1.54.6;
regen:
implement support for Linux statfs64() syscall - 64bit variant of statfs()
 1.53 08-Sep-2004  jdolecek regen: add exit_group(2)
 1.52 01-Aug-2004  jdolecek regen - sync syscall lists with Linux kernel 2.6.7
 1.51 01-Aug-2004  jdolecek regen:

connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.50 01-Aug-2004  jdolecek connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.49 10-Aug-2003  jdolecek regen - added wrapper for Linux ftruncate64()
 1.48 03-Jul-2003  christos Regen.
 1.47 23-Jun-2003  christos branches: 1.47.2;
Regen.
 1.46 18-Jan-2003  thorpej Regen for correct RCS IDs.
 1.45 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.44 10-Apr-2002  christos branches: 1.44.4;
regen
 1.43 22-Mar-2002  christos regen
 1.42 15-Feb-2002  christos regen
 1.41 15-Feb-2002  christos - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.40 13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.39 30-Sep-2001  manu Fixes my last commit: only mips really need fcntl64 to work now. i386 and
powerpc could use it later if needed. m68k and alpha should never need it.
 1.38 30-May-2001  mrg branches: 1.38.2; 1.38.4;
use _KERNEL_OPT.
 1.37 13-May-2001  manu Improved the accuracy of gettimeofday/settimeofday: Linux stores a srtuct
timezone in the kernel. We now keep track of it for emulated processes.
Tested for powerpc and i386. Untested on m68k, but it should be ok
Alpha has a particular implementation (osf1_sys_gettimeofday), and it has
therefore not been touched.
 1.36 30-Mar-2001  jdolecek regen
 1.35 30-Mar-2001  jdolecek regen
 1.34 27-Jan-2001  thorpej branches: 1.34.2;
Regen; getpid(2) is MP-safe.
 1.33 27-Jan-2001  thorpej Regen; add sy_flags.
 1.32 29-Dec-2000  fvdl Regen.
 1.31 27-Dec-2000  fvdl Regen.
 1.30 18-Dec-2000  fvdl Regen.
 1.29 13-Dec-2000  augustss Regen.
 1.28 12-Dec-2000  jdolecek regen
 1.27 12-Dec-2000  jdolecek regen
 1.26 11-Dec-2000  mycroft Regen.
 1.25 09-Dec-2000  jdolecek regen
 1.24 09-Dec-2000  mycroft Regen.
 1.23 02-Dec-2000  jdolecek regen after addition of linux_sys_swapoff()
 1.22 01-Dec-2000  jdolecek regen
 1.21 01-Nov-2000  jdolecek regen
 1.20 23-Aug-2000  christos regen
 1.19 18-Aug-2000  cgd update for changed makesyscalls.master
 1.18 18-Aug-2000  cgd update for new makesyscalls.sh, and also for correct ids for changed
syscalls.master files. (you need to regenerate after checking in
syscalls.master to get the correct ids.)
 1.17 18-Mar-2000  erh branches: 1.17.4;
Regen.
 1.16 03-Feb-2000  abs regen
 1.15 12-Dec-1999  tron Regen.
 1.14 05-Dec-1999  tron Regen.
 1.13 04-Dec-1999  tron Regen.
 1.12 04-Oct-1999  tron branches: 1.12.2; 1.12.8;
Regen from "syscalls.master".
 1.11 16-Aug-1999  tron Regen.
 1.10 14-May-1999  thorpej Regen.
 1.9 13-May-1999  thorpej Regen.
 1.8 30-Mar-1999  abs branches: 1.8.2; 1.8.4;
Regenerate (with poll())
 1.7 27-Mar-1999  tron Regen.
 1.6 23-Mar-1999  thorpej Regen; pread(2) and pwrite(2).
 1.5 09-Feb-1999  christos Regen
 1.4 10-Dec-1998  christos Regen
 1.3 04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.2 03-Oct-1998  christos Attempt to fix the mess.
 1.1 01-Oct-1998  erh Regen.
 1.8.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.8.2.2 15-Aug-2000  he Pull up regenerated files (requested by abs):
Enable basic versions of Linux fsuid calls.
 1.8.2.1 31-Jan-2000  he Pull up generated files (requested by abs):
Enable emulation of vfork(2).
 1.12.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.12.2.7 21-Apr-2001  bouyer Sync with HEAD
 1.12.2.6 11-Feb-2001  bouyer Sync with HEAD.
 1.12.2.5 05-Jan-2001  bouyer Sync with HEAD
 1.12.2.4 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.12.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.12.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.12.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.17.4.2 01-May-2001  he Pull up regenerated files (requested by jdolecek):
Make it possible to use a different function for unimplemented
syscalls than sys_nosys(), so that the Linux emulation can avoid
posting SIGSYS and instead just return ENOSYS.
 1.17.4.1 30-Mar-2001  he Pull up regenerated files (requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.34.2.9 29-May-2002  nathanw Regen.
 1.34.2.8 17-Apr-2002  nathanw Catch up to -current.
 1.34.2.7 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.34.2.6 28-Feb-2002  nathanw Catch up to -current.
 1.34.2.5 14-Nov-2001  nathanw Catch up to -current.
 1.34.2.4 08-Oct-2001  nathanw Catch up to -current.
 1.34.2.3 21-Jun-2001  nathanw Catch up to -current.
 1.34.2.2 09-Apr-2001  nathanw Catch up with -current.
 1.34.2.1 05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.38.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.38.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.38.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.38.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.44.4.3 14-Jun-2004  jmc Regen for changes in ticket #1708
 1.44.4.2 11-May-2004  tron Regen for ticket 1686.
 1.44.4.1 22-Oct-2003  jmc Regen files (requested by tv in ticket #1427)

Proper support for mmap2
 1.47.2.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.47.2.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.47.2.4 24-Sep-2004  skrll Sync with HEAD.
 1.47.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.47.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.47.2.1 03-Aug-2004  skrll Sync with HEAD
 1.54.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.54.4.1 29-Apr-2005  kent sync with -current
 1.57.2.6 21-Jan-2008  yamt sync with head
 1.57.2.5 07-Dec-2007  yamt sync with head
 1.57.2.4 03-Sep-2007  yamt sync with head.
 1.57.2.3 26-Feb-2007  yamt sync with head.
 1.57.2.2 30-Dec-2006  yamt sync with head.
 1.57.2.1 21-Jun-2006  yamt sync with head.
 1.62.14.1 19-Jun-2006  chap Sync with head.
 1.62.8.2 03-Sep-2006  yamt sync with head.
 1.62.8.1 26-Jun-2006  yamt sync with head.
 1.62.4.1 09-Sep-2006  rpaulo sync with head
 1.65.2.1 30-Jan-2007  ad Remove support for SA. Ok core@.
 1.66.8.1 11-Jul-2007  mjf Sync with head.
 1.66.6.1 15-Jul-2007  ad Sync with head.
 1.68.14.3 18-Feb-2008  mjf Sync with HEAD.
 1.68.14.2 27-Dec-2007  mjf Sync with HEAD.
 1.68.14.1 19-Nov-2007  mjf Sync with HEAD.
 1.68.12.1 18-Nov-2007  bouyer Sync with HEAD
 1.68.8.2 23-Mar-2008  matt sync with HEAD
 1.68.8.1 09-Jan-2008  matt sync with HEAD
 1.68.6.1 21-Nov-2007  joerg Sync with HEAD.
 1.69.6.2 19-Jan-2008  bouyer Sync with HEAD
 1.69.6.1 02-Jan-2008  bouyer Sync with HEAD
 1.69.2.1 26-Dec-2007  ad Sync with head.
 1.73.8.3 20-Nov-2008  christos merge with head.
 1.73.8.2 01-Nov-2008  christos Sync with head.
 1.73.8.1 29-Mar-2008  christos Welcome to the time_t=long long dev_t=uint64_t branch.
 1.73.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.73.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.74.2.1 18-May-2008  yamt sync with head.
 1.75.8.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.75.4.2 14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.75.4.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.75.2.4 11-Aug-2010  yamt sync with head.
 1.75.2.3 11-Mar-2010  yamt sync with head
 1.75.2.2 20-Jun-2009  yamt sync with head
 1.75.2.1 04-May-2009  yamt sync with head.
 1.77.4.1 20-Nov-2008  snj Regen for ticket 81.
 1.77.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.83.2.1 23-Jul-2009  jym Sync with HEAD.
 1.86.4.4 31-May-2011  rmind sync with head
 1.86.4.3 21-Apr-2011  rmind sync with head
 1.86.4.2 05-Mar-2011  rmind sync with head
 1.86.4.1 30-May-2010  rmind sync with head
 1.86.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.86.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.88.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.91.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.91.4.2 30-Oct-2012  yamt sync with head
 1.91.4.1 17-Apr-2012  yamt sync with head
 1.92.10.4 03-Dec-2017  jdolecek update from HEAD
 1.92.10.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.92.10.2 23-Jun-2013  tls resync from head
 1.92.10.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.94.4.1 18-May-2014  rmind sync with head
 1.97.2.1 10-Aug-2014  tls Rebase.
 1.103.2.1 17-Apr-2017  snj regen for ticket 1354
 1.104.2.3 05-Feb-2017  skrll Sync with HEAD
 1.104.2.2 05-Oct-2016  skrll Sync with HEAD
 1.104.2.1 06-Apr-2015  skrll Sync with HEAD
 1.107.2.3 20-Mar-2017  pgoyette Sync with HEAD
 1.107.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.107.2.1 26-Jul-2016  pgoyette Sync with HEAD
 1.111.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.112.4.1 11-May-2017  pgoyette Sync with HEAD
 1.113.10.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.113.10.1 10-Jun-2019  christos Sync with HEAD
 1.113.8.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.116.2.2 17-Dec-2020  thorpej Regen for preadv(2) and pwritev(2).
 1.116.2.1 15-Dec-2020  thorpej Regen for eventfd, timerfd, POSIX timers.
 1.127.2.1 02-Aug-2025  perseant Sync with HEAD
 1.24 28-Sep-2024  christos regen
 1.23 01-Jul-2024  christos regen
 1.22 29-Jun-2024  christos branches: 1.22.2;
regen
 1.21 19-Aug-2023  christos regen
 1.20 18-Aug-2023  christos regen
 1.19 29-Jul-2023  christos regen
 1.18 28-Jul-2023  christos regen
 1.17 10-Jul-2023  christos regen
 1.16 02-Dec-2021  ryo regen
 1.15 20-Sep-2021  thorpej Regen for preadv(2) / pwritev(2).
 1.14 20-Sep-2021  thorpej Regen for eventfd.
 1.13 19-Sep-2021  thorpej Regen for timerfd.
 1.12 19-Sep-2021  thorpej Regen for POSIX timer syscalls.
 1.11 26-Apr-2020  thorpej branches: 1.11.2;
Regen for native futex calls.
 1.10 09-Nov-2019  jdolecek regen
 1.9 10-Aug-2018  pgoyette Regen
 1.8 10-May-2017  riastradh branches: 1.8.8; 1.8.10; 1.8.12;
regen
 1.7 16-Jan-2017  christos branches: 1.7.4;
regen all
 1.6 13-Jan-2017  christos branches: 1.6.2;
regen
 1.5 02-Jan-2017  martin Regen (something apparently went wrong in previous)
 1.4 24-Jul-2016  njoly Regen for readlink/readlinkat signatures.
 1.3 24-Sep-2015  christos branches: 1.3.2;
regen
 1.2 23-Mar-2015  ozaki-r branches: 1.2.2;
Regen
 1.1 07-Mar-2015  christos regen
 1.2.2.4 05-Feb-2017  skrll Sync with HEAD
 1.2.2.3 05-Oct-2016  skrll Sync with HEAD
 1.2.2.2 06-Apr-2015  skrll Sync with HEAD
 1.2.2.1 23-Mar-2015  skrll file linux_systrace_args.c was added on branch nick-nhusb on 2015-04-06 15:18:06 +0000
 1.3.2.3 20-Mar-2017  pgoyette Sync with HEAD
 1.3.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.3.2.1 26-Jul-2016  pgoyette Sync with HEAD
 1.6.2.1 21-Apr-2017  bouyer Sync with HEAD
 1.7.4.1 11-May-2017  pgoyette Sync with HEAD
 1.8.12.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.8.12.1 10-Jun-2019  christos Sync with HEAD
 1.8.10.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.8.8.2 03-Dec-2017  jdolecek update from HEAD
 1.8.8.1 10-May-2017  jdolecek file linux_systrace_args.c was added on branch tls-maxphys on 2017-12-03 11:36:54 +0000
 1.11.2.2 17-Dec-2020  thorpej Regen for preadv(2) and pwritev(2).
 1.11.2.1 15-Dec-2020  thorpej Regen for eventfd, timerfd, POSIX timers.
 1.22.2.1 02-Aug-2025  perseant Sync with HEAD
 1.10 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.9 26-Mar-2007  njoly branches: 1.9.30; 1.9.32; 1.9.34;
Update i386 LINUX_{TIOCGPTN,TIOCSPTLCK} definitions for latest
linux_ioctl_termios() changes.
 1.8 22-Sep-2006  christos branches: 1.8.4; 1.8.8; 1.8.10; 1.8.12;
Pretend to implement TIOCSPTLCK. Although failing is harmless, there is no
point in doing so.
 1.7 11-Dec-2005  christos branches: 1.7.20; 1.7.22;
merge ktrace-lwp.
 1.6 13-Nov-2004  christos branches: 1.6.12;
add LINUX_TIOCGPTN
 1.5 26-Aug-2001  manu branches: 1.5.20;
Moved LINUX_NCCS from MI file to MD file, because the value is different
on MIPS and sparc machines.
 1.4 20-Jan-2001  manu branches: 1.4.2; 1.4.4;
Moved architecure dependent part of struct linux_termio to architecture
dependent header files.
 1.3 01-Oct-1998  erh branches: 1.3.12;
Split compat/linux/linux_termios.h into i386 and common parts.
 1.2 05-Jan-1998  perry RCSID Police.
 1.1 08-Mar-1996  mycroft Separate ioctl emulation by group. Add (minimal) audio emulation.
 1.3.12.1 11-Feb-2001  bouyer Sync with HEAD.
 1.4.4.1 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.4.2.1 21-Sep-2001  nathanw Catch up to -current.
 1.5.20.1 14-Nov-2004  skrll Sync with HEAD.
 1.6.12.2 03-Sep-2007  yamt sync with head.
 1.6.12.1 30-Dec-2006  yamt sync with head.
 1.7.22.1 22-Oct-2006  yamt sync with head
 1.7.20.1 18-Nov-2006  ad Sync with head.
 1.8.12.1 29-Mar-2007  reinoud Pullup to -current
 1.8.10.1 11-Jul-2007  mjf Sync with head.
 1.8.8.1 10-Apr-2007  ad Sync with head.
 1.8.4.1 15-Apr-2007  yamt sync with head.
 1.9.34.1 16-May-2008  yamt sync with head.
 1.9.32.1 18-May-2008  yamt sync with head.
 1.9.30.1 02-Jun-2008  mjf Sync with HEAD.
 1.17 11-Jan-2009  christos merge christos-time_t
 1.16 28-Apr-2008  martin branches: 1.16.8;
Remove clause 3 and 4 from TNF licenses
 1.15 11-Dec-2005  christos branches: 1.15.70; 1.15.72; 1.15.74; 1.15.76;
merge ktrace-lwp.
 1.14 10-Mar-2005  christos revert part of previous commit (the block size type and the pad renumbering).
tron says it breaks compat mode.
 1.13 10-Mar-2005  christos Add nanosecond handling on the stat and stat64 code for the i386.
 1.12 20-Sep-2004  jdolecek branches: 1.12.4; 1.12.6;
move definition of linux_fsid_t to common/linux_types.h - it's identical
across all Linux archs
 1.11 19-Sep-2004  jdolecek move definition of struct linux_stafs to common/linux_types.h, and use
explicit size types - the structure definition is actually identical
on currently support COMPAT_LINUX archs, so no point to have 6 copies of it
in the tree
 1.10 19-May-2002  jdolecek branches: 1.10.8;
On archs with broken linux struct stat64 st_ino, rename linux_stat64's
lst_ino to __lst_ino and lst_ino64 to lst_ino, and define
LINUX_STAT64_HAS_BROKEN_ST_INO. Only assign __lst_ino if this define
is present.

This fixes compile on powerpc archs, and hence port-powerpc/16893.
 1.9 15-Feb-2002  christos branches: 1.9.8;
- add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.8 12-Dec-2000  jdolecek branches: 1.8.2; 1.8.4;
define struct linux_stat64 used by linux_sys_*stat64()
 1.7 04-Oct-1998  fvdl branches: 1.7.12;
Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.6 01-Oct-1998  erh Split linux_types.h into i386, common and multi-architechture parts.
 1.5 20-May-1996  fvdl Update list of Linux syscalls and implement the ones that are likely to be
used and doable.
 1.4 21-Aug-1995  mycroft Implement the old and older uname(2) calls.
 1.3 14-Aug-1995  mycroft Move signal types into signal.h.
 1.2 05-Mar-1995  fvdl Added a few more system calls.
More consistent alternate root file semantics throughout.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.7.12.1 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.8.4.2 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.8.4.1 16-Mar-2002  jdolecek Catch up with -current.
 1.8.2.2 20-Jun-2002  nathanw Catch up to -current.
 1.8.2.1 28-Feb-2002  nathanw Catch up to -current.
 1.9.8.1 30-May-2002  gehenna Catch up with -current.
 1.10.8.2 01-Apr-2005  skrll Sync with HEAD.
 1.10.8.1 24-Sep-2004  skrll Sync with HEAD.
 1.12.6.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.12.4.1 29-Apr-2005  kent sync with -current
 1.15.76.2 04-May-2009  yamt sync with head.
 1.15.76.1 16-May-2008  yamt sync with head.
 1.15.74.1 18-May-2008  yamt sync with head.
 1.15.72.3 30-Dec-2008  christos it is suseconds_t we want.
 1.15.72.2 01-Nov-2008  christos Sync with head.
 1.15.72.1 29-Mar-2008  christos Welcome to the time_t=long long dev_t=uint64_t branch.
 1.15.70.2 17-Jan-2009  mjf Sync with HEAD.
 1.15.70.1 02-Jun-2008  mjf Sync with HEAD.
 1.16.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.7 07-Mar-2015  christos Add systrace output file
 1.6 11-Dec-2005  christos branches: 1.6.120; 1.6.140;
merge ktrace-lwp.
 1.5 01-Aug-2004  jdolecek sync the syscall lists with Linux kernel 2.6.7
 1.4 30-Mar-2001  jdolecek branches: 1.4.22;
Implement linux_sys_nosys() and use it instead of sys_nosys() for
unimplemented syscalls. Difference is that linux_sys_nosys() doesn't
post SIGSYS to the process. Linux doesn't do that and thus glibc (and
probably other Linux code) doesn't deal with SIGSYS, even through it
generally contains fallback code for ENOSYS case.

This also addresses port-i386/12503, though the issue was already discussed
earlier.
 1.3 11-Dec-2000  mycroft branches: 1.3.2;
Round up sysent table size.
 1.2 01-Oct-1998  erh branches: 1.2.12; 1.2.22;
Moved from compat/linux.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.2.22.1 01-May-2001  he Pull up revision 1.4 (via patch, requested by jdolecek):
Make it possible to use a different function for unimplemented
syscalls than sys_nosys(), so that the Linux emulation can avoid
posting SIGSYS and instead just return ENOSYS.
 1.2.12.2 21-Apr-2001  bouyer Sync with HEAD
 1.2.12.1 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.3.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.4.22.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.22.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.22.1 03-Aug-2004  skrll Sync with HEAD
 1.6.140.1 06-Apr-2015  skrll Sync with HEAD
 1.6.120.1 03-Dec-2017  jdolecek update from HEAD
 1.137 28-Sep-2024  christos Linux GSoC-2024: renameat2, clone3, sync_file_range, syncfs (Shivraj Jamgade)
 1.136 01-Jul-2024  christos Add linux POSIX message queue support (Ricardo Branco)
 1.135 29-Jun-2024  christos branches: 1.135.2;
From gsoc 2024: Implement faccessat2 and getcpu (Shivraz)
 1.134 19-Aug-2023  christos Add inotify* syscalls GSoC 2023 (Theodore Preduta)
 1.133 18-Aug-2023  christos Add linux waitid(2) from GSoC 2023 (Theodore Preduta)
 1.132 29-Jul-2023  christos Add/fix statx, readahead, close_range. From GSoC 2023 by Theodore Preduta
 1.131 28-Jul-2023  christos add epoll syscalls
 1.130 10-Jul-2023  christos Add new syscalls
 1.129 02-Dec-2021  ryo add prlimit64(2) syscall to COMPAT_LINUX and COMPAT_LINUX32
 1.128 20-Sep-2021  thorpej Add preadv(2) and pwritev(2) system calls to COMPAT_LINUX and COMPAT_LINUX32.
 1.127 20-Sep-2021  thorpej Add the eventfd system calls to COMPAT_LINUX and COMPAT_LINUX32.
 1.126 19-Sep-2021  thorpej Add the timerfd syscalls to COMPAT_LINUX and COMPAT_LINUX32.
 1.125 19-Sep-2021  thorpej Add the POSIX timer syscalls (timer_create(), timer_settime(), timer_gettime(),
timer_getoverrun(), and timer_delete()) to COMPAT_LINUX and COMPAT_LINUX32.
 1.124 26-Apr-2020  thorpej branches: 1.124.2;
Add a NetBSD native futex implementation, mostly written by riastradh@.
Map the COMPAT_LINUX futex calls to the native ones.
 1.123 09-Nov-2019  jdolecek add dummy implementation of linux fallocate() which just returns EOPNOTSUPP;
this is needed so that glibc falls back to emulation and apps behaving
properly, since EOPNOTSUPP is a documented and expected return code, but
ENOSYS is not

right now there are no filesystems in NetBSD tree supporting the fallocate
VOP, so no point trying to map this to a native call

supposed to help with problem reported in
https://mail-index.netbsd.org/tech-kern/2019/11/03/msg025641.html
 1.122 02-Jan-2017  manu branches: 1.122.16;
Add pselect6 Linux system call.
This lets Matlab R2016A run on NetBSD/amd64
 1.121 24-Jul-2016  njoly Small cleanup. Adjust readlink/readlinkat signatures to reduce diffs with
native.
 1.120 23-Mar-2015  ozaki-r branches: 1.120.2;
Fix inconsistent argument names
 1.119 22-Nov-2014  njoly branches: 1.119.2;
Fix ppoll signature (int ->u_int)
 1.118 31-May-2014  njoly branches: 1.118.2;
Fix munmap(2) signature.
 1.117 29-May-2014  njoly For utimes(2), use compat_50_sys_utimes() instead of local version.
 1.116 20-May-2014  njoly Fix getgroups/setgroups signature.
 1.115 17-May-2014  njoly Fix fadvise64 syscalls to use 64bit offset types.
 1.114 04-May-2014  njoly Fix pread/pwrite syscalls which need a 64bit offset argument.
 1.113 08-Apr-2014  njoly Adjust read/write/readv/writev signature to match native versions.
 1.112 18-Nov-2013  chs branches: 1.112.2;
implement the *at() syscalls.
bring the unimplemented syscall list up to date.
 1.111 07-Nov-2013  njoly Fix dup/dup2/dup3 argument types (u_int -> int).
 1.110 24-Sep-2013  njoly Add utimensat(2) for compat linux.
 1.109 08-Apr-2013  pooka branches: 1.109.4;
support utimes on non-alpha linux platforms
 1.108 19-Sep-2012  pooka emulate ppoll which is essentially our pollts
 1.107 18-Nov-2011  christos branches: 1.107.10;
add sigtimedwait
 1.106 09-Jul-2011  christos branches: 1.106.2;
the first argument of {g,s}etitimer() is int not u_int.
 1.105 30-May-2011  alnsn Add fadvise64 and fadvise64_64 syscalls to compat_linux and compat_linux32.
 1.104 10-Apr-2011  christos add pipe2 and dup3
 1.103 07-Jul-2010  chs branches: 1.103.2;
many changes for COMPAT_LINUX:
- update the linux syscall table for each platform.
- support new-style (NPTL) linux pthreads on all platforms.
clone() with CLONE_THREAD uses 1 process with many LWPs
instead of separate processes.
- move the contents of sys__lwp_setprivate() into a new
lwp_setprivate() and use that everywhere.
- update linux_release[] and linux32_release[] to "2.6.18".
- adjust placement of emul fork/exec/exit hooks as needed
and adjust other emul code to match.
- convert all struct emul definitions to use named initializers.
- change the pid allocator to allow multiple pids to refer to the same proc.
- remove a few fields from struct proc that are no longer needed.
- disable the non-functional "vdso" code in linux32/amd64,
glibc works fine without it.
- fix a race in the futex code where we could miss a wakeup after
a requeue operation.
- redo futex locking to be a little more efficient.
 1.102 23-Apr-2010  chs add missing argument to clone(). the symptom of this was that pthread_join()
would sometimes get stuck, such as in our "mutex2" regression test.
 1.101 24-Nov-2009  njoly branches: 1.101.2; 1.101.4;
Update personality(2) to match Linux definition where the argument is an
unsigned long.
 1.100 08-Jun-2009  njoly Update rt_queueinfo(2) definition, and kill a corresponding comment.
 1.99 17-Jan-2009  njoly branches: 1.99.2;
Convert linux/linux32 wait(4) to use a compat50 rusage structure.
 1.98 13-Jan-2009  pooka Convert the syscalls.master to a format from which it is easier
to parse and generate the compat name and basename (e.g. __stat50
and stat). Use this to autogenerate __RENAME()'s to the rump_syscalls
header so that they can be called e.g. rump_sys_socket() instead
of rump_sys___socket30().
 1.97 11-Jan-2009  christos merge christos-time_t
 1.96 19-Nov-2008  ad Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.95 19-Nov-2008  njoly futex(2) timeout argument cleanup/fix.
- Use `struct linux_timespec', converted to native structure.
- Ensure that provided values are correct.
- Replace timeval+tvtohz by tstohz.
 1.94 12-Nov-2008  njoly Fix nanosleep(2) on 64-bit archs. Do not call native nanosleep
syscall, but rather a modified version the will take care of `struct
timespec' conversions.
 1.93 26-Oct-2008  christos branches: 1.93.2; 1.93.4;
futex support fixes from FreeBSD via cube+pengo.
 1.92 25-Oct-2008  christos Add preliminary tls support for i386. Does not work yet. From FreeBSD.
 1.91 23-Apr-2008  ad branches: 1.91.2; 1.91.4; 1.91.8;
-SYCALL_MPSAFE
 1.90 04-Apr-2008  njoly branches: 1.90.2;
Cleanup. Kill linux_sys_msync and use sys___msync13 instead.
No functional changes expected.
 1.89 15-Jan-2008  njoly branches: 1.89.6; 1.89.8;
compat linux (and linux32) uid16 functions cleanup and fixes.

- Move uid16 functions to their own file linux_uid16.c, included by
needed archs (arm, i386 and m68k).
- Add new MI types linux_{u,g}id16_t.
- Add macros to handle linux_uid16_t and uid_t conversions.
- Add linux_sys_getres{uid,gid}16 syscalls, to fix an overflow with
bad sizes given to copyout when linux_sys_getres{uid,gid} are used.
- Update arm syscall table to use more uid16 functions.
 1.88 24-Dec-2007  njoly Kill unneeded linux_sys_getpgid and use native sys_getpgid instead.
 1.87 21-Dec-2007  njoly - Fix setfsuid to return uid on success.
- Replace getfsuid, which never existed on Linux, by correct setfsgid
syscall.

ok by christos and dsl.
 1.86 20-Dec-2007  dsl Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
 1.85 16-Nov-2007  njoly branches: 1.85.2; 1.85.6;
Cleanup. Remove a few linux syscalls definitions, now identical to
native ones (with stackgap and ALT_CHECK_xxx removal). No functional
changes expected.
 1.84 13-Jun-2007  christos branches: 1.84.6; 1.84.8; 1.84.12; 1.84.14;
Get ready for NPTL but don't turn it on as of yet.
 1.83 13-Jun-2007  christos Add futex.
 1.82 04-Mar-2007  christos branches: 1.82.2; 1.82.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.81 09-Feb-2007  ad branches: 1.81.2;
Merge newlock2 to head.
 1.80 01-Sep-2006  matt branches: 1.80.2;
Don't conditionalize *sys_ptrace. The lack of sys_ptrace will be dealt
with differently.
 1.79 30-Aug-2006  matt Update to deal with options PTRACE
 1.78 10-Jun-2006  christos linux getpriority is off-by-20 so use our own function.
From PR/33671: Nicolas Joly
 1.77 11-Dec-2005  christos branches: 1.77.4; 1.77.8; 1.77.14;
merge ktrace-lwp.
 1.76 06-Nov-2005  manu Back out sched_{set|get}affinity addition because it breaks the
build again on i386 now it is fixed for other archs (Tom's fix and
mine got in colision)
 1.75 05-Nov-2005  dogcow mirror manu's amd64 changes to implement linux sched_{seg,get}affinity;
the kernel and linux lkm now compile again.
 1.74 18-Oct-2005  joerg sys_uselib is needed by COMPAT_LINUX for EXEC_AOUT. Since it doesn't get
build when EXEC_AOUT is not defined, the syscalls.master entry has to be
conditionalized. Alpha did so already, so let the other archs catch up
with it.

Go-on: christos
 1.73 16-May-2005  fvdl branches: 1.73.2;
Add clock_* POSIX functions.
 1.72 16-May-2005  fvdl Add *xattr functions (they all return EOPNOTSUPP).
 1.71 20-Sep-2004  jdolecek implement support for Linux statfs64() syscall - 64bit variant of statfs()
 1.70 08-Sep-2004  jdolecek implement basic exit_group(2), which just terminates calling thread;
apparently not many apps use thread groups yet, at least not with default
SuSE 9.1 libraries, so this is enough for now
 1.69 01-Aug-2004  jdolecek sync the syscall lists with Linux kernel 2.6.7
 1.68 01-Aug-2004  jdolecek connect madvise(2) and mincore(2) - apparently the newer Linux libs
don't stub it anymore, so allow the application to take advantage
of them

the Linux calls appear to be compatible in the flag values and semantics,
so a wrapper is not necessary
 1.67 10-Aug-2003  jdolecek add Linux compat arg wrapper for ftruncate64(), and change linux compat
truncate64() wrapper to translate args structure
NetBSD truncate() and ftrucate() have hidden 'pad' argument, so we have
to do the argument translation

Problem found and patch supplied in PR kern/22360 by Ales Krenek

This is the last of syscalls with hidden 'pad' arg we didn't have
wrapper for; all the others (lseek, mmap, pwrite, pread) already had
wrapper before.
 1.66 03-Jul-2003  christos Implement linux_rt_sigreturn for real. Add a hack for more plausible siginfo.
The java segv handler still segv's again inside the signal handler, but our
sample test program now works [gets the proper ucontext].
 1.65 23-Jun-2003  christos branches: 1.65.2;
PR/21937: Todd Vierling: Proper support for mmap2
 1.64 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.63 10-Apr-2002  christos branches: 1.63.4;
add getdents64
 1.62 22-Mar-2002  christos 1. make sure lines don't wrap
2. fix mmap and call it mmap like other ports do, not mmap2
3. implement fcntl64
4. implement mprotect because linux treats args slightly differently.
 1.61 15-Feb-2002  christos - add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.60 30-Sep-2001  manu Fixes my last commit: only mips really need fcntl64 to work now. i386 and
powerpc could use it later if needed. m68k and alpha should never need it.
 1.59 30-Sep-2001  martin Make i386 kernels compile again.
fcntl64 was still marked UNIMPL, but the implementation existed, causing
a missing prototype warning.
XXX I have no clue if this is the correct fix - someone able to test this
please review it!
 1.58 30-May-2001  mrg branches: 1.58.2; 1.58.4;
use _KERNEL_OPT.
 1.57 13-May-2001  manu Improved the accuracy of gettimeofday/settimeofday: Linux stores a srtuct
timezone in the kernel. We now keep track of it for emulated processes.
Tested for powerpc and i386. Untested on m68k, but it should be ok
Alpha has a particular implementation (osf1_sys_gettimeofday), and it has
therefore not been touched.
 1.56 30-Mar-2001  jdolecek Add new syscalls from Linux 2.4.3 to the lists. Not implemented ATM.
 1.55 30-Mar-2001  jdolecek Implement linux_sys_nosys() and use it instead of sys_nosys() for
unimplemented syscalls. Difference is that linux_sys_nosys() doesn't
post SIGSYS to the process. Linux doesn't do that and thus glibc (and
probably other Linux code) doesn't deal with SIGSYS, even through it
generally contains fallback code for ENOSYS case.

This also addresses port-i386/12503, though the issue was already discussed
earlier.
 1.54 27-Jan-2001  thorpej branches: 1.54.2;
getpid(2) is MP-safe.
 1.53 29-Dec-2000  fvdl Don't pass through link(2) directly, as we need to do altpath checks.
 1.52 27-Dec-2000  fvdl Add all uid and gid calls, and do the right thing for the older 16 bit
ones.
 1.51 18-Dec-2000  fvdl Update for 32 bit Linux uid/gid calls.
 1.50 13-Dec-2000  augustss Add sysinfo.
 1.49 12-Dec-2000  jdolecek actually, we need to wrap sys_truncate() call so that the /emul/linux/...
path is tried first
fix ftruncate64 entry - first arg to ftruncate is int fd, not path
 1.48 12-Dec-2000  jdolecek add emulation of Linux truncate64(2), ftruncate64(2), *stat64(2)
 1.47 09-Dec-2000  jdolecek add more unimplemented syscalls to list
 1.46 09-Dec-2000  mycroft Add the %% separators.
 1.45 02-Dec-2000  jdolecek add emulation of linux swapoff(2)
 1.44 01-Dec-2000  jdolecek replace compat_09_sys_setdomainname() with linux_sys_setdomainname(),
compat_12_sys_swapon() with linux_sys_swapon() - this is to drop dependency
on COMPAT_12/COMPAT_09
 1.43 01-Nov-2000  jdolecek support mlockall(), munlockall() - they are same as respective NetBSD syscalls
 1.42 23-Aug-2000  christos add support for syscall 186 [sigaltstack]
 1.41 18-Mar-2000  erh branches: 1.41.4;
Use linux_sys_reboot instead of sys_reboot.
 1.40 03-Feb-2000  abs Add Linux fsuid system calls - from Witold J. Wnuk in PR kern/9335
 1.39 12-Dec-1999  tron Incomplete but already working emulation of Linux's ptrace(2) for i386.
 1.38 05-Dec-1999  tron Add proper stub code to make emulation of Linux's pread(2) and pwrite(2)
work. Fixes PR kern/8945 by Dave Sainty.
 1.37 04-Dec-1999  tron Consistently call signal number arguments "signum".
 1.36 04-Oct-1999  tron branches: 1.36.2; 1.36.8;
Add emulation for scheduler related syscalls. Although they are dummies
even under Linux the posix thread library for "glibc2" requires them.
 1.35 16-Aug-1999  tron Add stime() to syscalls table.
 1.34 14-May-1999  thorpej Emulate the Linux vfork(2) (which is like NetBSD's __vfork14(2)),
{get,set}resuid(2), and {get,set}resgid(2). Note a few more system
calls that we don't yet emulate.
 1.33 13-May-1999  thorpej Emulate the Linux clone(2) system call.
 1.32 30-Mar-1999  abs branches: 1.32.2; 1.32.4;
Since NetBSD has poll(), use it.
Linux oracle install now gets far enough that I want our DBA around to
see if we can finish the job.
 1.31 27-Mar-1999  tron Add emulation for Linux "getcwd" syscall.
 1.30 23-Mar-1999  thorpej Add support for emulating the Linux pread(2) and pwrite(2) system calls;
just call the native NetBSD versions.

PR #7202, Jaromir Dolecek <dolecek@ics.muni.cz>.
 1.29 09-Feb-1999  christos const poisoning
 1.28 10-Dec-1998  christos defopt COMPAT_43
 1.27 03-Oct-1998  christos Attempt to fix the mess.
 1.26 01-Oct-1998  erh Move compat/linux/syscalls.master to i386. Add a few syscalls while I'm here.
 1.25 11-Sep-1998  mycroft Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
 1.24 05-Aug-1998  perry enable nanosleep in linux emul, per pr-5906 from Soren S. Jorvang
 1.23 20-Feb-1998  mycroft Linux's getsid(2) does in fact return a pid, not a pointer.
 1.22 19-Feb-1998  thorpej Change a comment to reflect new makesyscalls.sh behavior.
 1.21 16-Oct-1997  christos ostat -> stat43
 1.20 15-Oct-1997  mycroft Fix a typo inherited from kern/syscalls.master.
 1.19 10-Oct-1997  mycroft Emulate mremap(2) by returning ENOMEM for now. This should be sufficient for
realloc(3) and other uses. From Matthias Scheler in PR 3920.
 1.18 13-Jun-1997  thorpej branches: 1.18.4;
Use compat_12_sys_swapon().
 1.17 07-Apr-1997  augustss Add Linux nice() syscall.
 1.16 20-May-1996  fvdl branches: 1.16.6;
Update list of Linux syscalls and implement the ones that are likely to be
used and doable.
 1.15 18-Dec-1995  fvdl msync, readv and writev were recently added to the Linux kernel; add them
to the emulation as well.
 1.14 09-Dec-1995  mycroft We don't need a private version of fork() here any more.
 1.13 07-Oct-1995  mycroft Prefix names of system call implementation functions with `sys_'.
 1.12 07-Sep-1995  fvdl Fix some bugs & typing problems.
 1.11 27-Aug-1995  fvdl Add a hook for MD ioctl calls, plus a couple of more changes to make
svgalib binaries work on the i386
 1.10 23-Aug-1995  fvdl Emulate some syscalls that appear in Linux 1.3: a select() with normal args,
getdents() and flock().
 1.9 21-Aug-1995  mycroft Implement the old and older uname(2) calls.
 1.8 14-Aug-1995  mycroft Rearrange #includes.
 1.7 24-Jul-1995  fvdl mkdir() has 2 arguments.. fixes PR 1248 (from Brad Spencer)
 1.6 11-Jun-1995  fvdl * Make Linux ELF binaries work. Lots of code duplication, but it will have to do
for now.
* Add a sanity check in linux_uselib
 1.5 06-May-1995  mycroft Add linux_modify_ldt(), if __i386__.
 1.4 07-Apr-1995  fvdl Handle Linux signal tramp code differently. Some changes because of the
now seperate Linux signal trampoline code. Add linux_sigreturn to
syscalls.master.
 1.3 10-Mar-1995  fvdl Add the Linux pause() system call. Fix the arguments to sigsuspend().
 1.2 05-Mar-1995  fvdl Added a few more system calls.
More consistent alternate root file semantics throughout.
 1.1 28-Feb-1995  fvdl Added Linux compat code.
 1.16.6.1 12-Feb-1997  mrg initial work for dynamic swap additions.
 1.18.4.1 14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.32.4.1 21-Jun-1999  thorpej Sync w/ -current.
 1.32.2.2 15-Aug-2000  he Pull up revision 1.40 (requested by abs):
Enable basic versions of Linux fsuid calls.
 1.32.2.1 31-Jan-2000  he Apply patch (requested by abs):
Enable emulation of vfork(2).
 1.36.8.1 27-Dec-1999  wrstuden Pull up to last week's -current.
 1.36.2.7 21-Apr-2001  bouyer Sync with HEAD
 1.36.2.6 11-Feb-2001  bouyer Sync with HEAD.
 1.36.2.5 05-Jan-2001  bouyer Sync with HEAD
 1.36.2.4 13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.36.2.3 08-Dec-2000  bouyer Sync with HEAD.
 1.36.2.2 22-Nov-2000  bouyer Sync with HEAD.
 1.36.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.41.4.2 01-May-2001  he Pull up revision 1.55 (requested by jdolecek):
Make it possible to use a different function for unimplemented
syscalls than sys_nosys(), so that the Linux emulation can avoid
posting SIGSYS and instead just return ENOSYS.
 1.41.4.1 30-Mar-2001  he Pull up revision 1.53 (requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.54.2.7 29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.54.2.6 17-Apr-2002  nathanw Catch up to -current.
 1.54.2.5 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.54.2.4 28-Feb-2002  nathanw Catch up to -current.
 1.54.2.3 08-Oct-2001  nathanw Catch up to -current.
 1.54.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.54.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.58.4.1 01-Oct-2001  fvdl Catch up with -current.
 1.58.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.58.2.2 16-Mar-2002  jdolecek Catch up with -current.
 1.58.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.63.4.3 14-Jun-2004  jmc Pullup patch (requested by skrll in ticket #1708)

Bring netbsd-1-6 inline with -current sources after the mistakes in ticket #1686
 1.63.4.2 11-May-2004  tron Pull up revision 1.67 via patch (requested by wennmach in ticket #1686):
add Linux compat arg wrapper for ftruncate64(), and change linux compat
truncate64() wrapper to translate args structure
NetBSD truncate() and ftrucate() have hidden 'pad' argument, so we have
to do the argument translation
Problem found and patch supplied in PR kern/22360 by Ales Krenek
This is the last of syscalls with hidden 'pad' arg we didn't have
wrapper for; all the others (lseek, mmap, pwrite, pread) already had
wrapper before.
 1.63.4.1 22-Oct-2003  jmc Regen files (requested by tv in ticket #1427)

Proper support for mmap2
 1.65.2.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.65.2.4 24-Sep-2004  skrll Sync with HEAD.
 1.65.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.65.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.65.2.1 03-Aug-2004  skrll Sync with HEAD
 1.73.2.5 21-Jan-2008  yamt sync with head
 1.73.2.4 07-Dec-2007  yamt sync with head
 1.73.2.3 03-Sep-2007  yamt sync with head.
 1.73.2.2 26-Feb-2007  yamt sync with head.
 1.73.2.1 21-Jun-2006  yamt sync with head.
 1.77.14.1 19-Jun-2006  chap Sync with head.
 1.77.8.1 26-Jun-2006  yamt sync with head.
 1.77.4.1 09-Sep-2006  rpaulo sync with head
 1.80.2.1 30-Jan-2007  ad Remove support for SA. Ok core@.
 1.81.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.82.4.1 11-Jul-2007  mjf Sync with head.
 1.82.2.1 15-Jul-2007  ad Sync with head.
 1.84.14.3 18-Feb-2008  mjf Sync with HEAD.
 1.84.14.2 27-Dec-2007  mjf Sync with HEAD.
 1.84.14.1 19-Nov-2007  mjf Sync with HEAD.
 1.84.12.1 18-Nov-2007  bouyer Sync with HEAD
 1.84.8.2 23-Mar-2008  matt sync with HEAD
 1.84.8.1 09-Jan-2008  matt sync with HEAD
 1.84.6.1 21-Nov-2007  joerg Sync with HEAD.
 1.85.6.2 19-Jan-2008  bouyer Sync with HEAD
 1.85.6.1 02-Jan-2008  bouyer Sync with HEAD
 1.85.2.1 26-Dec-2007  ad Sync with head.
 1.89.8.3 20-Nov-2008  christos merge with head.
 1.89.8.2 01-Nov-2008  christos Sync with head.
 1.89.8.1 29-Mar-2008  christos Welcome to the time_t=long long dev_t=uint64_t branch.
 1.89.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.89.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.90.2.1 18-May-2008  yamt sync with head.
 1.91.8.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.91.4.2 14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.91.4.1 10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.91.2.4 11-Aug-2010  yamt sync with head.
 1.91.2.3 11-Mar-2010  yamt sync with head
 1.91.2.2 20-Jun-2009  yamt sync with head
 1.91.2.1 04-May-2009  yamt sync with head.
 1.93.4.1 20-Nov-2008  snj Pull up following revision(s) (requested by njoly in ticket #81):
sys/compat/linux/arch/mips/syscalls.master: revision 1.30
sys/compat/linux/arch/m68k/syscalls.master: revision 1.63
sys/compat/linux32/arch/amd64/syscalls.master: revision 1.39
sys/compat/linux/arch/alpha/syscalls.master: revision 1.63
sys/compat/linux/arch/powerpc/syscalls.master: revision 1.38
sys/compat/linux32/common/linux32_time.c: revision 1.22
sys/compat/linux/arch/amd64/syscalls.master: revision 1.25
sys/compat/linux/arch/i386/syscalls.master: revision 1.94
sys/compat/linux/arch/arm/syscalls.master: revision 1.36
sys/compat/linux/common/linux_time.c: revision 1.26
Fix nanosleep(2) on 64-bit archs. Do not call native nanosleep
syscall, but rather a modified version the will take care of `struct
timespec' conversions.
 1.93.2.1 19-Jan-2009  skrll Sync with HEAD.
 1.99.2.1 23-Jul-2009  jym Sync with HEAD.
 1.101.4.4 31-May-2011  rmind sync with head
 1.101.4.3 21-Apr-2011  rmind sync with head
 1.101.4.2 05-Mar-2011  rmind sync with head
 1.101.4.1 30-May-2010  rmind sync with head
 1.101.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.101.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.103.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.106.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.106.2.2 30-Oct-2012  yamt sync with head
 1.106.2.1 17-Apr-2012  yamt sync with head
 1.107.10.4 03-Dec-2017  jdolecek update from HEAD
 1.107.10.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.107.10.2 23-Jun-2013  tls resync from head
 1.107.10.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.109.4.1 18-May-2014  rmind sync with head
 1.112.2.1 10-Aug-2014  tls Rebase.
 1.118.2.1 17-Apr-2017  snj Pull up following revision(s) (requested by manu in ticket #1354):
sys/compat/linux/arch/alpha/syscalls.master: revision 1.92 via patch
sys/compat/linux/arch/amd64/syscalls.master: revision 1.58 via patch
sys/compat/linux/arch/arm/syscalls.master: revision 1.65 via patch
sys/compat/linux/arch/i386/syscalls.master: revision 1.122 via patch
sys/compat/linux/arch/m68k/syscalls.master: revision 1.91 via patch
sys/compat/linux/arch/mips/syscalls.master: revision 1.61 via patch
sys/compat/linux/arch/powerpc/syscalls.master: revision 1.70 via patch
sys/compat/linux/common/linux_misc.c: revision 1.234
sys/compat/linux/common/linux_signal.h: revision 1.31
Add pselect6 Linux system call.
This lets Matlab R2016A run on NetBSD/amd64
 1.119.2.3 05-Feb-2017  skrll Sync with HEAD
 1.119.2.2 05-Oct-2016  skrll Sync with HEAD
 1.119.2.1 06-Apr-2015  skrll Sync with HEAD
 1.120.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.120.2.1 26-Jul-2016  pgoyette Sync with HEAD
 1.122.16.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.124.2.2 17-Dec-2020  thorpej Add suppport for Linux preadv(2) and pwritev(2). Same as native, except
for the silly way that the offset argument is passed in.
 1.124.2.1 15-Dec-2020  thorpej Add Linux eventfd, timerfd, and POSIX timer calls.
 1.135.2.1 02-Aug-2025  perseant Sync with HEAD

RSS XML Feed