Home | History | Annotate | Download | only in common
History log of /src/sys/compat/linux/common/linux_misc_notalpha.c
RevisionDateAuthorComments
 1.115  22-May-2022  andvar fix various small typos, mainly in comments.
 1.114  25-Nov-2021  ryo add support COMPAT_LINUX32 for aarch64
 1.113  23-Sep-2021  christos remove stray char.
 1.112  23-Sep-2021  ryo add support COMPAT_LINUX for aarch64
 1.111  04-Dec-2020  thorpej Rewrite linux_sys_alarm() to use dogetitimer() / dosetitimer(), rather
than fiddling with process timers directly.
 1.110  29-Nov-2018  maxv branches: 1.110.12;
Improve my kern_time.c::rev1.192, systematically clear the buffers we get
from 'ptimer_pool' to prevent more leaks.
 1.109  09-Nov-2014  maxv branches: 1.109.12; 1.109.18; 1.109.20;
Do not uselessly include <sys/malloc.h>.
 1.108  02-Nov-2010  chs branches: 1.108.18; 1.108.34;
implement the following syscalls for linux32:
truncate64
ftruncate64
profil
ioperm
iopl
setdomainname
modify_ldt
statfs64
fstatfs64

note that iopl(), ioperm() and modify_ldt() just call
the respective 64-bit handlers, which don't do anything yet.
 1.107  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.106  02-Jun-2009  njoly branches: 1.106.2; 1.106.4;
Make nice(2) return EPERM on error, not EACCES (from sys_setpriority).
 1.105  29-Dec-2008  njoly branches: 1.105.2;
Fix stime(2) inverted copyin arguments.
 1.104  03-Oct-2008  njoly branches: 1.104.2;
Compat linux/linux32 nice(2) fix. The syscall argument is an increment
to be added to the current nice value, not an absolute value to be
set.
 1.103  15-Jul-2008  christos Use more timespecs internally. From Alexander Shishkin and me.
Welcome to 4.99.70, 30 more to go for 100.
 1.102  28-Apr-2008  martin branches: 1.102.2; 1.102.4; 1.102.6;
Remove clause 3 and 4 from TNF licenses
 1.101  21-Apr-2008  ad branches: 1.101.2;
timer fixes for PR 37093:

- Fix serious concurrency problems, making the code MT and MP safe in
the process.
- Don't allocate memory or inspect process state from hardclock().
 1.100  26-Dec-2007  njoly branches: 1.100.6; 1.100.8;
Fix readdir syscall retval to return 1 (instead of getdents number of
byte read) on success.
 1.99  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.98  08-Dec-2007  dsl branches: 1.98.4;
ANSIfy most of the function definitions in sys/compat (but not ndis).
All by the magic of sed ...
 1.97  25-Nov-2007  elad branches: 1.97.2;
Refactor time modification checks and place them in the secmodel code.

okay christos@
 1.96  07-Nov-2007  njoly Remove remaining 64-bit compat linux syscalls linux_sys_xxx() (except
for ones without arguments), and replace them by their 32-bit
equivalent linux32_sys_xxxx().
 1.95  19-Oct-2007  njoly branches: 1.95.2;
Add compat_linux and exec_linux_elf lkm support for amd64:
- Add needed COMPAT_OSSAUDIO to GENERIC.
- Add missing includes needed by linux_syscallargs.h.
- Add lkm building.
 1.94  09-Jul-2007  ad branches: 1.94.6; 1.94.8; 1.94.12;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.93  23-Jun-2007  dsl These now need sys/prot.h
 1.92  12-May-2007  dsl Change the compat sys_[fl]utime code to not use the stackgap.
 1.91  30-Apr-2007  dsl Include extra header (vfs_syscalls.h).
 1.90  30-Apr-2007  dsl Rework compat stat() and statvfs() code so that it no longer uses the stackgap.
 1.89  23-Apr-2007  christos avoid zerodivide.
 1.88  22-Apr-2007  dsl Change the way that emulations locate files within the emulation root to
avoid having to allocate space in the 'stackgap'
- which is very LWP unfriendly.
The additional code for non-emulation namei() is trivial, the reduction for
the emulations is massive.
The vnode for a processes emulation root is saved in the cwdi structure
during process exec.
If the emulation root the TRYEMULROOT flag are set, namei() will do an initial
search for absolute pathnames in the emulation root, if that fails it will
retry from the normal root.
".." at the emulation root will always go to the real root, even in the middle
of paths and when expanding symlinks.
Absolute symlinks found using absolute paths in the emulation root will be
relative to the emulation root (so /usr/lib/xxx.so -> /lib/xxx.so links
inside the emulation root don't need changing).
If the root of the emulation would be returned (for an emulation lookup), then
the real root is returned instead (matching the behaviour of emul_lookup,
but being a cheap comparison here) so that programs that scan "../.."
looking for the root dircetory don't loop forever.
The target for symbolic links is no longer mangled (it used to get the
CHECK_ALT_xxx() treatment, so could get /emul/xxx prepended).
CHECK_ALT_xxx() are no more. Most of the change is deleting them, and adding
TRYEMULROOT to the flags to NDINIT().
A lot of the emulation system call stubs could now be deleted.
 1.87  14-Mar-2007  njoly Fix compat linux statfs/fstatfs syscalls on amd64.
- Do not use statfs64/fstatfs64 as they have an extra size argument.
- Add full 64bit linux struct statfs support.

ok by manu
 1.86  04-Mar-2007  christos branches: 1.86.2; 1.86.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.85  09-Feb-2007  ad branches: 1.85.2;
Merge newlock2 to head.
 1.84  16-Nov-2006  christos branches: 1.84.2;
__unused removal on arguments; approved by core.
 1.83  14-Nov-2006  elad Clean some KAUTH_GENERIC_ISSUSER usage in compat code.
 1.82  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.81  23-Jul-2006  ad branches: 1.81.4; 1.81.6;
Use the LWP cached credentials where sane.
 1.80  07-Jun-2006  kardel merge FreeBSD timecounters from branch simonb-timecounters
- struct timeval time is gone
time.tv_sec -> time_second
- struct timeval mono_time is gone
mono_time.tv_sec -> time_uptime
- access to time via
{get,}{micro,nano,bin}time()
get* versions are fast but less precise
- support NTP nanokernel implementation (NTP API 4)
- further reading:
Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf
NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
 1.79  14-May-2006  elad branches: 1.79.2;
integrate kauth.
 1.78  10-May-2006  yamt don't allocate struct statvfs on stack as it's too large.
while i'm here, remove some unnecessary casts.
 1.77  09-Feb-2006  manu branches: 1.77.2; 1.77.4; 1.77.6;
Add initial (but unfinished) COMPAT_LINUX32 for amd64. This is good enough so
that the i386 license manager part of amd64 version of Fluent works.

While I'm here, add SysV IPC to COMPAT_LINUX/amd64
 1.76  11-Dec-2005  christos branches: 1.76.2; 1.76.4; 1.76.6;
merge ktrace-lwp.
 1.75  05-Dec-2005  christos - make settime take timespec.
- avoid wrapping of time in settime.
- pass struct proc down so that we can log a detailed message.
 1.74  03-May-2005  manu branches: 1.74.2;
First work on COMPAT_LINUX/amd64
Process startup and dynamiclinking work, but processes hang due to
Linux arch_prctl(2) not being really supported yet.
 1.73  26-Feb-2005  perry nuke trailing whitespace
 1.72  07-Oct-2004  erh branches: 1.72.4; 1.72.6;
PR kern/27184: Have linux_sys_waitpid() call linux_sys_wait4() so the
supported options can't get out of sync. This add support for the
linux __WCLONE and __WALL options (NetBSD version: WALTSIG and WALLSIG)
Add a diagnostic check to see if the one unhandled option (__WNOTHREAD) is
specified.
This should prevent linux processes from losing their children and creating
tons of zombie processes.
 1.71  24-Sep-2004  he Since the implementation of bsd_to_linux_statfs64() is conditional,
also make the forward declaration conditional. Fixes compile
problem for m68k ports.
 1.70  20-Sep-2004  jdolecek implement support for Linux statfs64() syscall - 64bit variant of statfs()
 1.69  29-Jun-2003  fvdl branches: 1.69.2; 1.69.4;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.68  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.67  05-Mar-2003  dsl Reimplement linux_sys_setresgid() in terms of do_setresgid()
 1.66  23-Feb-2003  enami Remember the allocated ptimer object so that it won't leak.
 1.65  19-Feb-2003  jdolecek update emul alarm syscalls to recent timer changes

problem encountered by Luke Mewburn for linux emul, problem spot
found by Enami Tsugutomo
 1.64  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.63  03-Apr-2002  tron branches: 1.63.6;
Fix a cut and paste error in the emulation of getresgid(2): it returned
the effective user id as effective group id.
 1.62  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.61  13-Nov-2001  lukem add RCSIDs (including regeneration of files as appropriate)
 1.60  22-Dec-2000  jdolecek branches: 1.60.2; 1.60.4;
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.59  01-Dec-2000  jdolecek add e_path (emulation path) to struct emul, which replaces emulation-specific
*_emul_path variables

change macros CHECK_ALT_{CREAT|EXIST} to use that, 'root' doesn't need
to be passed explicitly any more and *_CHECK_ALT_{CREAT|EXIST} are removed
change explicit emul_find() calls in probe functions to get the emulation
path from the checked exec switch entry's emulation

remove no longer needed header files

add e_flags and e_syscall to struct emul; these are unsed and empty for now
 1.58  29-Aug-2000  sommerfeld Emulation stackgap sanity checks, based partly on fixes from
FreeBSD-SA00:42.

Change stackgap_alloc to bounds-check the allocation vs. the stack
gap, returning NULL if there isn't room for the allocation.

Change emul_find() to check for a NULL return from stackgap_alloc()
and convert that into ENAMETOOLONG.

Reorder various emulation syscalls so that all *_CHECK_ALT_{EXIST,CREAT}
calls (which turn into emul_find() under the covers come *after* small,
fixed-size stackgap_alloc() calls.

Clean up ibcs2 {get,set}groups.
 1.57  07-Aug-2000  itohy Add #include <sys/proc.h>, since this file touches members of struct proc.
 1.56  13-Jul-2000  thorpej Add a comment about the hzto() return value.
 1.55  29-Jun-2000  mrg remove include of <vm/vm.h>
 1.54  26-Jun-2000  mrg remove redundant vm includes
 1.53  23-Mar-2000  thorpej branches: 1.53.4;
New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
 1.52  16-Aug-1999  tron branches: 1.52.2;
Add emulation for Linux stime(2) required for MuPAD's X11 interface.
 1.51  14-May-1999  thorpej Emulate the Linux {get,set}resgid(2) system calls.
 1.50  09-Feb-1999  christos branches: 1.50.2; 1.50.4;
const poisoning.
 1.49  04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.48  03-Oct-1998  christos Attempt to fix the mess.
 1.47  01-Oct-1998  erh Wheeee!: 8-way split of compat/linux/linux_misc.c into common code and multi-architechture functions.
 1.46  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.45  08-Sep-1998  rvb ufs_readdir no longer checks if vp->v_type != VDIR so
the individual emulated readdirs must check.
Since netbsd and freebsd return EINVAL for the error
and I don't know what the other platforms do, return
EINVAL for them too.
 1.44  18-Aug-1998  thorpej Add some braces to make egcs happy.
 1.43  07-Jul-1998  thorpej Oops, fix typo, pointed out by Urban Boquist <boquist@cs.chalmers.se>.
 1.42  02-Jul-1998  thorpej Implement the shrinking and no-change bits of the Linux mremap(2) system
call, provided by Urban Boquist <boquist@cs.chalmers.se> in PR #5693.

Add a comment about how one might implement the growing bit of mremap(2).
 1.41  24-Mar-1998  mycroft Fix typo in utime().
 1.40  03-Mar-1998  fvdl Only free cookiebuf when sure that the vop actually allocated it.
 1.39  01-Mar-1998  fvdl Merge with Lite2 + local changes
 1.38  20-Feb-1998  mycroft Linux's getsid(2) does in fact return a pid, not a pointer.
 1.37  14-Feb-1998  thorpej Add a comment clearly describing that Linux's getsid(2) differs from
the XPG4.2 definition in that it returns the kernel virtual address
of the session structure, rather than the process group ID of the
session leader.
 1.36  21-Oct-1997  fvdl branches: 1.36.2;
msync -> __msync13
 1.35  10-Oct-1997  fvdl Fix braino in my interpretation of the eof flag to VOP_READDIR.
 1.34  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.33  10-Oct-1997  fvdl Signal error when getting a 64 bit offset cookie that can't be stored
in 32 bits. Provide an error message to the user, and return EINVAL.
Also, pay attention to the EOF flag from VOP_READDIR. Correct a
misspell in a panic message.
 1.32  04-Aug-1997  bouyer Fix "missing entries" bug when reading large directories: When reading a
directory and running out of space in the dest buffer, off should point to the
current entry (which was not saved) and not to the next.
I discovered this bug using linux and SunOS emulation over NFS, but seems to
affect other emulations as well.
 1.31  27-Jul-1997  augustss branches: 1.31.2;
Changes to the sudio system:
- It is now possible to handle devices that want "looping" DMA,
e.g. the SoundBlaster correctly. The WSS and SB drivers use this.
To do this several new methods were introduced in audio_hw_if.
- Different silence handling (forced by previous change).
- The audio driver can now be mmap()-ed, but due to problems in
the VM system only for writing for now.
- The OSS (Linux) audio emulation takes advantage of some of the
new features.
 1.30  07-Apr-1997  augustss Add Linux nice() syscall.
 1.29  10-Aug-1996  mycroft sys/dir.h -> sys/dirent.h
 1.28  23-Jun-1996  mycroft Catch up with setre[ug]id() changes.
 1.27  20-May-1996  fvdl branches: 1.27.4;
Update list of Linux syscalls and implement the ones that are likely to be
used and doable.
 1.26  04-Apr-1996  christos - Prototyping changes
- Fix bug that gcc -Wall found in linux_sys_getpgid()
 1.25  03-Apr-1996  mycroft Add explicit return types.
 1.24  18-Dec-1995  fvdl msync, readv and writev were recently added to the Linux kernel; add them
to the emulation as well.
 1.23  09-Dec-1995  mycroft We don't need a private version of fork() here any more.
 1.22  09-Oct-1995  mycroft Use cookies for directory offset, mostly from Greg Hudson.
 1.21  07-Oct-1995  mycroft Prefix names of system call implementation functions with `sys_'.
 1.20  19-Sep-1995  thorpej Make system calls conform to a standard prototype and bring those
prototypes into scope.
 1.19  13-Sep-1995  fvdl Update offset elsewhere in linux_getdents(); still emulate a bug in
Linux, but avoid endless loops.
 1.18  07-Sep-1995  fvdl Fix some bugs & typing problems.
 1.17  23-Aug-1995  fvdl Emulate some syscalls that appear in Linux 1.3: a select() with normal args,
getdents() and flock().
 1.16  21-Aug-1995  fvdl Check for status NULL argument in wait4 and waitpid. From PR #1392
by Thomas EberHardt.
 1.15  21-Aug-1995  mycroft Implement the old and older uname(2) calls.
 1.14  16-Aug-1995  mycroft If updating the timeval would make it negative, zero it instead.
 1.13  16-Aug-1995  mycroft Allow bogus timevals, per Linux.
 1.12  14-Aug-1995  mycroft Export bsd_to_linux_sig[], and use it.
 1.11  14-Aug-1995  mycroft Rearrange #includes.
 1.10  13-Aug-1995  mycroft Linux doesn't allow select(2) to be restarted.
 1.9  24-Jun-1995  christos Use compat_util.[ch].
 1.8  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.7  11-Jun-1995  fvdl Linux select() returns the amount of time left before a timeout would have
occured in the timeval structure. Emulate this behavior. Reported by
Theo de Raadt.
 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  10-Jun-1995  mycroft Rename the dirent fields to match Linux. Make sure the requested buffer
is no larger than MAXBSIZE.
 1.4  22-Mar-1995  mycroft Emulate the return value of times() better.
 1.3  21-Mar-1995  mycroft Update to use timer{add,sub}().
 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.27.4.2  10-Dec-1996  mycroft From trunk:
sys/dir.h -> sys/dirent.h
 1.27.4.1  10-Dec-1996  mycroft From trunk:
Implement setre[ug]id() for real.
 1.31.2.2  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.31.2.1  23-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.36.2.1  08-May-1998  mycroft Pull up 1.41, per request of mycroft.
 1.50.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.50.2.1  09-Sep-2000  he Pull up revision 1.58 (requested by simonb):
More carefully check length of user-supplied data, in particular
make sure we don't overrun the available stack gap in stack gap
allocations.
 1.52.2.3  05-Jan-2001  bouyer Sync with HEAD
 1.52.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.52.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.53.4.2  30-Aug-2000  sommerfeld Pull up:
syssrc/sys/compat/common/compat_util.c 1.16
syssrc/sys/compat/hpux/hpux_file.c 1.14
syssrc/sys/compat/ibcs2/ibcs2_misc.c 1.52
syssrc/sys/compat/ibcs2/ibcs2_stat.c 1.16
syssrc/sys/compat/linux/common/linux_file.c 1.29
syssrc/sys/compat/linux/common/linux_misc_notalpha.c 1.58
syssrc/sys/compat/svr4/svr4_stat.c 1.40
syssrc/sys/compat/svr4/svr4_stream.c 1.40,1.41

Approved by thorpej and jhawk.

Emulation stackgap sanity checks, based partly on fixes from
FreeBSD-SA00:42.

Change stackgap_alloc to bounds-check the allocation vs. the stack
gap, returning NULL if there isn't room for the allocation.

Change emul_find() to check for a NULL return from stackgap_alloc()
and convert that into ENAMETOOLONG.

Reorder various emulation syscalls so that all *_CHECK_ALT_{EXIST,CREAT}
calls (which turn into emul_find() under the covers come *after* small,
fixed-size stackgap_alloc() calls.

Clean up ibcs2 {get,set}groups.

Add range checks to svr4_stream.c
 1.53.4.1  13-Jul-2000  thorpej Pull up rev. 1.56:
Add a comment about the hzto() return value.
 1.60.4.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.60.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.60.2.9  05-Oct-2002  gmcgarry Rework for new struct ptimers.
 1.60.2.8  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.60.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.60.2.6  17-Apr-2002  nathanw Catch up to -current.
 1.60.2.5  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.60.2.4  06-Dec-2001  wdk #include <sys/lwp.h> for Mips architectures.
 1.60.2.3  17-Nov-2001  nathanw Reimplement linux_sys_alarm() in terms of the new timers.
 1.60.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.60.2.1  05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.63.6.1  18-Dec-2002  gmcgarry Merge pcred and ucred, and poolify. TBD: check backward compatibility
and factor-out some higher-level functionality.
 1.69.4.1  12-Nov-2004  jmc Pullup rev 1.72 (requested by christos in ticket #950)

Prevent linux processes from losing their children and creating
tons of zombie processes.
 1.69.2.8  11-Dec-2005  christos Sync with head.
 1.69.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.69.2.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.69.2.5  19-Oct-2004  skrll Sync with HEAD
 1.69.2.4  24-Sep-2004  skrll Sync with HEAD.
 1.69.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.69.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.69.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.72.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.72.4.1  29-Apr-2005  kent sync with -current
 1.74.2.8  21-Jan-2008  yamt sync with head
 1.74.2.7  07-Dec-2007  yamt sync with head
 1.74.2.6  15-Nov-2007  yamt sync with head.
 1.74.2.5  27-Oct-2007  yamt sync with head.
 1.74.2.4  03-Sep-2007  yamt sync with head.
 1.74.2.3  26-Feb-2007  yamt sync with head.
 1.74.2.2  30-Dec-2006  yamt sync with head.
 1.74.2.1  21-Jun-2006  yamt sync with head.
 1.76.6.3  01-Jun-2006  kardel Sync with head.
 1.76.6.2  22-Apr-2006  simonb Sync with head.
 1.76.6.1  04-Feb-2006  simonb Adapt for timecounters: mostly use get*time() and use "time_second"
instead of "time.tv_sec".
 1.76.4.1  09-Sep-2006  rpaulo sync with head
 1.76.2.1  18-Feb-2006  yamt sync with head.
 1.77.6.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.77.4.4  11-May-2006  elad sync with head
 1.77.4.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.77.4.2  10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.77.4.1  08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.77.2.3  11-Aug-2006  yamt sync with head
 1.77.2.2  26-Jun-2006  yamt sync with head.
 1.77.2.1  24-May-2006  yamt sync with head.
 1.79.2.1  19-Jun-2006  chap Sync with head.
 1.81.6.2  10-Dec-2006  yamt sync with head.
 1.81.6.1  22-Oct-2006  yamt sync with head
 1.81.4.2  30-Jan-2007  ad Remove support for SA. Ok core@.
 1.81.4.1  18-Nov-2006  ad Sync with head.
 1.84.2.2  07-Oct-2007  pavel Pull up following revision(s) (requested by hauke in ticket #919):
sys/compat/linux/common/linux_misc_notalpha.c: revision 1.89
avoid zerodivide.
 1.84.2.1  20-Apr-2007  bouyer branches: 1.84.2.1.2;
Pull up following revision(s) (requested by njoly in ticket #581):
sys/compat/linux/common/linux_misc.c: revision 1.168
sys/compat/linux/arch/amd64/syscalls.master: revision 1.18
sys/compat/linux/common/linux_types.h: revision 1.25
sys/compat/linux/arch/amd64/linux_machdep.h: revision 1.6
sys/compat/linux/common/linux_misc_notalpha.c: revision 1.87
Fix compat linux statfs/fstatfs syscalls on amd64.
- Do not use statfs64/fstatfs64 as they have an extra size argument.
- Add full 64bit linux struct statfs support.
 1.84.2.1.2.1  29-Oct-2007  wrstuden Catch up with 4.0 RC3
 1.85.2.4  17-May-2007  yamt sync with head.
 1.85.2.3  07-May-2007  yamt sync with head.
 1.85.2.2  24-Mar-2007  yamt sync with head.
 1.85.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.86.4.1  11-Jul-2007  mjf Sync with head.
 1.86.2.4  15-Jul-2007  ad Sync with head.
 1.86.2.3  01-Jul-2007  ad Adapt to callout API change.
 1.86.2.2  27-May-2007  ad Sync with head.
 1.86.2.1  10-Apr-2007  ad Sync with head.
 1.94.12.2  13-Nov-2007  bouyer Sync with HEAD
 1.94.12.1  25-Oct-2007  bouyer Sync with HEAD.
 1.94.8.3  09-Jan-2008  matt sync with HEAD
 1.94.8.2  08-Nov-2007  matt sync with -HEAD
 1.94.8.1  06-Nov-2007  matt sync with HEAD
 1.94.6.4  09-Dec-2007  jmcneill Sync with HEAD.
 1.94.6.3  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.94.6.2  11-Nov-2007  joerg Sync with HEAD.
 1.94.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.95.2.4  18-Feb-2008  mjf Sync with HEAD.
 1.95.2.3  27-Dec-2007  mjf Sync with HEAD.
 1.95.2.2  08-Dec-2007  mjf Sync with HEAD.
 1.95.2.1  19-Nov-2007  mjf Sync with HEAD.
 1.97.2.1  26-Dec-2007  ad Sync with head.
 1.98.4.1  02-Jan-2008  bouyer Sync with HEAD
 1.100.8.1  18-May-2008  yamt sync with head.
 1.100.6.4  17-Jan-2009  mjf Sync with HEAD.
 1.100.6.3  05-Oct-2008  mjf Sync with HEAD.
 1.100.6.2  28-Sep-2008  mjf Sync with HEAD.
 1.100.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.101.2.4  11-Aug-2010  yamt sync with head.
 1.101.2.3  20-Jun-2009  yamt sync with head
 1.101.2.2  04-May-2009  yamt sync with head.
 1.101.2.1  16-May-2008  yamt sync with head.
 1.102.6.1  19-Oct-2008  haad Sync with HEAD.
 1.102.4.1  18-Jul-2008  simonb Sync with head.
 1.102.2.4  10-Oct-2008  skrll Sync with HEAD.
 1.102.2.3  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.102.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.102.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.104.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.105.2.1  23-Jul-2009  jym Sync with HEAD.
 1.106.4.1  05-Mar-2011  rmind sync with head
 1.106.2.2  06-Nov-2010  uebayasi Sync with HEAD.
 1.106.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.108.34.2  14-Dec-2018  martin Additionally pull up following revision(s) (requested by maxv in ticket #1660):

sys/compat/linux/common/linux_misc_notalpha.c: revision 1.110
sys/kern/kern_time.c: revision 1.193

Improve my kern_time.c::rev1.192, systematically clear the buffers we get
from 'ptimer_pool' to prevent more leaks.
 1.108.34.1  17-Jan-2015  martin branches: 1.108.34.1.2; 1.108.34.1.6;
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.108.34.1.6.1  14-Dec-2018  martin Additionally pull up following revision(s) (requested by maxv in ticket #1660):

sys/compat/linux/common/linux_misc_notalpha.c: revision 1.110
sys/kern/kern_time.c: revision 1.193

Improve my kern_time.c::rev1.192, systematically clear the buffers we get
from 'ptimer_pool' to prevent more leaks.
 1.108.34.1.2.1  14-Dec-2018  martin Additionally pull up following revision(s) (requested by maxv in ticket #1660):

sys/compat/linux/common/linux_misc_notalpha.c: revision 1.110
sys/kern/kern_time.c: revision 1.193

Improve my kern_time.c::rev1.192, systematically clear the buffers we get
from 'ptimer_pool' to prevent more leaks.
 1.108.18.1  03-Dec-2017  jdolecek update from HEAD
 1.109.20.1  10-Jun-2019  christos Sync with HEAD
 1.109.18.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.109.12.1  30-Nov-2018  martin Additionally pull up following revision(s) (requested by maxv in ticket #1110):

sys/compat/linux/common/linux_misc_notalpha.c: revision 1.110
sys/kern/kern_time.c: revision 1.193

Improve my kern_time.c::rev1.192, systematically clear the buffers we get
from 'ptimer_pool' to prevent more leaks.
 1.110.12.1  14-Dec-2020  thorpej Sync w/ HEAD.

RSS XML Feed