freebsd-dev/sys/compat/linux
John Baldwin 91d5354a2c Locking for the per-process resource limits structure.
- struct plimit includes a mutex to protect a reference count.  The plimit
  structure is treated similarly to struct ucred in that is is always copy
  on write, so having a reference to a structure is sufficient to read from
  it without needing a further lock.
- The proc lock protects the p_limit pointer and must be held while reading
  limits from a process to keep the limit structure from changing out from
  under you while reading from it.
- Various global limits that are ints are not protected by a lock since
  int writes are atomic on all the archs we support and thus a lock
  wouldn't buy us anything.
- All accesses to individual resource limits from a process are abstracted
  behind a simple lim_rlimit(), lim_max(), and lim_cur() API that return
  either an rlimit, or the current or max individual limit of the specified
  resource from a process.
- dosetrlimit() was renamed to kern_setrlimit() to match existing style of
  other similar syscall helper functions.
- The alpha OSF/1 compat layer no longer calls getrlimit() and setrlimit()
  (it didn't used the stackgap when it should have) but uses lim_rlimit()
  and kern_setrlimit() instead.
- The svr4 compat no longer uses the stackgap for resource limits calls,
  but uses lim_rlimit() and kern_setrlimit() instead.
- The ibcs2 compat no longer uses the stackgap for resource limits.  It
  also no longer uses the stackgap for accessing sysctl's for the
  ibcs2_sysconf() syscall but uses kernel_sysctl() instead.  As a result,
  ibcs2_sysconf() no longer needs Giant.
- The p_rlimit macro no longer exists.

Submitted by:	mtm (mostly, I only did a few cleanups and catchups)
Tested on:	i386
Compiled on:	alpha, amd64
2004-02-04 21:52:57 +00:00
..
linux_file.c Do not call VOP_GETATTR in getdents function. It does not serve any 2003-11-19 04:12:32 +00:00
linux_getcwd.c Add a MAC check for VOP_LOOKUP() in the Linux getwcd() implementation. 2003-11-17 18:57:20 +00:00
linux_ioctl.c Replace the if_name and if_unit members of struct ifnet with new members 2003-10-31 18:32:15 +00:00
linux_ioctl.h Add an ioctl handler for the DRM. This removes the need for the DRM_LINUX 2003-04-24 23:36:35 +00:00
linux_ipc.c Back out the following revisions: 2003-11-05 01:53:10 +00:00
linux_ipc.h - Add support for IPC_64 extensions into shmctl(2), semctl(2) and msgctl(2); 2002-10-11 11:43:09 +00:00
linux_mib.c Use __FBSDID(). 2003-06-10 21:29:12 +00:00
linux_mib.h Add a cleanup function to destroy the osname_lock and call it on module 2003-03-26 18:29:44 +00:00
linux_misc.c Locking for the per-process resource limits structure. 2004-02-04 21:52:57 +00:00
linux_signal.c Use __FBSDID(). 2003-06-10 21:29:12 +00:00
linux_signal.h Remove __P. 2002-03-20 05:48:58 +00:00
linux_socket.c Quick fix for LINT breakage caused by interface changes in accept(2), etc. 2003-12-25 09:59:02 +00:00
linux_socket.h Fix typo in the BSD copyright: s/withough/without/ 2002-06-02 20:05:59 +00:00
linux_stats.c Prevent leaking of fsid to non-root users in linux_statfs and linux_fstatfs. 2003-11-05 23:52:54 +00:00
linux_sysctl.c Use __FBSDID(). 2003-06-10 21:29:12 +00:00
linux_uid16.c Reject negative ngrp arguments in linux_setgroups() and linux_setgroups16(); 2003-10-21 11:00:33 +00:00
linux_util.c VOP_GETATTR() wants the vnode passed to it to be locked. Instead 2004-01-14 22:38:03 +00:00
linux_util.h Add function linux_msg() for regulating output from the linux emulation 2003-01-02 02:19:10 +00:00