History log of /freebsd-current/sys/kern/init_sysent.c
Revision Date Author Comments
# 40895761 21-May-2024 Mariusz Zaborski <oshogbo@FreeBSD.org>

Regen


# 66383845 13-May-2024 Mariusz Zaborski <oshogbo@FreeBSD.org>

syscalls: regen

Pointed out by: trasz


# 38bfddf5 19-Jan-2024 Konstantin Belousov <kib@FreeBSD.org>

regen


# 7893419d 04-Dec-2023 Brooks Davis <brooks@FreeBSD.org>

Remove never implemented sbrk and sstk syscalls

Both system calls were stubs returning EOPNOTSUPP and libc did not
provide _ or __sys_ prefixed symbols. The actual implementation of
sbrk(2) is on top of the undocumented break(2) system call.

Technically this is a change in ABI, but no non-contrived program ever
called these syscalls.

Reviewed by: kib, emaste
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D42872


# af93fea7 23-Aug-2023 Jake Freeland <jfree@freebsd.org>

timerfd: Move implementation from linux compat to sys/kern

Move the timerfd impelemntation from linux compat code to sys/kern. Use
it to implement the new system calls for timerfd. Add a hook to kern_tc
to allow timerfd to know when the system time has stepped. Add kqueue
support to timerfd. Adjust a few names to be less Linux centric.

RelNotes: YES
Reviewed by: markj (on irc), imp, kib (with reservations), jhb (slack)
Differential Revision: https://reviews.freebsd.org/D38459


# c7df8720 22-Aug-2023 Konstantin Belousov <kib@FreeBSD.org>

Regen


# 9121945d 09-Jun-2023 Warner Losh <imp@FreeBSD.org>

Regenerate sysent stuff after $FreeBSD$ removal

Sponsored by: Netflix


# 9abba78a 20-Apr-2023 Warner Losh <imp@FreeBSD.org>

syscalls: regenerate

The 4.2 sigreturn was a bit of a enima so the 4.2 was remove. Regenerate
to cope the very minor changes in comments and one string.

Sponsored by: Netflix


# 11cdffc6 31-Mar-2023 Konstantin Belousov <kib@FreeBSD.org>

Regen


# 6a0a6345 25-Mar-2023 Konstantin Belousov <kib@FreeBSD.org>

Regen


# f99cc5a3 14-Apr-2022 Ed Maste <emaste@FreeBSD.org>

sysent: regen after 52a1d90c8bfe, posix_fadvise in capmode


# 8601fca7 28-Mar-2022 Brooks Davis <brooks@FreeBSD.org>

sysent: regen for syscallarg_t


# 0910a41e 12-Jan-2022 Brooks Davis <brooks@FreeBSD.org>

Revert "syscallarg_t: Add a type for system call arguments"

Missed issues in truss on at least armv7 and powerpcspe need to be
resolved before recommit.

This reverts commit 3889fb8af0b611e3126dc250ebffb01805152104.
This reverts commit 1544e0f5d1f1e3b8c10a64cb899a936976ca7ea4.


# 3889fb8a 12-Jan-2022 Brooks Davis <brooks@FreeBSD.org>

sysent: regen for syscallarg_t


# b7c55487 08-Dec-2021 Konstantin Belousov <kib@FreeBSD.org>

Regen


# 5c1835b1 29-Nov-2021 Brooks Davis <brooks@FreeBSD.org>

syscalls: regen


# 7fb006e7 29-Nov-2021 Brooks Davis <brooks@FreeBSD.org>

syscalls: regen


# c2996f8a 29-Nov-2021 Brooks Davis <brooks@FreeBSD.org>

syscalls: regen


# e58e9a8c 22-Nov-2021 Brooks Davis <brooks@FreeBSD.org>

syscalls: regen


# 439c3d95 10-Nov-2021 Konstantin Belousov <kib@FreeBSD.org>

Regen


# da9fe352 04-Aug-2021 Ka Ho Ng <khng@FreeBSD.org>

Regen after 0dc332bff200


# 273728b1 27-Jul-2021 Konstantin Belousov <kib@FreeBSD.org>

Regen


# 2c9764f3 13-May-2021 Ed Maste <emaste@FreeBSD.org>

regen syscall files after d51198d63b63


# d89c1c46 26-Jan-2021 Brooks Davis <brooks@FreeBSD.org>

Reserve gaps in syscall numbers for local use

It is best for auditing of syscalls.master if we only append to the
file. Reserving unimplemented system call numbers for local use makes
this policy and provides a large set of syscall numbers FreeBSD
derivatives can use without risk of conflict.

Reviewed by: jhb, kevans, kib
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27988


# 65a524b4 26-Jan-2021 Brooks Davis <brooks@FreeBSD.org>

Remove documentation of unimplemented syscalls

We have not been able to run binaries from other BSDs well over a
decade. There is no need to document their allocation decisions here.

We also don't need to reserve syscall numbers of never-implemented
syscalls.

Reviewed by: jhb, kib
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27988


# 20321e62 05-Jan-2021 Alan Somers <asomers@FreeBSD.org>

Regenerate syscall files after reallocation of aio_writev/aio_readv


# 1868a91f 02-Jan-2021 Alan Somers <asomers@FreeBSD.org>

Regenerate syscall files after addition of aio_writev/aio_readv


# 9dd48b87 26-Dec-2020 Konstantin Belousov <kib@FreeBSD.org>

Regen.


# 0c5bd5f9 25-Sep-2020 Edward Tomasz Napierala <trasz@FreeBSD.org>

Regen after r366145.

Sponsored by: DARPA


# 866a5d12 06-Jul-2020 Mark Johnston <markj@FreeBSD.org>

Regenerate.

Sponsored by: The FreeBSD Foundation


# c01cd3f5 28-May-2020 Rick Macklem <rmacklem@FreeBSD.org>

Update the files created from the new syscalls.master from r361599.

Reviewed by: brooks
Differential Revision: https://reviews.freebsd.org/D24949


# 2c9c433e 23-Apr-2020 Kyle Evans <kevans@FreeBSD.org>

sysent: re-roll after 360236 (AUE_CLOSERANGE used)


# e19b97f7 14-Apr-2020 Kyle Evans <kevans@FreeBSD.org>

sysent: re-roll after r359930


# 3d224fc9 12-Apr-2020 Kyle Evans <kevans@FreeBSD.org>

sysent: re-roll after introduction of close_range in r359836


# 65cdfb4c 20-Feb-2020 Mateusz Guzik <mjg@FreeBSD.org>

make sysent for r358172 ("vfs: add realpathat syscall")


# fe16bad4 12-Feb-2020 Ed Maste <emaste@FreeBSD.org>

regen sysent after r357831, r357838

Capability mode changes allowing fdatasync and getloginclass.

Sponsored by: The FreeBSD Foundation


# f88c67a6 09-Feb-2020 Konstantin Belousov <kib@FreeBSD.org>

Regen.


# 2d5603fe 18-Nov-2019 David Bright <dab@FreeBSD.org>

Jail and capability mode for shm_rename; add audit support for shm_rename

Co-mingling two things here:

* Addressing some feedback from Konstantin and Kyle re: jail,
capability mode, and a few other things
* Adding audit support as promised.

The audit support change includes a partial refresh of OpenBSM from
upstream, where the change to add shm_rename has already been
accepted. Matthew doesn't plan to work on refreshing anything else to
support audit for those new event types.

Submitted by: Matthew Bryan <matthew.bryan@isilon.com>
Reviewed by: kib
Relnotes: Yes
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D22083


# c4571256 26-Sep-2019 David Bright <dab@FreeBSD.org>

sysent: regenerate after r352747.

Sponsored by: Dell EMC Isilon


# a9ac5e14 25-Sep-2019 Kyle Evans <kevans@FreeBSD.org>

sysent: regenerate after r352705

This also implements it, fixes kdump, and removes no longer needed bits from
lib/libc/sys/shm_open.c for the interim.


# 460211e7 25-Sep-2019 Kyle Evans <kevans@FreeBSD.org>

sysent: regenerate after r352700


# d05b53e0 02-Sep-2019 Mateusz Guzik <mjg@FreeBSD.org>

Add sysctlbyname system call

Previously userspace would issue one syscall to resolve the sysctl and then
another one to actually use it. Do it all in one trip.

Fallback is provided in case newer libc happens to be running on an older
kernel.

Submitted by: Pawel Biernacki
Reported by: kib, brooks
Differential Revision: https://reviews.freebsd.org/D17282


# ed13ff45 30-Jul-2019 Mark Johnston <markj@FreeBSD.org>

Regenerate after r350447.


# bf499e87 24-Jul-2019 Rick Macklem <rmacklem@FreeBSD.org>

Update the generated syscall files for copy_file_range(2) added by
r350315.


# 0e26cd44 07-May-2019 Ed Maste <emaste@FreeBSD.org>

make sysent after r347228

Regenerate to add @generated tag in generated files.


# a4890265 06-Apr-2019 Mariusz Zaborski <oshogbo@FreeBSD.org>

Regen after r345982.


# fd52edaf 07-Dec-2018 Konstantin Belousov <kib@FreeBSD.org>

Regen.


# 63de13cf 04-Dec-2018 Brooks Davis <brooks@FreeBSD.org>

Regen after r341474: Normalize COMPAT_43 syscall declarations.


# f4a035b8 06-Nov-2018 Mariusz Zaborski <oshogbo@FreeBSD.org>

Regenerate after r340129.

Pointed out by: brooks


# ff13c0a2 28-Sep-2018 John Baldwin <jhb@FreeBSD.org>

Regenerate after UNIMPL -> OBSOL changes in r339001.

Approved by: re (gjb)


# ed1fa01a 18-Aug-2018 Xin LI <delphij@FreeBSD.org>

Regen after r337998.


# c542c43e 16-Aug-2018 Jamie Gritton <jamie@FreeBSD.org>

Revert r337922, except for some documention-only bits. This needs to wait
until user is changed to stop using jail(2).

Differential Revision: D14791


# 284001a2 16-Aug-2018 Jamie Gritton <jamie@FreeBSD.org>

Put jail(2) under COMPAT_FREEBSD11. It has been the "old" way of creating
jails since FreeBSD 7.

Along with the system call, put the various security.jail.allow_foo and
security.jail.foo_allowed sysctls partly under COMPAT_FREEBSD11 (or
BURN_BRIDGES). These sysctls had two disparate uses: on the system side,
they were global permissions for jails created via jail(2) which lacked
fine-grained permission controls; inside a jail, they're read-only
descriptions of what the current jail is allowed to do. The first use
is obsolete along with jail(2), but keep them for the second-read-only use.

Differential Revision: D14791


# 942ae5c8 10-Jul-2018 Brooks Davis <brooks@FreeBSD.org>

Regen after r336171.


# 7d87c005 14-Jun-2018 Brooks Davis <brooks@FreeBSD.org>

Regen after 335177 (rename sys_obreak to sys_break).


# 659a2e92 25-May-2018 Brooks Davis <brooks@FreeBSD.org>

Regen after r334223: make vadvise compat freebsd11.


# 6469bdcd 06-Apr-2018 Brooks Davis <brooks@FreeBSD.org>

Move most of the contents of opt_compat.h to opt_global.h.

opt_compat.h is mentioned in nearly 180 files. In-progress network
driver compabibility improvements may add over 100 more so this is
closer to "just about everywhere" than "only some files" per the
guidance in sys/conf/options.

Keep COMPAT_LINUX32 in opt_compat.h as it is confined to a subset of
sys/compat/linux/*.c. A fake _COMPAT_LINUX option ensure opt_compat.h
is created on all architectures.

Move COMPAT_LINUXKPI to opt_dontuse.h as it is only used to control the
set of compiled files.

Reviewed by: kib, cem, jhb, jtl
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14941


# 4948f7bf 20-Mar-2018 Conrad Meyer <cem@FreeBSD.org>

Regenerate sysent files after r331279.


# aec37bad 05-Mar-2018 Brooks Davis <brooks@FreeBSD.org>

Regen after r330517.


# 3f289c3f 12-Jan-2018 Jeff Roberson <jeff@FreeBSD.org>

Implement 'domainset', a cpuset based NUMA policy mechanism. This allows
userspace to control NUMA policy administratively and programmatically.

Implement domainset based iterators in the page layer.

Remove the now legacy numa_* syscalls.

Cleanup some header polution created by having seq.h in proc.h.

Reviewed by: markj, kib
Discussed with: alc
Tested by: pho
Sponsored by: Netflix, Dell/EMC Isilon
Differential Revision: https://reviews.freebsd.org/D13403


# 05e47051 12-Oct-2017 Ed Maste <emaste@FreeBSD.org>

regen init_sysent.c r324560


# eb84ca64 16-Jun-2017 Konstantin Belousov <kib@FreeBSD.org>

Regen.


# c20feae6 23-May-2017 Allan Jude <allanjude@FreeBSD.org>

Followup to r318765 (capsicumize cpuset_*affinity)

Update *sysent files


# ec95c622 23-May-2017 Konstantin Belousov <kib@FreeBSD.org>

Regen.


# bd309b32 22-May-2017 Ed Maste <emaste@FreeBSD.org>

Regen sysent after r318634, no open(2) in capability mode

Sponsored by: The FreeBSD Foundation


# d8ca0a2b 29-Mar-2017 Robert Watson <rwatson@FreeBSD.org>

Hook up new audit event identifiers for various non-Orange Book/CAPP
system calls supported by OpenBSM 1.2-alpha5.

Obtained from: TrustedBSD Project
MFC after: 3 weeks
Sponsored by: DARPA, AFRL


# 26f86ab7 18-Mar-2017 Eric van Gyzen <vangyzen@FreeBSD.org>

Regenerate syscall files for r315526

Sponsored by: Dell EMC


# bb9b7104 10-Feb-2017 John Baldwin <jhb@FreeBSD.org>

Regenerate all the system call tables to drop "created from" lines.

One of the ibcs2 files contains some actual changes (new headers) as
it hasn't been regenerated after older changes to makesyscalls.sh.


# 1fabda45 27-Dec-2016 John Baldwin <jhb@FreeBSD.org>

Regen after r310638.

Differential Revision: https://reviews.freebsd.org/D8854


# 52b42f62 07-Dec-2016 Robert Watson <rwatson@FreeBSD.org>

Regnerate system-call definitions following r309677 correcting a whitespace
glitch in syscalls.master.


# bce38b9f 31-Aug-2016 Ed Maste <emaste@FreeBSD.org>

Regnerate after r305140, getdtablesize in capability mode

Sponsored by: The FreeBSD Foundation


# 3e7e2333 18-Aug-2016 George V. Neville-Neil <gnn@FreeBSD.org>

Remove the obsolete and unused openbsd_poll system call. (Phase 2)

Reported by: brooks
Reviewed by: brooks, jhb
Differential Revision: https://reviews.freebsd.org/D7548


# 1d2537a2 15-Aug-2016 Konstantin Belousov <kib@FreeBSD.org>

Regen after r304176, fdatasync(2) addition.


# c1fa4404 04-Aug-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Regenerate after r303755.

MFC after: 3 days
X-MFC-With: r303755
Sponsored by: EMC / Isilon Storage Division


# e938ebbc 03-Aug-2016 Ed Schouten <ed@FreeBSD.org>

Regenerate system call tables for r303699 and r303700.


# 5590eb98 27-Jul-2016 Ed Schouten <ed@FreeBSD.org>

Regenerate system call table for r303435.


# e5ec7339 10-Jul-2016 Robert Watson <rwatson@FreeBSD.org>

Do allow auditing of read(2) and write(2) system calls, by assigning
those system calls audit event identifiers AUE_READ and AUE_WRITE.
While auditing file-descriptor I/O is not required by the Common
Criteria, in practice this proves useful for both live and forensic
analysis.

NB: freebsd32 already assigns AUE_READ and AUE_WRITE to read(2) and
write(2).

MFC after: 3 days
Sponsored by: DARPA, AFRL


# a72c64b0 22-Jun-2016 Brooks Davis <brooks@FreeBSD.org>

Generate syscall tables and update pipe() implementation after r302094.

Mark the pipe() system call as COMPAT10.

As of r302092 libc uses pipe2() with a zero flags value instead of pipe().

Approved by: re (gjb)
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D6816


# 70f52fd6 21-Mar-2016 John Baldwin <jhb@FreeBSD.org>

Regen.


# 8d91aced 09-Mar-2016 John Baldwin <jhb@FreeBSD.org>

Regen.


# ea7b054e 22-Oct-2015 John Baldwin <jhb@FreeBSD.org>

Missing regen after last change to sys/kern/syscalls.master.


# 6520495a 11-Jul-2015 Adrian Chadd <adrian@FreeBSD.org>

Add an initial NUMA affinity/policy configuration for threads and processes.

This is based on work done by jeff@ and jhb@, as well as the numa.diff
patch that has been circulating when someone asks for first-touch NUMA
on -10 or -11.

* Introduce a simple set of VM policy and iterator types.
* tie the policy types into the vm_phys path for now, mirroring how
the initial first-touch allocation work was enabled.
* add syscalls to control changing thread and process defaults.
* add a global NUMA VM domain policy.
* implement a simple cascade policy order - if a thread policy exists, use it;
if a process policy exists, use it; use the default policy.
* processes inherit policies from their parent processes, threads inherit
policies from their parent threads.
* add a simple tool (numactl) to query and modify default thread/process
policities.
* add documentation for the new syscalls, for numa and for numactl.
* re-enable first touch NUMA again by default, as now policies can be
set in a variety of methods.

This is only relevant for very specific workloads.

This doesn't pretend to be a final NUMA solution.

The previous defaults in -HEAD (with MAXMEMDOM set) can be achieved by
'sysctl vm.default_policy=rr'.

This is only relevant if MAXMEMDOM is set to something other than 1.
Ie, if you're using GENERIC or a modified kernel with non-NUMA, then
this is a glorified no-op for you.

Thank you to Norse Corp for giving me access to rather large
(for FreeBSD!) NUMA machines in order to develop and verify this.

Thank you to Dell for providing me with dual socket sandybridge
and westmere v3 hardware to do NUMA development with.

Thank you to Scott Long at Netflix for providing me with access
to the two-socket, four-domain haswell v3 hardware.

Thank you to Peter Holm for running the stress testing suite
against the NUMA branch during various stages of development!

Tested:

* MIPS (regression testing; non-NUMA)
* i386 (regression testing; non-NUMA GENERIC)
* amd64 (regression testing; non-NUMA GENERIC)
* westmere, 2 socket (thankyou norse!)
* sandy bridge, 2 socket (thankyou dell!)
* ivy bridge, 2 socket (thankyou norse!)
* westmere-EX, 4 socket / 1TB RAM (thankyou norse!)
* haswell, 2 socket (thankyou norse!)
* haswell v3, 2 socket (thankyou dell)
* haswell v3, 2x18 core (thankyou scott long / netflix!)

* Peter Holm ran a stress test suite on this work and found one
issue, but has not been able to verify it (it doesn't look NUMA
related, and he only saw it once over many testing runs.)

* I've tested bhyve instances running in fixed NUMA domains and cpusets;
all seems to work correctly.

Verified:

* intel-pcm - pcm-numa.x and pcm-memory.x, whilst selecting different
NUMA policies for processes under test.

Review:

This was reviewed through phabricator (https://reviews.freebsd.org/D2559)
as well as privately and via emails to freebsd-arch@. The git history
with specific attributes is available at https://github.com/erikarn/freebsd/
in the NUMA branch (https://github.com/erikarn/freebsd/compare/local/adrian_numa_policy).

This has been reviewed by a number of people (stas, rpaulo, kib, ngie,
wblock) but not achieved a clear consensus. My hope is that with further
exposure and testing more functionality can be implemented and evaluated.

Notes:

* The VM doesn't handle unbalanced domains very well, and if you have an overly
unbalanced memory setup whilst under high memory pressure, VM page allocation
may fail leading to a kernel panic. This was a problem in the past, but it's
much more easily triggered now with these tools.

* This work only controls the path through vm_phys; it doesn't yet strongly/predictably
affect contigmalloc, KVA placement, UMA, etc. So, driver placement of memory
isn't really guaranteed in any way. That's next on my plate.

Sponsored by: Norse Corp, Inc.; Dell


# 8103a8f6 18-Apr-2015 Konstantin Belousov <kib@FreeBSD.org>

Regen.


# 2b35e6a9 23-Jan-2015 Jilles Tjoelker <jilles@FreeBSD.org>

Run make sysent.


# 1beb1a8e 04-Jan-2015 Dmitry Chagin <dchagin@FreeBSD.org>

Regen for r276654 (__getcwd()).


# c28d9d0f 12-Nov-2014 Dmitry Chagin <dchagin@FreeBSD.org>

Regen for r274462.


# 2e763450 09-Oct-2014 Marcel Moolenaar <marcel@FreeBSD.org>

Regenerate after r272823:
Move the SCTP syscalls to netinet with the rest of the SCTP code.

Submitted by: Steve Kiernan <stevek@juniper.net>
Reviewed by: tuexen, rrs
Obtained from: Juniper Networks, Inc.


# 4f11a684 18-Mar-2014 Attilio Rao <attilio@FreeBSD.org>

Regen per r263318.

Sponsored by: EMC / Isilon storage division


# c297f0e4 27-Jan-2014 Christian S.J. Peron <csjp@FreeBSD.org>

Allow sigwait(2) in capabilities mode.

It's common for multi-threaded processes to create a thread for
the purpose of synchronously processing signals. Allow such processes to
utilize a capabilities sandbox.

Discussed with: rwatson, pjd
MFC after: 2 weeks


# 007e4f41 15-Dec-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Regenerate after r259438.


# 61a9fc8f 15-Dec-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Regenerate after r259436.


# 73a4fbbb 15-Dec-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Forgot to regenerate after r257736.


# a566e8e3 19-Sep-2013 John Baldwin <jhb@FreeBSD.org>

Regen.

Approved by: re (delphij)


# eb2e5544 12-Sep-2013 John Baldwin <jhb@FreeBSD.org>

Regen.

Approved by: re (kib)


# 00a7f703 04-Sep-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Regenerate after r255219.

Sponsored by: The FreeBSD Foundation


# 8d1aa3c6 08-Jun-2013 Gleb Smirnoff <glebius@FreeBSD.org>

aio_mlock() added:
- Regen for r251526.
- Bump __FreeBSD_version.


# f85769eb 21-May-2013 Konstantin Belousov <kib@FreeBSD.org>

Regenerate.


# b201f4a0 01-May-2013 Jilles Tjoelker <jilles@FreeBSD.org>

Regenerate files for pipe2().


# 1bf6b724 01-May-2013 Jilles Tjoelker <jilles@FreeBSD.org>

Regenerate files for accept4().


# b3e6bbc6 01-Apr-2013 Matthew D Fleming <mdf@FreeBSD.org>

Regen.

MFC after: 1 week


# 5d463824 21-Mar-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Regenerate after r248599.

Sponsored by: The FreeBSD Foundation


# 378a73d1 02-Mar-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Regen after r247667.


# 1dc31587 01-Mar-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Regen after r247602.


# 90b22021 27-Nov-2012 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Regenerate after r243610.


# 552e9935 12-Nov-2012 Konstantin Belousov <kib@FreeBSD.org>

Regen


# e31eb35c 16-Aug-2012 David Xu <davidxu@FreeBSD.org>

regen.


# d65f1abc 16-Aug-2012 David Xu <davidxu@FreeBSD.org>

Implement syscall clock_getcpuclockid2, so we can get a clock id
for process, thread or others we want to support.
Use the syscall to implement POSIX API clock_getcpuclock and
pthread_getcpuclockid.

PR: 168417


# 5edfa04b 31-May-2012 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Regenerate after r236361.

MFC after: 3 days


# 4412ad48 25-May-2012 Ed Schouten <ed@FreeBSD.org>

Regenerate system call tables.


# cf13a585 20-Nov-2011 Lawrence Stewart <lstewart@FreeBSD.org>

- Add the ffclock_getcounter(), ffclock_getestimate() and ffclock_setestimate()
system calls to provide feed-forward clock management capabilities to
userspace processes. ffclock_getcounter() returns the current value of the
kernel's feed-forward clock counter. ffclock_getestimate() returns the current
feed-forward clock parameter estimates and ffclock_setestimate() updates the
feed-forward clock parameter estimates.

- Document the syscalls in the ffclock.2 man page.

- Regenerate the script-derived syscall related files.

Committed on behalf of Julien Ridoux and Darryl Veitch from the University of
Melbourne, Australia, as part of the FreeBSD Foundation funded "Feed-Forward
Clock Synchronization Algorithms" project.

For more information, see http://www.synclab.org/radclock/

Submitted by: Julien Ridoux (jridoux at unimelb edu au)


# 51cfb947 18-Nov-2011 Ed Schouten <ed@FreeBSD.org>

Regenerate system call tables.


# cd06ae5c 03-Nov-2011 John Baldwin <jhb@FreeBSD.org>

Regen.


# 9eca9361 16-Sep-2011 Kip Macy <kmacy@FreeBSD.org>

Auto-generated code from sys_ prefixing makesyscalls.sh change

Approved by: re(bz)


# f8ca0a75 18-Aug-2011 Jonathan Anderson <jonathan@FreeBSD.org>

Auto-generated system call code based on r224987.

Approved by: re (implicit)


# 74536edd 12-Aug-2011 Robert Watson <rwatson@FreeBSD.org>

Regenerate system call files following r224812 changes to capabilities.conf.
A no-op for non-Capsicum kernels; for Capsicum kernels, completes the
enabling of fooat(2) system calls using capabilities. With this change,
and subject to bug fixes, Capsicum capability support is now complete for
9.0.

Approved by: re (kib)
Submitted by: jonathan
Sponsored by: Google Inc


# 63ba8b5e 15-Jul-2011 Jonathan Anderson <jonathan@FreeBSD.org>

Auto-generated system call code with cap_new(), cap_getrights().

Approved by: mentor (rwatson), re (Capsicum blanket)
Sponsored by: Google Inc


# 7323776b 18-Apr-2011 Matthew D Fleming <mdf@FreeBSD.org>

Regen.


# 66db16fc 30-Mar-2011 Edward Tomasz Napierala <trasz@FreeBSD.org>

Regenerate.


# e7767093 04-Mar-2011 Edward Tomasz Napierala <trasz@FreeBSD.org>

Regenerate.


# ddfe0c2b 01-Mar-2011 Robert Watson <rwatson@FreeBSD.org>

Regenerate system call files following addition of cap_enter(2),
cap_getmode(2), and capabilities.conf.

Reviewed by: anderson
Discussed with: benl, kris, pjd
Obtained from: Capsicum Project
Sponsored by: Google, Inc.
MFC after: 3 months


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# e7fb6634 30-Aug-2010 Konstantin Belousov <kib@FreeBSD.org>

Regen


# 13cedde2 28-Jun-2010 Konstantin Belousov <kib@FreeBSD.org>

Regenerate


# 0ae9845d 19-Dec-2009 Konstantin Belousov <kib@FreeBSD.org>

Regen


# a43ee308 13-Dec-2009 Robert Watson <rwatson@FreeBSD.org>

Regenerate sysent files after r200491.


# 17c97449 27-Oct-2009 Konstantin Belousov <kib@FreeBSD.org>

Regenerate


# 718dbcfe 30-Sep-2009 Robert Watson <rwatson@FreeBSD.org>

Regenerate system call files following r197636.


# e2b881bf 08-Jul-2009 Edward Tomasz Napierala <trasz@FreeBSD.org>

Regenerate after lpathconf(2) addition.

Approved by: re (kib)


# 3899e0df 24-Jun-2009 John Baldwin <jhb@FreeBSD.org>

Regen.


# e47a833f 22-Jun-2009 John Baldwin <jhb@FreeBSD.org>

Regen.


# 4b7b144f 17-Jun-2009 John Baldwin <jhb@FreeBSD.org>

Regen.


# 6653a583 15-Jun-2009 John Baldwin <jhb@FreeBSD.org>

Regen.


# 33dd5064 01-Jun-2009 Robert Watson <rwatson@FreeBSD.org>

Regenerate generated syscall files following changes to struct sysent in
r193234.


# fe2f3c65 29-Apr-2009 Jamie Gritton <jamie@FreeBSD.org>

Regen for new jail system calls in r191673.

Approved by: bz (mentor)


# ebb45b06 09-Nov-2008 Ed Schouten <ed@FreeBSD.org>

Regenerate system call tables for r184789.


# 45e6ab7f 03-Nov-2008 Doug Rabson <dfr@FreeBSD.org>

Regen.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 74d9b5a5 25-Sep-2008 John Baldwin <jhb@FreeBSD.org>

Regen.


# 5ae50405 24-Aug-2008 Robert Watson <rwatson@FreeBSD.org>

Regenerate following r182123.


# 18cf1354 20-Aug-2008 Ed Schouten <ed@FreeBSD.org>

Update system call tables.

The previous commit also included changes to all the system call lists,
but it is a tradition to update these lists in a second commit, so rerun
make sysent to update the $FreeBSD$ tags inside these files to refer to
the latest version of syscalls.master.

Requested by: rwatson


# bc093719 20-Aug-2008 Ed Schouten <ed@FreeBSD.org>

Integrate the new MPSAFE TTY layer to the FreeBSD operating system.

The last half year I've been working on a replacement TTY layer for the
FreeBSD kernel. The new TTY layer was designed to improve the following:

- Improved driver model:

The old TTY layer has a driver model that is not abstract enough to
make it friendly to use. A good example is the output path, where the
device drivers directly access the output buffers. This means that an
in-kernel PPP implementation must always convert network buffers into
TTY buffers.

If a PPP implementation would be built on top of the new TTY layer
(still needs a hooks layer, though), it would allow the PPP
implementation to directly hand the data to the TTY driver.

- Improved hotplugging:

With the old TTY layer, it isn't entirely safe to destroy TTY's from
the system. This implementation has a two-step destructing design,
where the driver first abandons the TTY. After all threads have left
the TTY, the TTY layer calls a routine in the driver, which can be
used to free resources (unit numbers, etc).

The pts(4) driver also implements this feature, which means
posix_openpt() will now return PTY's that are created on the fly.

- Improved performance:

One of the major improvements is the per-TTY mutex, which is expected
to improve scalability when compared to the old Giant locking.
Another change is the unbuffered copying to userspace, which is both
used on TTY device nodes and PTY masters.

Upgrading should be quite straightforward. Unlike previous versions,
existing kernel configuration files do not need to be changed, except
when they reference device drivers that are listed in UPDATING.

Obtained from: //depot/projects/mpsafetty/...
Approved by: philip (ex-mentor)
Discussed: on the lists, at BSDCan, at the DevSummit
Sponsored by: Snow B.V., the Netherlands
dcons(4) fixed by: kan


# 8b07e49a 09-May-2008 Julian Elischer <julian@FreeBSD.org>

Add code to allow the system to handle multiple routing tables.
This particular implementation is designed to be fully backwards compatible
and to be MFC-able to 7.x (and 6.x)

Currently the only protocol that can make use of the multiple tables is IPv4
Similar functionality exists in OpenBSD and Linux.

From my notes:

-----

One thing where FreeBSD has been falling behind, and which by chance I
have some time to work on is "policy based routing", which allows
different
packet streams to be routed by more than just the destination address.

Constraints:
------------

I want to make some form of this available in the 6.x tree
(and by extension 7.x) , but FreeBSD in general needs it so I might as
well do it in -current and back port the portions I need.

One of the ways that this can be done is to have the ability to
instantiate multiple kernel routing tables (which I will now
refer to as "Forwarding Information Bases" or "FIBs" for political
correctness reasons). Which FIB a particular packet uses to make
the next hop decision can be decided by a number of mechanisms.
The policies these mechanisms implement are the "Policies" referred
to in "Policy based routing".

One of the constraints I have if I try to back port this work to
6.x is that it must be implemented as a EXTENSION to the existing
ABIs in 6.x so that third party applications do not need to be
recompiled in timespan of the branch.

This first version will not have some of the bells and whistles that
will come with later versions. It will, for example, be limited to 16
tables in the first commit.
Implementation method, Compatible version. (part 1)
-------------------------------
For this reason I have implemented a "sufficient subset" of a
multiple routing table solution in Perforce, and back-ported it
to 6.x. (also in Perforce though not always caught up with what I
have done in -current/P4). The subset allows a number of FIBs
to be defined at compile time (8 is sufficient for my purposes in 6.x)
and implements the changes needed to allow IPV4 to use them. I have not
done the changes for ipv6 simply because I do not need it, and I do not
have enough knowledge of ipv6 (e.g. neighbor discovery) needed to do it.

Other protocol families are left untouched and should there be
users with proprietary protocol families, they should continue to work
and be oblivious to the existence of the extra FIBs.

To understand how this is done, one must know that the current FIB
code starts everything off with a single dimensional array of
pointers to FIB head structures (One per protocol family), each of
which in turn points to the trie of routes available to that family.

The basic change in the ABI compatible version of the change is to
extent that array to be a 2 dimensional array, so that
instead of protocol family X looking at rt_tables[X] for the
table it needs, it looks at rt_tables[Y][X] when for all
protocol families except ipv4 Y is always 0.
Code that is unaware of the change always just sees the first row
of the table, which of course looks just like the one dimensional
array that existed before.

The entry points rtrequest(), rtalloc(), rtalloc1(), rtalloc_ign()
are all maintained, but refer only to the first row of the array,
so that existing callers in proprietary protocols can continue to
do the "right thing".
Some new entry points are added, for the exclusive use of ipv4 code
called in_rtrequest(), in_rtalloc(), in_rtalloc1() and in_rtalloc_ign(),
which have an extra argument which refers the code to the correct row.

In addition, there are some new entry points (currently called
rtalloc_fib() and friends) that check the Address family being
looked up and call either rtalloc() (and friends) if the protocol
is not IPv4 forcing the action to row 0 or to the appropriate row
if it IS IPv4 (and that info is available). These are for calling
from code that is not specific to any particular protocol. The way
these are implemented would change in the non ABI preserving code
to be added later.

One feature of the first version of the code is that for ipv4,
the interface routes show up automatically on all the FIBs, so
that no matter what FIB you select you always have the basic
direct attached hosts available to you. (rtinit() does this
automatically).

You CAN delete an interface route from one FIB should you want
to but by default it's there. ARP information is also available
in each FIB. It's assumed that the same machine would have the
same MAC address, regardless of which FIB you are using to get
to it.

This brings us as to how the correct FIB is selected for an outgoing
IPV4 packet.

Firstly, all packets have a FIB associated with them. if nothing
has been done to change it, it will be FIB 0. The FIB is changed
in the following ways.

Packets fall into one of a number of classes.

1/ locally generated packets, coming from a socket/PCB.
Such packets select a FIB from a number associated with the
socket/PCB. This in turn is inherited from the process,
but can be changed by a socket option. The process in turn
inherits it on fork. I have written a utility call setfib
that acts a bit like nice..

setfib -3 ping target.example.com # will use fib 3 for ping.

It is an obvious extension to make it a property of a jail
but I have not done so. It can be achieved by combining the setfib and
jail commands.

2/ packets received on an interface for forwarding.
By default these packets would use table 0,
(or possibly a number settable in a sysctl(not yet)).
but prior to routing the firewall can inspect them (see below).
(possibly in the future you may be able to associate a FIB
with packets received on an interface.. An ifconfig arg, but not yet.)

3/ packets inspected by a packet classifier, which can arbitrarily
associate a fib with it on a packet by packet basis.
A fib assigned to a packet by a packet classifier
(such as ipfw) would over-ride a fib associated by
a more default source. (such as cases 1 or 2).

4/ a tcp listen socket associated with a fib will generate
accept sockets that are associated with that same fib.

5/ Packets generated in response to some other packet (e.g. reset
or icmp packets). These should use the FIB associated with the
packet being reponded to.

6/ Packets generated during encapsulation.
gif, tun and other tunnel interfaces will encapsulate using the FIB
that was in effect withthe proces that set up the tunnel.
thus setfib 1 ifconfig gif0 [tunnel instructions]
will set the fib for the tunnel to use to be fib 1.

Routing messages would be associated with their
process, and thus select one FIB or another.
messages from the kernel would be associated with the fib they
refer to and would only be received by a routing socket associated
with that fib. (not yet implemented)

In addition Netstat has been edited to be able to cope with the
fact that the array is now 2 dimensional. (It looks in system
memory using libkvm (!)). Old versions of netstat see only the first FIB.

In addition two sysctls are added to give:
a) the number of FIBs compiled in (active)
b) the default FIB of the calling process.

Early testing experience:
-------------------------

Basically our (IronPort's) appliance does this functionality already
using ipfw fwd but that method has some drawbacks.

For example,
It can't fully simulate a routing table because it can't influence the
socket's choice of local address when a connect() is done.

Testing during the generating of these changes has been
remarkably smooth so far. Multiple tables have co-existed
with no notable side effects, and packets have been routes
accordingly.

ipfw has grown 2 new keywords:

setfib N ip from anay to any
count ip from any to any fib N

In pf there seems to be a requirement to be able to give symbolic names to the
fibs but I do not have that capacity. I am not sure if it is required.

SCTP has interestingly enough built in support for this, called VRFs
in Cisco parlance. it will be interesting to see how that handles it
when it suddenly actually does something.

Where to next:
--------------------

After committing the ABI compatible version and MFCing it, I'd
like to proceed in a forward direction in -current. this will
result in some roto-tilling in the routing code.

Firstly: the current code's idea of having a separate tree per
protocol family, all of the same format, and pointed to by the
1 dimensional array is a bit silly. Especially when one considers that
there is code that makes assumptions about every protocol having the
same internal structures there. Some protocols don't WANT that
sort of structure. (for example the whole idea of a netmask is foreign
to appletalk). This needs to be made opaque to the external code.

My suggested first change is to add routing method pointers to the
'domain' structure, along with information pointing the data.
instead of having an array of pointers to uniform structures,
there would be an array pointing to the 'domain' structures
for each protocol address domain (protocol family),
and the methods this reached would be called. The methods would have
an argument that gives FIB number, but the protocol would be free
to ignore it.

When the ABI can be changed it raises the possibilty of the
addition of a fib entry into the "struct route". Currently,
the structure contains the sockaddr of the desination, and the resulting
fib entry. To make this work fully, one could add a fib number
so that given an address and a fib, one can find the third element, the
fib entry.

Interaction with the ARP layer/ LL layer would need to be
revisited as well. Qing Li has been working on this already.

This work was sponsored by Ironport Systems/Cisco

Reviewed by: several including rwatson, bz and mlair (parts each)
Obtained from: Ironport systems/Cisco


# f2296b58 30-Mar-2008 Konstantin Belousov <kib@FreeBSD.org>

Regen


# a7ac0db6 26-Mar-2008 Doug Rabson <dfr@FreeBSD.org>

Regen.


# b2798e25 25-Mar-2008 Ruslan Ermilov <ru@FreeBSD.org>

Regen after changing prototypes of cpuset_{get,set}affinity().


# 6617724c 12-Mar-2008 Jeff Roberson <jeff@FreeBSD.org>

Remove kernel support for M:N threading.

While the KSE project was quite successful in bringing threading to
FreeBSD, the M:N approach taken by the kse library was never developed
to its full potential. Backwards compatibility will be provided via
libmap.conf for dynamically linked binaries and static binaries will
be broken.


# 4da2b9d4 02-Mar-2008 Jeff Roberson <jeff@FreeBSD.org>

- Regen for cpuset

Sponsored by: Nokia


# b95bd24d 12-Feb-2008 Ruslan Ermilov <ru@FreeBSD.org>

Regenerate for readlink(2).


# 20c6fe82 20-Jan-2008 Robert Watson <rwatson@FreeBSD.org>

Regenerate.


# 4ad6d200 08-Jan-2008 John Baldwin <jhb@FreeBSD.org>

Regen for shm_open(2) and shm_unlink(2).


# 6ec46f7a 15-Aug-2007 David Xu <davidxu@FreeBSD.org>

Regenerate.

Approved by: re(kensmith)


# 552fbe75 04-Jul-2007 Peter Wemm <peter@FreeBSD.org>

Regenerate after mmap/lseek/etc syscall changes.

Approved by: re (kensmith)


# af998510 03-Nov-2006 Randall Stewart <rrs@FreeBSD.org>

This commits the remake in kern/ make sysent to get
the correct syscalls.master's $FreeBSD$ tag record and
a make sysent in sys/compat/freebsd32. Thanks Ruslan
for pointing out the steps I missed :-0
Approved by: gnn


# f8829a4a 03-Nov-2006 Randall Stewart <rrs@FreeBSD.org>

Ok, here it is, we finally add SCTP to current. Note that this
work is not just mine, but it is also the works of Peter Lei
and Michael Tuexen. They both are my two key other developers
working on the project.. and they need ata-boy's too:
****
peterlei@cisco.com
tuexen@fh-muenster.de
****
I did do a make sysent which updated the
syscall's and sysproto.. I hope that is correct... without
it you don't build since we have new syscalls for SCTP :-0

So go out and look at the NOTES, add
option SCTP (make sure inet and inet6 are present too)
and play with SCTP.

I will see about comitting some test tools I have after I
figure out where I should place them. I also have a
lib (libsctp.a) that adds some of the missing socketapi
functions that I need to put into lib's.. I will talk
to George about this :-)

There may still be some 64 bit issues in here, none of
us have a 64 bit processor to test with yet.. Michael
may have a MAC but thats another beast too..

If you have a mac and want to use SCTP contact Michael
he maintains a web site with a loadable module with
this code :-)

Reviewed by: gnn
Approved by: gnn


# 034b26fc 16-Oct-2006 David Xu <davidxu@FreeBSD.org>

Regenerate.


# 531147aa 03-Oct-2006 Robert Watson <rwatson@FreeBSD.org>

Regenerate.


# cca0a557 20-Sep-2006 David Xu <davidxu@FreeBSD.org>

Regenerate.


# da7cbdc2 17-Sep-2006 Robert Watson <rwatson@FreeBSD.org>

Regenerate.


# 89ede214 03-Sep-2006 Robert Watson <rwatson@FreeBSD.org>

Regenerate for updated audit event identifiers.


# 863ccba5 03-Sep-2006 Robert Watson <rwatson@FreeBSD.org>

Regenerate.


# cd42ca3c 27-Aug-2006 David Xu <davidxu@FreeBSD.org>

Regenerate.


# f8f1f7fb 15-Aug-2006 John Baldwin <jhb@FreeBSD.org>

Regen to propogate <prefix>_AUE_<mumble> changes as well as the earlier
systrace changes.


# b9279e66 02-Aug-2006 John Birrell <jb@FreeBSD.org>

Regen.

Note the addition of the extra file now generated.


# 91ce2694 28-Jul-2006 John Baldwin <jhb@FreeBSD.org>

Regen for MPSAFE flag removal.


# ba493ceb 13-Jul-2006 David Xu <davidxu@FreeBSD.org>

regenerate.


# 90aff9de 11-Jul-2006 John Baldwin <jhb@FreeBSD.org>

Regen.


# 761aed36 05-Jul-2006 Wayne Salamon <wsalamon@FreeBSD.org>

Regen the system calls files, picking up the extended attr events, and some
mount-related changes done previously.

Approved by: rwatson (mentor)


# 177e987e 23-Mar-2006 David Xu <davidxu@FreeBSD.org>

Regenerate.


# 80452384 28-Feb-2006 David Xu <davidxu@FreeBSD.org>

Regenerate.


# 9653775b 05-Feb-2006 Robert Watson <rwatson@FreeBSD.org>

Regenerate.


# 25c926f1 04-Feb-2006 David Xu <davidxu@FreeBSD.org>

Regenerate.


# d7bd3313 03-Feb-2006 Robert Watson <rwatson@FreeBSD.org>

Regenerate.


# 06f2859f 01-Feb-2006 Robert Watson <rwatson@FreeBSD.org>

Regenerate.


# 4ca4c9ee 21-Jan-2006 David Xu <davidxu@FreeBSD.org>

Regen.


# 25f6e35a 23-Dec-2005 Poul-Henning Kamp <phk@FreeBSD.org>

Regenerate sysent with new abort2 system call.

Implement abort2(const char *reason, int narg, void **args);

Submitted by: "Wojciech A. Koszek" <dunstan@freebsd.czest.pl>


# 6829585c 26-Nov-2005 David Xu <davidxu@FreeBSD.org>

Regen.


# 7023331e 25-Nov-2005 David Xu <davidxu@FreeBSD.org>

Regen.


# 01790d85 29-Oct-2005 David Xu <davidxu@FreeBSD.org>

Regen.


# e706ee8a 22-Oct-2005 David Xu <davidxu@FreeBSD.org>

Regen for POSIX timer syscalls.


# 823acd70 13-Oct-2005 David Xu <davidxu@FreeBSD.org>

Regen for sigqueue syscall.


# 9104847f 13-Oct-2005 David Xu <davidxu@FreeBSD.org>

1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most
changes in MD code are trivial, before this change, trapsignal and
sendsig use discrete parameters, now they uses member fields of
ksiginfo_t structure. For sendsig, this change allows us to pass
POSIX realtime signal value to user code.

2. Remove cpu_thread_siginfo, it is no longer needed because we now always
generate ksiginfo_t data and feed it to libpthread.

3. Add p_sigqueue to proc structure to hold shared signals which were
blocked by all threads in the proc.

4. Add td_sigqueue to thread structure to hold all signals delivered to
thread.

5. i386 and amd64 now return POSIX standard si_code, other arches will
be fixed.

6. In this sigqueue implementation, pending signal set is kept as before,
an extra siginfo list holds additional siginfo_t data for signals.
kernel code uses psignal() still behavior as before, it won't be failed
even under memory pressure, only exception is when deleting a signal,
we should call sigqueue_delete to remove signal from sigqueue but
not SIGDELSET. Current there is no kernel code will deliver a signal
with additional data, so kernel should be as stable as before,
a ksiginfo can carry more information, for example, allow signal to
be delivered but throw away siginfo data if memory is not enough.
SIGKILL and SIGSTOP have fast path in sigqueue_add, because they can
not be caught or masked.
The sigqueue() syscall allows user code to queue a signal to target
process, if resource is unavailable, EAGAIN will be returned as
specification said.
Just before thread exits, signal queue memory will be freed by
sigqueue_flush.
Current, all signals are allowed to be queued, not only realtime signals.

Earlier patch reviewed by: jhb, deischen
Tested on: i386, amd64


# 6acd4b61 27-Sep-2005 Christian S.J. Peron <csjp@FreeBSD.org>

Update the "created from" section to reflect the most recent version of
syscalls.master

Requested by: jhb


# c47a4d1c 24-Sep-2005 Christian S.J. Peron <csjp@FreeBSD.org>

Implement new world order in VFS locking for extended attributes. This will
remove the unconditional acquisition of Giant for extended attribute related
operations. If the file system is set as being MP safe and debug.mpsafevfs is
1, do not pickup Giant.

Mark the following system calls as being MP safe so we no longer pickup Giant
in the system call handler:

o extattrctl
o extattr_set_file
o extattr_get_file
o extattr_delete_file
o extattr_set_fd
o extattr_get_fd
o extattr_delete_fd
o extattr_set_link
o extattr_get_link
o extattr_delete_link
o extattr_list_file
o extattr_list_link
o extattr_list_fd

-Pass MPSAFE flags to namei(9) lookup and introduce vfslocked variable which
will keep track of any Giant acquisitions.
-Wrap any fd operations which manipulate vnodes in VFS_{UN}LOCK_GIANT
-Drop VFS_ASSERT_GIANT into function which operate on vnodes to ensure that
we are sufficiently protected.

I've tested these changes with various TrustedBSD MAC policies which use
extended attribute a lot on SMP and UP systems (thanks to Scott Long for
making some SMP hardware available to me for testing).

Discussed with: jeff
Requested by: jhb, rwatson


# 522ccb23 08-Jul-2005 John Baldwin <jhb@FreeBSD.org>

Regen.

Approved by: re (scottl)


# 9f3157a2 07-Jul-2005 John Baldwin <jhb@FreeBSD.org>

Regenerate.

Approved by: re (scottl)


# 3984b232 30-May-2005 Robert Watson <rwatson@FreeBSD.org>

Rebuild generated system call definition files following the addition of
the audit event field to the syscalls.master file format.

Submitted by: wsalamon
Obtained from: TrustedBSD Project


# 0cc00905 28-May-2005 Robert Watson <rwatson@FreeBSD.org>

Regenerate from syscalls.master.


# 7329f580 28-May-2005 Robert Watson <rwatson@FreeBSD.org>

Regenerate for updated syscalls.master.


# 958a52b8 28-May-2005 Robert Watson <rwatson@FreeBSD.org>

Regenerate from syscalls.master.


# a72baeca 28-May-2005 Robert Watson <rwatson@FreeBSD.org>

Regenerate from updated syscalls.master.


# 848c3ec3 28-May-2005 Robert Watson <rwatson@FreeBSD.org>

Regenerate system call tables from syscalls.master.


# 40f2d4da 22-Apr-2005 David Xu <davidxu@FreeBSD.org>

Regen.


# c1aa81b6 01-Mar-2005 Paul Saab <ps@FreeBSD.org>

regen


# 37f32177 25-Jan-2005 Jeff Roberson <jeff@FreeBSD.org>

- Regen


# e1279468 24-Jan-2005 Jeff Roberson <jeff@FreeBSD.org>

- Regen for recent vfs syscall changes.

Sponsored By: Isilon Systems, Inc.


# 3195113e 02-Jan-2005 Marcel Moolenaar <marcel@FreeBSD.org>

Regen.


# c180db2b 25-Dec-2004 David Xu <davidxu@FreeBSD.org>

Make _umtx_op() as more general interface, the final parameter needn't be
timespec pointer, every parameter will be interpreted by its opcode.


# 50586e8b 17-Dec-2004 David Xu <davidxu@FreeBSD.org>

1. make umtx sharable between processes, the way is two or more processes
call mmap() to create a shared space, and then initialize umtx on it,
after that, each thread in different processes can use the umtx same
as threads in same process.
2. introduce a new syscall _umtx_op to support timed lock and condition
variable semantics. also, orignal umtx_lock and umtx_unlock inline
functions now are reimplemented by using _umtx_op, the _umtx_op can
use arbitrary id not just a thread id.


# f5b2f15a 24-Nov-2004 Poul-Henning Kamp <phk@FreeBSD.org>

Regen.


# 2524cfb7 18-Nov-2004 Mark Santcroos <marks@FreeBSD.org>

Rebuild from syscalls.master:1.179

Reviewed by: imp, phk, njl, peter
Approved by: njl


# 299b4e7f 23-Oct-2004 Robert Watson <rwatson@FreeBSD.org>

Rebuild from syscalls.master:1.178.


# ebfcca3d 06-Oct-2004 David Xu <davidxu@FreeBSD.org>

Regen to unbreak world.

Pointy hat to: mtm


# 65a311fc 13-Jul-2004 Poul-Henning Kamp <phk@FreeBSD.org>

Give kldunload a -f(orce) argument.

Add a MOD_QUIESCE event for modules. This should return error (EBUSY)
of the module is in use.

MOD_UNLOAD should now only fail if it is impossible (as opposed to
inconvenient) to unload the module. Valid reasons are memory references
into the module which cannot be tracked down and eliminated.

When kldunloading, we abandon if MOD_UNLOAD fails, and if -force is
not given, MOD_QUIESCE failing will also prevent the unload.

For backwards compatibility, we treat EOPNOTSUPP from MOD_QUIESCE as
success.

Document that modules should return EOPNOTSUPP for unknown events.


# c2589102 01-Jul-2004 Marcel Moolenaar <marcel@FreeBSD.org>

Regen.


# 5282c617 21-Jun-2004 Robert Watson <rwatson@FreeBSD.org>

Regenerate after updating syscalls.master.


# 7af72ad7 21-Jun-2004 Robert Watson <rwatson@FreeBSD.org>

Rebuild following marking link() as MPSAFE.


# e2c8a799 05-Apr-2004 Doug Rabson <dfr@FreeBSD.org>

Regen.


# a73027fe 27-Mar-2004 Mike Makonnen <mtm@FreeBSD.org>

Regen for libthr thread synchronization syscalls.


# 31c7e8b0 16-Mar-2004 David Malone <dwmalone@FreeBSD.org>

Nudge Giant as far as I can into kern_open(). Mark open() as MPSAFE.
Use kern_open() to implement creat() rather than taking the long route
through open(). Mark creat as MPSAFE.

While I'm at it, mark nosys() (syscall 0) as MPSAFE, for all the
difference it will make.


# 6b55d75c 15-Mar-2004 John Baldwin <jhb@FreeBSD.org>

Regen for ptrace being safe again.


# 78c45c5d 13-Mar-2004 Peter Wemm <peter@FreeBSD.org>

Regen for mpsafe kse_create()


# b5426f09 02-Feb-2004 Daniel Eischen <deischen@FreeBSD.org>

Regen after adding ksem_timedwait().


# 2c743096 22-Dec-2003 Peter Wemm <peter@FreeBSD.org>

Regen - this should be essentially a NOP, except for rcsid changes.


# 5be4b10c 10-Dec-2003 Peter Wemm <peter@FreeBSD.org>

Regen


# cfa4b1e7 07-Dec-2003 Marcel Moolenaar <marcel@FreeBSD.org>

Regen due to kse_switchin(2).


# 808674fd 13-Nov-2003 Jeff Roberson <jeff@FreeBSD.org>

- regen.


# 1977597b 12-Nov-2003 Kirk McKusick <mckusick@FreeBSD.org>

Update the five files derived from /sys/kern/syscalls.master
after the additions made for the new statfs structure (version
1.157). These must be updated in a separate checkin after
syscalls.master has been checked in so that they reflect its
new CVS identity. As these are purely derived files, it is not
clear to me why they are under CVS at all. I presume that it has
something to do with having `make world' operate properly.


# dac33f12 07-Nov-2003 John Baldwin <jhb@FreeBSD.org>

Regen.


# bd781a1e 21-Oct-2003 Scott Long <scottl@FreeBSD.org>

Don peril-sensitive sunglasses and mark pipe(2) as MPSAFE. I've beaten up
on it for the last 15 hours with no signs of problems. It gives a small
(1%) gain on buildworld since pipe_read/pipe_write are already free of Giant.


# 111b0d0d 20-Oct-2003 David Malone <dwmalone@FreeBSD.org>

Mark dup as MPSAFE. Giant was pushed into dup ages ago, but it looks
like it was missed in syscalls.master.

Spotted by: alc


# ffe5125e 06-Sep-2003 Alan Cox <alc@FreeBSD.org>

msync(2) should be declared MP-safe.


# dd7da9aa 17-Jul-2003 David Xu <davidxu@FreeBSD.org>

o Refine kse_thr_interrupt to allow it to handle different commands.
o Remove TDF_NOSIGPOST.
o Add a member td_waitset to proc structure, it will be used for sigwait.

Tested by: deischen


# 31d13e2a 03-Jun-2003 Robert Watson <rwatson@FreeBSD.org>

Regen from syscalls.master:1.149, addition of extended attribute
list system calls for fd, file, link.


# 94d079eb 08-Apr-2003 Mike Barcroft <mike@FreeBSD.org>

Regen.


# 45185895 31-Mar-2003 Jeff Roberson <jeff@FreeBSD.org>

- Regen.


# 8af830c3 31-Mar-2003 Jeff Roberson <jeff@FreeBSD.org>

- Regen for umtx.


# d4a63cb9 31-Mar-2003 Jeff Roberson <jeff@FreeBSD.org>

- Regen for thr related system calls.


# 72254792 31-Mar-2003 Jeff Roberson <jeff@FreeBSD.org>

- Regen for the sig*wait* system calls.


# eb117d5c 20-Feb-2003 David Xu <davidxu@FreeBSD.org>

Add a timeout parameter to kse_release.


# b47679cc 07-Jan-2003 David Xu <davidxu@FreeBSD.org>

Some KSE syscalls are MPSAFE.


# 6f123c35 29-Dec-2002 Robert Watson <rwatson@FreeBSD.org>

Regen from syscalls.master:1.139


# 72e7f3dd 15-Dec-2002 Matthew Dillon <dillon@FreeBSD.org>

Regenerate system calls (swapoff added)


# f3ec9000 15-Nov-2002 Daniel Eischen <deischen@FreeBSD.org>

Regenerate after adding system calls.


# 051c41ca 05-Nov-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# 01ce3b56 02-Nov-2002 Robert Watson <rwatson@FreeBSD.org>

Regen from yesterday's system call placeholder rename.


# 23eeeff7 25-Oct-2002 Peter Wemm <peter@FreeBSD.org>

Split 4.x and 5.x signal handling so that we can keep 4.x signal
handling clean and functional as 5.x evolves. This allows some of the
nasty bandaids in the 5.x codepaths to be unwound.

Encapsulate 4.x signal handling under COMPAT_FREEBSD4 (there is an
anti-foot-shooting measure in place, 5.x folks need this for a while) and
finish encapsulating the older stuff under COMPAT_43. Since the ancient
stuff is required on alpha (longjmp(3) passes a 'struct osigcontext *'
to the current sigreturn(2), instead of the 'ucontext_t *' that sigreturn
is supposed to take), add a compile time check to prevent foot shooting
there too. Add uniform COMPAT_43 stubs for ia64/sparc64/powerpc.

Tested on: i386, alpha, ia64. Compiled on sparc64 (a few days ago).
Approved by: re


# 5cb559a5 22-Oct-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# 3ab93f09 19-Oct-2002 Robert Watson <rwatson@FreeBSD.org>

Regen from addition of execve_mac placeholder.


# 16c26e60 09-Oct-2002 Robert Watson <rwatson@FreeBSD.org>

Regen from syntax fix to syscalls.master.

PR:
Submitted by:
Reviewed by:
Approved by:
Obtained from:
MFC after:


# 233d4635 09-Oct-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# 36a8dac1 02-Oct-2002 Archie Cobbs <archie@FreeBSD.org>

Let kse_wakeup() take a KSE mailbox pointer argument.

Reviewed by: julian


# d0bd8ced 30-Sep-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# 89def71c 25-Sep-2002 Archie Cobbs <archie@FreeBSD.org>

Make the following name changes to KSE related functions, etc., to better
represent their purpose and minimize namespace conflicts:

kse_fn_t -> kse_func_t
struct thread_mailbox -> struct kse_thr_mailbox
thread_interrupt() -> kse_thr_interrupt()
kse_yield() -> kse_release()
kse_new() -> kse_create()

Add missing declaration of kse_thr_interrupt() to <sys/kse.h>.
Regenerate the various generated syscall files. Minor style fixes.

Reviewed by: julian


# 3ffb9fad 18-Sep-2002 Alfred Perlstein <alfred@FreeBSD.org>

Regen for added syscalls.


# 8815d2e8 19-Aug-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# d2118dfa 06-Aug-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# 47ac133d 30-Jul-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# 4266d0d0 30-Jul-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# 03a719dc 29-Jul-2002 Robert Watson <rwatson@FreeBSD.org>

Rebuild of files generated from syscalls.master.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, NAI Labs


# d11a5661 12-Jul-2002 Alfred Perlstein <alfred@FreeBSD.org>

regen for freebsd4_sendfile(2) compat.


# e602ba25 29-Jun-2002 Julian Elischer <julian@FreeBSD.org>

Part 1 of KSE-III

The ability to schedule multiple threads per process
(one one cpu) by making ALL system calls optionally asynchronous.
to come: ia64 and power-pc patches, patches for gdb, test program (in tools)

Reviewed by: Almost everyone who counts
(at various times, peter, jhb, matt, alfred, mini, bernd,
and a cast of thousands)

NOTE: this is still Beta code, and contains lots of debugging stuff.
expect slight instability in signals..


# 6480dc74 13-Jun-2002 Robert Watson <rwatson@FreeBSD.org>

Regen.


# 52183d01 28-May-2002 Marcel Moolenaar <marcel@FreeBSD.org>

Add uuidgen(2) and uuidgen(1).

The uuidgen command, by means of the uuidgen syscall, generates one
or more Universally Unique Identifiers compatible with OSF/DCE 1.1
version 1 UUIDs.

From the Perforce logs (change 11995):

Round of cleanups:
o Give uuidgen() the correct prototype in syscalls.master
o Define struct uuid according to DCE 1.1 in sys/uuid.h
o Use struct uuid instead of uuid_t. The latter is defined
in sys/uuid.h but should not be used in kernel land.
o Add snprintf_uuid(), printf_uuid() and sbuf_printf_uuid()
to kern_uuid.c for use in the kernel (currently geom_gpt.c).
o Rename the non-standard struct uuid in kern/kern_uuid.c
to struct uuid_private and give it a slightly better definition
for better byte-order handling. See below.
o In sys/gpt.h, fix the broken uuid definitions to match the now
compliant struct uuid definition. See below.
o In usr.bin/uuidgen/uuidgen.c catch up with struct uuid change.

A note about byte-order:
The standard failed to provide a non-conflicting and
unambiguous definition for the binary representation. My initial
implementation always wrote the timestamp as a 64-bit little-endian
(2s-complement) integral. The clock sequence was always written
as a 16-bit big-endian (2s-complement) integral. After a good
nights sleep and couple of Pan Galactic Gargle Blasters (not
necessarily in that order :-) I reread the spec and came to the
conclusion that the time fields are always written in the native
by order, provided the the low, mid and hi chopping still occurs.
The spec mentions that you "might need to swap bytes if you talk
to a machine that has a different byte-order". The clock sequence
is always written in big-endian order (as is the IEEE 802 address)
because its division is resulting in bytes, making the ordering
unambiguous.


# 9d997d8b 05-May-2002 Maxime Henrion <mux@FreeBSD.org>

Add the lchflags(2) syscall.

Reviewed by: rwatson


# d786139c 17-Apr-2002 Maxime Henrion <mux@FreeBSD.org>

Rework the kernel environment subsystem. We now convert the static
environment needed at boot time to a dynamic subsystem when VM is
up. The dynamic kernel environment is protected by an sx lock.

This adds some new functions to manipulate the kernel environment :
freeenv(), setenv(), unsetenv() and testenv(). freeenv() has to be
called after every getenv() when you have finished using the string.
testenv() only tests if an environment variable is present, and
doesn't require a freeenv() call. setenv() and unsetenv() are self
explanatory.

The kenv(2) syscall exports these new functionalities to userland,
mainly for kenv(1).

Reviewed by: peter


# 24ab015f 13-Apr-2002 Alan Cox <alc@FreeBSD.org>

Regen


# ab9ab570 11-Apr-2002 Alan Cox <alc@FreeBSD.org>

Regen


# ba51c265 05-Mar-2002 Robert Watson <rwatson@FreeBSD.org>

Part II: update various mechanically generated files to allow for new
system call number allocations.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, NAI Labs


# c28841c1 18-Feb-2002 Julian Elischer <julian@FreeBSD.org>

Add stub syscalls and definitions for KSE calls.
"Book'em Danno"


# 1e599eee 17-Feb-2002 Daniel Eischen <deischen@FreeBSD.org>

Regenerate these files after change to syscalls.master.


# 1aa1d02a 09-Feb-2002 Robert Watson <rwatson@FreeBSD.org>

Part II: Update system calls for extended attributes. Rebuild of
generated files.


# b6fe6a5d 01-Feb-2002 Bruce Evans <bde@FreeBSD.org>

Regenerate to make osigreturn standard.


# 581cad5a 30-Jan-2002 Bruce Evans <bde@FreeBSD.org>

Regenerate _after_ the commit to syscalls.master.


# 21d56e9c 29-Dec-2001 Alfred Perlstein <alfred@FreeBSD.org>

Make AIO a loadable module.

Remove the explicit call to aio_proc_rundown() from exit1(), instead AIO
will use at_exit(9).

Add functions at_exec(9), rm_at_exec(9) which function nearly the
same as at_exec(9) and rm_at_exec(9), these functions are called
on behalf of modules at the time of execve(2) after the image
activator has run.

Use a modified version of tegge's suggestion via at_exec(9) to close
an exploitable race in AIO.

Fix SYSCALL_MODULE_HELPER such that it's archetecuterally neutral,
the problem was that one had to pass it a paramater indicating the
number of arguments which were actually the number of "int". Fix
it by using an inline version of the AS macro against the syscall
arguments. (AS should be available globally but we'll get to that
later.)

Add a primative system for dynamically adding kqueue ops, it's really
not as sophisticated as it should be, but I'll discuss with jlemon when
he's around.


# 06d133c4 02-Nov-2001 Poul-Henning Kamp <phk@FreeBSD.org>

Add nmount() stub function and regenerate the syscall-glue which should
not need to check in generated files.


# ab323a7d 13-Oct-2001 Robert Watson <rwatson@FreeBSD.org>

o Update init_sysent.c and friends for allocation of afs_syscall.


# ce9d2b59 13-Oct-2001 Poul-Henning Kamp <phk@FreeBSD.org>

Regenerate syscall stuff.

Remove syscall-hide.h


# a90a3f28 21-Sep-2001 Robert Watson <rwatson@FreeBSD.org>

o Part two of eaccess(2) commit, rebuilt system call code.

Obtained from: TrustedBSD Project


# 98cdde71 18-Sep-2001 Peter Wemm <peter@FreeBSD.org>

Regenerate


# c8b8bac3 01-Sep-2001 Matthew Dillon <dillon@FreeBSD.org>

Regenerate syscalls


# f7b200fd 31-Aug-2001 Matthew Dillon <dillon@FreeBSD.org>

regenerate syscalls


# df998760 30-Aug-2001 Matthew Dillon <dillon@FreeBSD.org>

Giant pushdown syscalls in kern/uipc_syscalls.c. Affected calls:

recvmsg(), sendmsg(), recvfrom(), accept(), getpeername(), getsockname(),
socket(), connect(), accept(), send(), recv(), bind(), setsockopt(), listen(),
sendto(), shutdown(), socketpair(), sendfile()


# b6a4b4f9 30-Aug-2001 Matthew Dillon <dillon@FreeBSD.org>

Giant Pushdown: sysv shm, sem, and msg calls.


# 040ef07a 22-Aug-2001 Thomas Moestl <tmm@FreeBSD.org>

Regenerate from syscalls.master using the new makesyscalls.sh revision.


# 2c3c8469 18-May-2001 Alfred Perlstein <alfred@FreeBSD.org>

Regen syscalls that were made mpsafe via vm_mtx

obreak, getpagesize, sbrk, sstk, mmap, ovadvise, munmap, mprotect,
madvise, mincore, mmap, mlock, munlock, minherit, msync, mlockall,
munlockall


# dd1c45f3 11-May-2001 Tor Egge <tegge@FreeBSD.org>

Regenerate.


# 40829dd2 11-Apr-2001 Robert Watson <rwatson@FreeBSD.org>

o Regenerated following introduction of __setugid() system call for
"options REGRESSION".

Obtained from: TrustedBSD Project


# 68557486 31-Mar-2001 Robert Watson <rwatson@FreeBSD.org>

o Part two of introduction of extattr_{delete,get,set}_fd() system calls,
regenerate necessary automatically-generated code.

Obtained from: TrustedBSD Project


# 231b9e91 18-Mar-2001 Robert Watson <rwatson@FreeBSD.org>

o Rename "namespace" argument to "attrnamespace" as namespace is a C++
reserved word. Part 2 of syscalls.master commit to catch rebuilt
files.

Submitted by: jkh
Obtained from: TrustedBSD Project


# 043cc5a6 14-Mar-2001 Peter Wemm <peter@FreeBSD.org>

Regenerate after rwatson's commit to syscalls.master (rev 1.85)


# a4bd171d 01-Dec-2000 Jake Burkholder <jake@FreeBSD.org>

Regen.


# 78525ce3 01-Dec-2000 Alfred Perlstein <alfred@FreeBSD.org>

sysvipc loadable.

new syscall entry lkmressys - "reserved loadable syscall"

Make syscall_register allow overwriting of such entries (lkmressys).


# 3f4ab653 28-Aug-2000 Marcel Moolenaar <marcel@FreeBSD.org>

Regen: fix prototypes for {o|}{g|s}etrlimit.


# 3a285cc8 29-Jul-2000 Peter Wemm <peter@FreeBSD.org>

Regen. (Fix SYS_exit)


# 69065e88 28-Jul-2000 Peter Wemm <peter@FreeBSD.org>

Regenerate with makesyscalls.sh


# e8483a05 13-Jul-2000 Robert Watson <rwatson@FreeBSD.org>

o Commit two of two, introducing __cap_{get,set}_{fd,file} syscalls to
modify capability sets on files.

Obtained from: TrustedBSD Project


# 625cc848 15-Jun-2000 Robert Watson <rwatson@FreeBSD.org>

Second of two commits adding capability manipulation syscalls for
processes.

Obtained from: TrustedBSD Project


# 9114579d 09-May-2000 Bruce Evans <bde@FreeBSD.org>

Regenerated (fixed the calculation of sy_nargs in sysent tables).


# 4aee570d 09-May-2000 Bruce Evans <bde@FreeBSD.org>

Regenerated (fixed the type of mmap()'s padding arg).


# 2553c04c 01-May-2000 Peter Wemm <peter@FreeBSD.org>

Regenerate (removed semconfig)


# cb679c38 16-Apr-2000 Jonathan Lemon <jlemon@FreeBSD.org>

Introduce kqueue() and kevent(), a kernel event notification facility.


# 62885176 03-Apr-2000 Alfred Perlstein <alfred@FreeBSD.org>

regenerate with MPSAFE from syscalls.master


# 7c8fdcbd 02-Apr-2000 Matthew Dillon <dillon@FreeBSD.org>

Make the sigprocmask() and geteuid() system calls MP SAFE. Expand
commentary for copyin/copyout to indicate that they are MP SAFE as
well.

Reviewed by: msmith


# 36e9f877 28-Mar-2000 Matthew Dillon <dillon@FreeBSD.org>

Commit major SMP cleanups and move the BGL (big giant lock) in the
syscall path inward. A system call may select whether it needs the MP
lock or not (the default being that it does need it).

A great deal of conditional SMP code for various deadended experiments
has been removed. 'cil' and 'cml' have been removed entirely, and the
locking around the cpl has been removed. The conditional
separately-locked fast-interrupt code has been removed, meaning that
interrupts must hold the CPL now (but they pretty much had to anyway).
Another reason for doing this is that the original separate-lock for
interrupts just doesn't apply to the interrupt thread mechanism being
contemplated.

Modifications to the cpl may now ONLY occur while holding the MP
lock. For example, if an otherwise MP safe syscall needs to mess with
the cpl, it must hold the MP lock for the duration and must (as usual)
save/restore the cpl in a nested fashion.

This is precursor work for the real meat coming later: avoiding having
to hold the MP lock for common syscalls and I/O's and interrupt threads.
It is expected that the spl mechanisms and new interrupt threading
mechanisms will be able to run in tandem, allowing a slow piecemeal
transition to occur.

This patch should result in a moderate performance improvement due to
the considerable amount of code that has been removed from the critical
path, especially the simplification of the spl*() calls. The real
performance gains will come later.

Approved by: jkh
Reviewed by: current, bde (exception.s)
Some work taken from: luoqi's patch


# 9b0be035 18-Jan-2000 Robert Watson <rwatson@FreeBSD.org>

Fix bde'isms in acl/extattr syscall interface, renaming syscalls to
prettier (?) names, adding some const's around here, et al.

Commit 2 out of 3.

Reviewed by: bde


# 8ccd6334 16-Jan-2000 Peter Wemm <peter@FreeBSD.org>

Implement setres[ug]id() and getres[ug]id(). This has been sitting in
my tree for ages (~2 years) waiting for an excuse to commit it. Now Linux
has implemented it and it seems that Staroffice (when using the
linux_base6.1 port's libc) calls this in the linux emulator and dies in
setup. The Linux emulator can call these now.


# bfbbc4aa 13-Jan-2000 Jason Evans <jasone@FreeBSD.org>

Add aio_waitcomplete(). Make aio work correctly for socket descriptors.
Make gratuitous style(9) fixes (me, not the submitter) to make the aio
code more readable.

PR: kern/12053
Submitted by: Chris Sedore <cmsedore@maxwell.syr.edu>


# 80ef02b6 21-Dec-1999 Alfred Perlstein <alfred@FreeBSD.org>

regenerate after making getfh a standard syscall.


# 91f37dcb 18-Dec-1999 Robert Watson <rwatson@FreeBSD.org>

Second pass commit to introduce new ACL and Extended Attribute system
calls, vnops, vfsops, both in /kern, and to individual file systems that
require a vfsop_ array entry.

Reviewed by: eivind


# 9ed3b901 18-Nov-1999 Brian Somers <brian@FreeBSD.org>

Cop on a bit and regenerate things correctly.

Pointed out by: bde


# 38a7743a 12-Oct-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Now that userland, including modules don't use the osig* syscalls
and the kernel itself doesn't use any SYS_osig* constants, change
the syscalls to be of type COMPAT.


# 2c42a146 29-Sep-1999 Marcel Moolenaar <marcel@FreeBSD.org>

sigset_t change (part 2 of 5)
-----------------------------

The core of the signalling code has been rewritten to operate
on the new sigset_t. No methodological changes have been made.
Most references to a sigset_t object are through macros (see
signalvar.h) to create a level of abstraction and to provide
a basis for further improvements.

The NSIG constant has not been changed to reflect the maximum
number of signals possible. The reason is that it breaks
programs (especially shells) which assume that all signals
have a non-null name in sys_signame. See src/bin/sh/trap.c
for an example. Instead _SIG_MAXSIG has been introduced to
hold the maximum signal possible with the new sigset_t.

struct sigprop has been moved from signalvar.h to kern_sig.c
because a) it is only used there, and b) access must be done
though function sigprop(). The latter because the table doesn't
holds properties for all signals, but only for the first NSIG
signals.

signal.h has been reorganized to make reading easier and to
add the new and/or modified structures. The "old" structures
are moved to signalvar.h to prevent namespace polution.

Especially the coda filesystem suffers from the change, because
it contained lines like (p->p_sigmask == SIGIO), which is easy
to do for integral types, but not for compound types.

NOTE: kdump (and port linux_kdump) must be recompiled.

Thanks to Garrett Wollman and Daniel Eischen for pressing the
importance of changing sigreturn as well.


# 818a7190 10-Sep-1999 Alfred Perlstein <alfred@FreeBSD.org>

regenerate to include proper "gererated from" taglines.


# c24fda81 10-Sep-1999 Alfred Perlstein <alfred@FreeBSD.org>

Seperate the export check in VFS_FHTOVP, exports are now checked via
VFS_CHECKEXP.

Add fh(open|stat|stafs) syscalls to allow userland to query filesystems
based on (network) filehandle.

Obtained from: NetBSD


# 21859779 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

Regen after Id->FreeBSD


# 909bbf3c 05-Aug-1999 Jordan K. Hubbard <jkh@FreeBSD.org>

Re-commit these files after updating syscalls.master (in the proper order
this time).

Pointed out by: bde


# b24eb279 04-Aug-1999 Jordan K. Hubbard <jkh@FreeBSD.org>

Reserve a syscall for the arla folks. I'm assuming that since syscalls.c
and init_sysent.c are checked into CVS, I should also commit the regenerated
copies even though they're built by syscalls.master. Correct? Bruce? :)


# 853cbeeb 13-May-1999 Bruce Evans <bde@FreeBSD.org>

Regenerated.


# 75c13541 28-Apr-1999 Poul-Henning Kamp <phk@FreeBSD.org>

This Implements the mumbled about "Jail" feature.

This is a seriously beefed up chroot kind of thing. The process
is jailed along the same lines as a chroot does it, but with
additional tough restrictions imposed on what the superuser can do.

For all I know, it is safe to hand over the root bit inside a
prison to the customer living in that prison, this is what
it was developed for in fact: "real virtual servers".

Each prison has an ip number associated with it, which all IP
communications will be coerced to use and each prison has its own
hostname.

Needless to say, you need more RAM this way, but the advantage is
that each customer can run their own particular version of apache
and not stomp on the toes of their neighbors.

It generally does what one would expect, but setting up a jail
still takes a little knowledge.

A few notes:

I have no scripts for setting up a jail, don't ask me for them.

The IP number should be an alias on one of the interfaces.

mount a /proc in each jail, it will make ps more useable.

/proc/<pid>/status tells the hostname of the prison for
jailed processes.

Quotas are only sensible if you have a mountpoint per prison.

There are no privisions for stopping resource-hogging.

Some "#ifdef INET" and similar may be missing (send patches!)

If somebody wants to take it from here and develop it into
more of a "virtual machine" they should be most welcome!

Tools, comments, patches & documentation most welcome.

Have fun...

Sponsored by: http://www.rndassociates.com/
Run for almost a year by: http://www.servetheweb.com/


# 5cc4ab53 04-Apr-1999 Dmitrij Tejblum <dt@FreeBSD.org>

Regenerate (padding for pread and pwrite).


# 4160ccd9 27-Mar-1999 Alan Cox <alc@FreeBSD.org>

Added pread and pwrite. These functions are defined by the X/Open
Threads Extension. (Note: We use the same syscall numbers as NetBSD.)

Submitted by: John Plevyak <jplevyak@inktomi.com>


# de8a10f0 10-Nov-1998 Peter Wemm <peter@FreeBSD.org>

regenerate (+kldsym)


# dd0b2081 05-Nov-1998 David Greenman <dg@FreeBSD.org>

Implemented zero-copy TCP/IP extensions via sendfile(2) - send a
file to a stream socket. sendfile(2) is similar to implementations in
HP-UX, Linux, and other systems, but the API is more extensive and
addresses many of the complaints that the Apache Group and others have
had with those other implementations. Thanks to Marc Slemko of the
Apache Group for helping me work out the best API for this.
Anyway, this has the "net" result of speeding up sends of files over
TCP/IP sockets by about 10X (that is to say, uses 1/10th of the CPU
cycles) when compared to a traditional read/write loop.


# c49265d0 24-Aug-1998 Doug Rabson <dfr@FreeBSD.org>

Regnerate.


# 414c93f3 08-Jun-1998 Bruce Evans <bde@FreeBSD.org>

Updated generated files.


# 06b64935 14-May-1998 Peter Wemm <peter@FreeBSD.org>

regen after signanosleep nuke


# 1f562172 10-May-1998 John Dyson <dyson@FreeBSD.org>

Fix the futimes/undelete/utrace conflict with other BSD's. Note that
the only common usage of utrace (the possible problem with this
commit) is with malloc, so this should be a real problem. Add
the various NetBSD syscalls that allow full emulation of their
development environment.


# 8a6472b7 28-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Finish _POSIX_PRIORITY_SCHEDULING. Needs P1003_1B and
_KPOSIX_PRIORITY_SCHEDULING options to work. Changes:

Change all "posix4" to "p1003_1b". Misnamed files are left
as "posix4" until I'm told if I can simply delete them and add
new ones;

Add _POSIX_PRIORITY_SCHEDULING system calls for FreeBSD and Linux;

Add man pages for _POSIX_PRIORITY_SCHEDULING system calls;

Add options to LINT;

Minor fixes to P1003_1B code during testing.


# a92ae475 03-Feb-1998 Bruce Evans <bde@FreeBSD.org>

Updated generated files.


# c5b193bf 30-Jan-1998 Poul-Henning Kamp <phk@FreeBSD.org>

Retire LFS.

If you want to play with it, you can find the final version of the
code in the repository the tag LFS_RETIREMENT.

If somebody makes LFS work again, adding it back is certainly
desireable, but as it is now nobody seems to care much about it,
and it has suffered considerable bitrot since its somewhat haphazard
integration.

R.I.P


# 4027779c 16-Dec-1997 Eivind Eklund <eivind@FreeBSD.org>

Regenerate after changing makesyscalls.sh.


# 5591b823d 16-Dec-1997 Eivind Eklund <eivind@FreeBSD.org>

Make COMPAT_43 and COMPAT_SUNOS new-style options.


# e83f7677 26-Oct-1997 Poul-Henning Kamp <phk@FreeBSD.org>

Remade syscalls.master derived files.


# 921af254 14-Sep-1997 Peter Wemm <peter@FreeBSD.org>

Regenerate _after_ the commit to syscalls.master


# 7822f1c6 14-Sep-1997 Poul-Henning Kamp <phk@FreeBSD.org>

Add a __getcwd() syscall. This is intentionally undocumented, but all
it does is to try to figure the pwd out from the vfs namecache, and
return a reversed string to it. libc:getcwd() is responsible for
flipping it back.


# 818661c8 13-Sep-1997 Peter Wemm <peter@FreeBSD.org>

Regenerate (added poll etc)


# 217cb20c 18-Aug-1997 Peter Wemm <peter@FreeBSD.org>

Regenerate


# e747e4bc 29-Jun-1997 Bruce Evans <bde@FreeBSD.org>

Updated generated files (makesyscalls.sh changed). Only sysproto.h
really changed.


# 2c1011f7 15-Jun-1997 John Dyson <dyson@FreeBSD.org>

Modifications to existing files to support the initial AIO/LIO and
kernel based threading support.


# 83a6ec5e 01-Jun-1997 Peter Wemm <peter@FreeBSD.org>

Regenerate


# 3a5322f2 08-May-1997 Peter Wemm <peter@FreeBSD.org>

regenerate


# cea6c86c 07-May-1997 Doug Rabson <dfr@FreeBSD.org>

This is the kernel linker. To use it, you will first need to apply
the patches in freefall:/home/dfr/ld.diffs to your ld sources and set
BINFORMAT to aoutkld when linking the kernel.

Library changes and userland utilities will appear in a later commit.


# 7ec6369d 31-Mar-1997 Peter Wemm <peter@FreeBSD.org>

Regenerate (added issetugid)


# f77da286 30-Mar-1997 Peter Wemm <peter@FreeBSD.org>

Regenerate


# d050e1a8 21-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Regenerate to include correct Id string


# 996c772f 09-Feb-1997 John Dyson <dyson@FreeBSD.org>

This is the kernel Lite/2 commit. There are some requisite userland
changes, so don't expect to be able to run the kernel as-is (very well)
without the appropriate Lite/2 userland changes.

The system boots and can mount UFS filesystems.

Untested: ext2fs, msdosfs, NFS
Known problems: Incorrect Berkeley ID strings in some files.
Mount_std mounts will not work until the getfsent
library routine is changed.

Reviewed by: various people
Submitted by: Jeffery Hsu <hsu@freebsd.org>


# 713aa001 16-Jan-1997 Bruce Evans <bde@FreeBSD.org>

Updated generated files.


# e6c4b9ba 19-Sep-1996 Poul-Henning Kamp <phk@FreeBSD.org>

Add the utrace(caddr_t addr,size_t len) syscall, that will store the
data pointed at in a ktrace file, if this process is being ktrace'ed.
I'm using this to profile malloc usage.
The advantage is that there is no context around this call, ie, no
open file or socket, so it will work in any process, and you can
decide if you want it to collect data or not.


# c2bbab53 20-Aug-1996 Sujal Patel <smpatel@FreeBSD.org>

Reran makesyscalls.sh after changing select()'s first argument to 'int'.


# edbfedac 11-Mar-1996 Peter Wemm <peter@FreeBSD.org>

Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all
files are off the vendor branch, so this should not change anything.

A "U" marker generally means that the file was not changed in between
the 4.4Lite and Lite-2 releases, and does not need a merge. "C" generally
means that there was a change.
[note new unused (in this form) syscalls.conf, to be 'cvs rm'ed]


# d66a5066 02-Mar-1996 Peter Wemm <peter@FreeBSD.org>

Mega-commit for Linux emulator update.. This has been stress tested under
netscape-2.0 for Linux running all the Java stuff. The scrollbars are now
working, at least on my machine. (whew! :-)

I'm uncomfortable with the size of this commit, but it's too
inter-dependant to easily seperate out.

The main changes:

COMPAT_LINUX is *GONE*. Most of the code has been moved out of the i386
machine dependent section into the linux emulator itself. The int 0x80
syscall code was almost identical to the lcall 7,0 code and a minor tweak
allows them to both be used with the same C code. All kernels can now
just modload the lkm and it'll DTRT without having to rebuild the kernel
first. Like IBCS2, you can statically compile it in with "options LINUX".

A pile of new syscalls implemented, including getdents(), llseek(),
readv(), writev(), msync(), personality(). The Linux-ELF libraries want
to use some of these.

linux_select() now obeys Linux semantics, ie: returns the time remaining
of the timeout value rather than leaving it the original value.

Quite a few bugs removed, including incorrect arguments being used in
syscalls.. eg: mixups between passing the sigset as an int, vs passing
it as a pointer and doing a copyin(), missing return values, unhandled
cases, SIOC* ioctls, etc.

The build for the code has changed. i386/conf/files now knows how
to build linux_genassym and generate linux_assym.h on the fly.

Supporting changes elsewhere in the kernel:

The user-mode signal trampoline has moved from the U area to immediately
below the top of the stack (below PS_STRINGS). This allows the different
binary emulations to have their own signal trampoline code (which gets rid
of the hardwired syscall 103 (sigreturn on BSD, syslog on Linux)) and so
that the emulator can provide the exact "struct sigcontext *" argument to
the program's signal handlers.

The sigstack's "ss_flags" now uses SS_DISABLE and SS_ONSTACK flags, which
have the same values as the re-used SA_DISABLE and SA_ONSTACK which are
intended for sigaction only. This enables the support of a SA_RESETHAND
flag to sigaction to implement the gross SYSV and Linux SA_ONESHOT signal
semantics where the signal handler is reset when it's triggered.

makesyscalls.sh no longer appends the struct sysentvec on the end of the
generated init_sysent.c code. It's a lot saner to have it in a seperate
file rather than trying to update the structure inside the awk script. :-)

At exec time, the dozen bytes or so of signal trampoline code are copied
to the top of the user's stack, rather than obtaining the trampoline code
the old way by getting a clone of the parent's user area. This allows
Linux and native binaries to freely exec each other without getting
trampolines mixed up.


# bad43528 02-Mar-1996 Peter Wemm <peter@FreeBSD.org>

reran makesyscalls.sh after "int len" -> "size_t len" changes.


# e89de7b5 23-Feb-1996 Peter Wemm <peter@FreeBSD.org>

Run makesyscalls to regen the tables.


# 9f29a577 20-Jan-1996 Bruce Evans <bde@FreeBSD.org>

Removed stale #includes of "opt_sysvipc.h".


# 99cb2993 13-Jan-1996 Poul-Henning Kamp <phk@FreeBSD.org>

Add an option NFS_NOSERVER which saves 100K in the install kernel (or
any other kernel that uses it). Use with option NFS.


# 81090119 07-Jan-1996 Peter Wemm <peter@FreeBSD.org>

(gulp!) reran makesyscalls..

sysv_ipc.c: add stub functions that either simply return (for the hooks
in kern_fork/kern_exit) or log() a messgae and call enosys() (for the
syscalls). sysv_ipc.c will become "standard" in conf/files and has
#ifs for all the permutations.


# 50c73f36 04-Jan-1996 Garrett Wollman <wollman@FreeBSD.org>

Convert SYSV IPC to new-style options. (I hope I got everything...)
The LKMs will need an extra file, to come later.


# db6a20e2 03-Jan-1996 Garrett Wollman <wollman@FreeBSD.org>

Converted two options over to the new scheme: USER_LDT and KTRACE.


# 295ab049 14-Dec-1995 Peter Wemm <peter@FreeBSD.org>

Regenerated from syscalls.master...


# c484c256 11-Nov-1995 Bruce Evans <bde@FreeBSD.org>

Updated machine-generated files.


# 4887ee51 07-Oct-1995 Steven Wallace <swallace@FreeBSD.org>

Remake generated files to reflect makesyscalls.sh changes


# c1b0bf46 19-Sep-1995 Bruce Evans <bde@FreeBSD.org>

Update machine-generated files.


# e876c909 22-Apr-1995 Andrey A. Chernov <ache@FreeBSD.org>

Make setreuid/setregid active syscalls


# bc4c84cf 25-Mar-1995 David Greenman <dg@FreeBSD.org>

Added a third "flags" argument to msync() ...as other systems have.


# b5e8ce9f 16-Mar-1995 Bruce Evans <bde@FreeBSD.org>

Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
(except in netccitt, netiso and netns) and most of the warnings from
`gcc -Wnested-externs'. Fix all the bugs found. There were no serious
ones.


# 403ef252 03-Mar-1995 David Greenman <dg@FreeBSD.org>

Removed obsolete vtrace() remnants.


# 1e1e0b44 14-Feb-1995 Søren Schmidt <sos@FreeBSD.org>

First attempt to run linux binaries. This is only the changes needed to
the generic kernel. The actual emulator is a separate LKM. (not finished
yet, sorry).
Submitted by: sos@freebsd.org & sef@kithrup.com


# 23f6ed01 14-Dec-1994 Garrett Wollman <wollman@FreeBSD.org>

Actually enable NTP kernel PLL. (Oops!)
Noticed by Pete Carah.


# 94e6bbfc 10-Nov-1994 Andreas Schulz <ats@FreeBSD.org>

pick up the changes from a makesyscall.sh run. The multiple lkmnosys
declarations should now be gone.


# 5de177ea 09-Oct-1994 Søren Schmidt <sos@FreeBSD.org>

Added errno conversion table (initialize to zero).


# 7216391e 01-Oct-1994 David Greenman <dg@FreeBSD.org>

"idle priority" support. Based on code from Henrik Vestergaard Draboel,
but substantially rewritten by me.


# 5ea9b263 28-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

LKM support is no longer optional.


# fa69874a 25-Sep-1994 Poul-Henning Kamp <phk@FreeBSD.org>

init_sysent.c was missing the final newline.


# 3f31c649 18-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Redo Kernel NTP PLL support, kernel side.

This code is mostly taken from the 1.1 port (which was in turn taken from
Dave Mills's kern.tar.Z example). A few significant differences:

1) ntp_gettime() is now a MIB variable rather than a system call. A few
fiddles are done in libc to make it behave the same.

2) mono_time does not participate in the PLL adjustments.

3) A new interface has been defined (in <machine/clock.h>) for doing
possibly machine-dependent things around the time of the clock update.
This is used in Pentium kernels to disable interrupts, set `time', and
reset the CPU cycle counter as quickly as possible to avoid jitter in
microtime(). Measurements show an apparent resolution of a bit more than
8.14usec, which is reasonable given system-call overhead.


# 3d903220 13-Sep-1994 Doug Rabson <dfr@FreeBSD.org>

Added SYSV ipcs.

Obtained from: NetBSD and FreeBSD-1.1.5


# 0960a7f0 12-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Added namespace information for future pollution-control measures.


# 14006771 11-Sep-1994 Andreas Schulz <ats@FreeBSD.org>

Delete the extra's int nosys(); declarations like the new makesyscall.sh
do it now.


# 60fef214 31-Aug-1994 David Greenman <dg@FreeBSD.org>

Realtime priority scheduling support.

Added "sys/rtprio.h" with the used defines.
Added rtprio(2) - the kernel interface. init_sysent.c,
kern_resource.c
syscalls.master
Added 32 new runqueues (rtqs), with initialization. kern_proc.c
kern_synch.c
Realtime processes do not change nice/priority kern_synch.c
Added a column "rt" to ddb's ps (#ifdef RTPRIO_DEBUG) kern_synch.c
Realtime priorities are enherited through fork(). kern_fork.c
Init (and children) NOT run as realtime process. init_main.c

Submitted by: Henrik Vestergaard Draboel


# 24ea21ce 26-Aug-1994 Garrett Wollman <wollman@FreeBSD.org>

Added ntp_gettime and ntp_adjtime syscalls, both nosys'ed out until
someone gets to re-integrating the code. ntp_gettime() should be
turned into a sysctl variable and emulated in the library.


# acb5f10f 26-Aug-1994 Søren Schmidt <sos@FreeBSD.org>

Oops didn't check that init_sysent.c was generated proberly. Fixed.

Reviewed by:
Submitted by:


# f3f0ca60 24-Aug-1994 Søren Schmidt <sos@FreeBSD.org>

Changes preparing for iBCS support
Reviewed by:
Submitted by:


# 3edb235c 19-Aug-1994 David Greenman <dg@FreeBSD.org>

Terry Lambert's loadable kernel module support w/improvements from the
NetBSD group.


# 26f9a767 25-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.

Reviewed by: Rodney W. Grimes
Submitted by: John Dyson and David Greenman


# df8bae1d 24-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite Kernel Sources