History log of /freebsd-10.1-release/sys/amd64/linux32/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
294904 27-Jan-2016 delphij

Fix multiple vulnerabilities of ntp. [SA-16:09]

Fix Linux compatibility layer issetugid(2) system call
vulnerability. [SA-16:10]

Security: FreeBSD-SA-16:09.ntp
Security: FreeBSD-SA-16:10.linux
Approved by: so


/freebsd-10.1-release/UPDATING
/freebsd-10.1-release/contrib/ntp/ChangeLog
/freebsd-10.1-release/contrib/ntp/CommitLog
/freebsd-10.1-release/contrib/ntp/NEWS
/freebsd-10.1-release/contrib/ntp/configure
/freebsd-10.1-release/contrib/ntp/html/miscopt.html
/freebsd-10.1-release/contrib/ntp/include/Makefile.am
/freebsd-10.1-release/contrib/ntp/include/Makefile.in
/freebsd-10.1-release/contrib/ntp/include/ntp.h
/freebsd-10.1-release/contrib/ntp/include/ntp_io.h
/freebsd-10.1-release/contrib/ntp/include/ntp_keyacc.h
/freebsd-10.1-release/contrib/ntp/include/ntp_stdlib.h
/freebsd-10.1-release/contrib/ntp/include/ntp_types.h
/freebsd-10.1-release/contrib/ntp/include/ntp_worker.h
/freebsd-10.1-release/contrib/ntp/include/parse.h
/freebsd-10.1-release/contrib/ntp/libntp/Makefile.am
/freebsd-10.1-release/contrib/ntp/libntp/Makefile.in
/freebsd-10.1-release/contrib/ntp/libntp/authkeys.c
/freebsd-10.1-release/contrib/ntp/libntp/authreadkeys.c
/freebsd-10.1-release/contrib/ntp/libntp/authusekey.c
/freebsd-10.1-release/contrib/ntp/libntp/is_ip_address.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_worker.c
/freebsd-10.1-release/contrib/ntp/libntp/systime.c
/freebsd-10.1-release/contrib/ntp/libntp/work_thread.c
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntp.conf.texi
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntp.keys.texi
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntpd.texi
/freebsd-10.1-release/contrib/ntp/ntpd/keyword-gen-utd
/freebsd-10.1-release/contrib/ntp/ntpd/keyword-gen.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.5man
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.5mdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.def
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.5man
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.5mdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.def
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_config.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_control.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_crypto.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_io.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_keyword.h
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_parser.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_parser.h
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_proto.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_request.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_scanner.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_timer.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd-opts.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd-opts.h
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.1ntpdman
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.1ntpdmdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_chu.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_gpsdjson.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_jjy.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_shm.c
/freebsd-10.1-release/contrib/ntp/ntpdc/invoke-ntpdc.texi
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc-opts.c
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc-opts.h
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.1ntpdcman
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.c
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.html
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.man.in
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpq/invoke-ntpq.texi
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-opts.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-opts.h
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-subs.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.1ntpqman
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.1ntpqmdoc
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.html
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.man.in
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.html
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in
/freebsd-10.1-release/contrib/ntp/packageinfo.sh
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi
/freebsd-10.1-release/contrib/ntp/scripts/invoke-plot_summary.texi
/freebsd-10.1-release/contrib/ntp/scripts/invoke-summary.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.html
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.html
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.html
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary-opts
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.1plot_summaryman
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.1plot_summarymdoc
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.html
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.man.in
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/summary-opts
/freebsd-10.1-release/contrib/ntp/scripts/summary.1summaryman
/freebsd-10.1-release/contrib/ntp/scripts/summary.1summarymdoc
/freebsd-10.1-release/contrib/ntp/scripts/summary.html
/freebsd-10.1-release/contrib/ntp/scripts/summary.man.in
/freebsd-10.1-release/contrib/ntp/scripts/summary.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/invoke-update-leap.texi
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap-opts
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.1update-leapman
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.html
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.man.in
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.mdoc.in
/freebsd-10.1-release/contrib/ntp/sntp/configure
/freebsd-10.1-release/contrib/ntp/sntp/crypto.c
/freebsd-10.1-release/contrib/ntp/sntp/crypto.h
/freebsd-10.1-release/contrib/ntp/sntp/include/copyright.def
/freebsd-10.1-release/contrib/ntp/sntp/include/version.def
/freebsd-10.1-release/contrib/ntp/sntp/include/version.texi
/freebsd-10.1-release/contrib/ntp/sntp/invoke-sntp.texi
/freebsd-10.1-release/contrib/ntp/sntp/libopts/configfile.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/enum.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/find.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/init.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/load.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/makeshell.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/nested.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/parse-duration.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/reset.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/save.c
/freebsd-10.1-release/contrib/ntp/sntp/libopts/tokenize.c
/freebsd-10.1-release/contrib/ntp/sntp/m4/version.m4
/freebsd-10.1-release/contrib/ntp/sntp/main.c
/freebsd-10.1-release/contrib/ntp/sntp/networking.c
/freebsd-10.1-release/contrib/ntp/sntp/sntp-opts.c
/freebsd-10.1-release/contrib/ntp/sntp/sntp-opts.h
/freebsd-10.1-release/contrib/ntp/sntp/sntp.1sntpman
/freebsd-10.1-release/contrib/ntp/sntp/sntp.1sntpmdoc
/freebsd-10.1-release/contrib/ntp/sntp/sntp.html
/freebsd-10.1-release/contrib/ntp/sntp/sntp.man.in
/freebsd-10.1-release/contrib/ntp/sntp/sntp.mdoc.in
/freebsd-10.1-release/contrib/ntp/sntp/tests/crypto.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/fileHandlingTest.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/fileHandlingTest.h.in
/freebsd-10.1-release/contrib/ntp/sntp/tests/keyFile.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/packetHandling.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/packetProcessing.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/run-packetProcessing.c
/freebsd-10.1-release/contrib/ntp/sntp/unity/unity_internals.h
/freebsd-10.1-release/contrib/ntp/sntp/version.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/authkeys.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/decodenetnum.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-authkeys.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-decodenetnum.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-socktoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/socktoa.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/t-ntp_signd.c
/freebsd-10.1-release/contrib/ntp/util/invoke-ntp-keygen.texi
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen-opts.c
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen-opts.h
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.1ntp-keygenman
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.html
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.man.in
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.mdoc.in
linux32_sysvec.c
/freebsd-10.1-release/sys/conf/newvers.sh
/freebsd-10.1-release/sys/i386/linux/linux_sysvec.c
/freebsd-10.1-release/usr.sbin/ntp/config.h
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp-keygen.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp.conf.5
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp.keys.5
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpd.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpdc.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpq.8
/freebsd-10.1-release/usr.sbin/ntp/doc/sntp.8
/freebsd-10.1-release/usr.sbin/ntp/libntp/Makefile
/freebsd-10.1-release/usr.sbin/ntp/scripts/mkver
293894 14-Jan-2016 glebius

o Fix invalid TCP checksums with pf(4). [EN-16:02.pf]
o Fix YP/NIS client library critical bug. [EN-16:03.yplib]
o Fix SCTP ICMPv6 error message vulnerability. [SA-16:01.sctp]
o Fix ntp panic threshold bypass vulnerability. [SA-16:02.ntp]
o Fix Linux compatibility layer incorrect futex handling. [SA-16:03.linux]
o Fix Linux compatibility layer setgroups(2) system call. [SA-16:04.linux]
o Fix TCP MD5 signature denial of service. [SA-16:05.tcp]
o Fix insecure default bsnmpd.conf permissions. [SA-16:06.bsnmpd]

Errata: FreeBSD-EN-16:02.pf
Errata: FreeBSD-EN-16:03.yplib
Security: FreeBSD-SA-16:01.sctp, CVE-2016-1879
Security: FreeBSD-SA-16:02.ntp, CVE-2015-5300
Security: FreeBSD-SA-16:03.linux, CVE-2016-1880
Security: FreeBSD-SA-16:04.linux, CVE-2016-1881
Security: FreeBSD-SA-16:05.tcp, CVE-2016-1882
Security: FreeBSD-SA-16:06.bsnmpd, CVE-2015-5677
Approved by: so


/freebsd-10.1-release/UPDATING
/freebsd-10.1-release/contrib/ntp/ChangeLog
/freebsd-10.1-release/contrib/ntp/CommitLog
/freebsd-10.1-release/contrib/ntp/NEWS
/freebsd-10.1-release/contrib/ntp/configure
/freebsd-10.1-release/contrib/ntp/html/miscopt.html
/freebsd-10.1-release/contrib/ntp/include/Makefile.am
/freebsd-10.1-release/contrib/ntp/include/Makefile.in
/freebsd-10.1-release/contrib/ntp/include/ntp_refclock.h
/freebsd-10.1-release/contrib/ntp/include/ntp_stdlib.h
/freebsd-10.1-release/contrib/ntp/include/ntp_worker.h
/freebsd-10.1-release/contrib/ntp/include/ntpd.h
/freebsd-10.1-release/contrib/ntp/include/safecast.h
/freebsd-10.1-release/contrib/ntp/lib/isc/backtrace.c
/freebsd-10.1-release/contrib/ntp/lib/isc/buffer.c
/freebsd-10.1-release/contrib/ntp/lib/isc/inet_aton.c
/freebsd-10.1-release/contrib/ntp/lib/isc/inet_pton.c
/freebsd-10.1-release/contrib/ntp/lib/isc/log.c
/freebsd-10.1-release/contrib/ntp/lib/isc/netaddr.c
/freebsd-10.1-release/contrib/ntp/lib/isc/sockaddr.c
/freebsd-10.1-release/contrib/ntp/lib/isc/task.c
/freebsd-10.1-release/contrib/ntp/lib/isc/win32/interfaceiter.c
/freebsd-10.1-release/contrib/ntp/lib/isc/win32/net.c
/freebsd-10.1-release/contrib/ntp/libntp/a_md5encrypt.c
/freebsd-10.1-release/contrib/ntp/libntp/atolfp.c
/freebsd-10.1-release/contrib/ntp/libntp/authkeys.c
/freebsd-10.1-release/contrib/ntp/libntp/authreadkeys.c
/freebsd-10.1-release/contrib/ntp/libntp/authusekey.c
/freebsd-10.1-release/contrib/ntp/libntp/dolfptoa.c
/freebsd-10.1-release/contrib/ntp/libntp/hextolfp.c
/freebsd-10.1-release/contrib/ntp/libntp/mstolfp.c
/freebsd-10.1-release/contrib/ntp/libntp/msyslog.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_crypto_rnd.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_lineedit.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_rfc2553.c
/freebsd-10.1-release/contrib/ntp/libntp/ntp_worker.c
/freebsd-10.1-release/contrib/ntp/libntp/snprintf.c
/freebsd-10.1-release/contrib/ntp/libntp/socktohost.c
/freebsd-10.1-release/contrib/ntp/libntp/systime.c
/freebsd-10.1-release/contrib/ntp/libntp/work_thread.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_computime.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_dcf7000.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_hopf6021.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_meinberg.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_rawdcf.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_rcc8000.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_schmid.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_trimtaip.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_varitext.c
/freebsd-10.1-release/contrib/ntp/libparse/clk_wharton.c
/freebsd-10.1-release/contrib/ntp/libparse/parse.c
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntp.conf.texi
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntp.keys.texi
/freebsd-10.1-release/contrib/ntp/ntpd/invoke-ntpd.texi
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.5man
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.5mdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.conf.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.5man
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.5mdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp.keys.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_control.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_crypto.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_io.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_loopfilter.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_parser.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_proto.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_refclock.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_request.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_restrict.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_signd.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_timer.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntp_util.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd-opts.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd-opts.h
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.1ntpdman
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.1ntpdmdoc
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.c
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.html
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.man.in
/freebsd-10.1-release/contrib/ntp/ntpd/ntpd.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_local.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_parse.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_shm.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_true.c
/freebsd-10.1-release/contrib/ntp/ntpd/refclock_tsyncpci.c
/freebsd-10.1-release/contrib/ntp/ntpdate/ntpdate.c
/freebsd-10.1-release/contrib/ntp/ntpdc/invoke-ntpdc.texi
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc-opts.c
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc-opts.h
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.1ntpdcman
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.c
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.h
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.html
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.man.in
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpdc/ntpdc_ops.c
/freebsd-10.1-release/contrib/ntp/ntpq/invoke-ntpq.texi
/freebsd-10.1-release/contrib/ntp/ntpq/libntpq.c
/freebsd-10.1-release/contrib/ntp/ntpq/libntpq.h
/freebsd-10.1-release/contrib/ntp/ntpq/libntpq_subs.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-opts.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-opts.h
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq-subs.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.1ntpqman
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.1ntpqmdoc
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.c
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.h
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.html
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.man.in
/freebsd-10.1-release/contrib/ntp/ntpq/ntpq.mdoc.in
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.html
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in
/freebsd-10.1-release/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in
/freebsd-10.1-release/contrib/ntp/packageinfo.sh
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/Makefile.am
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/Makefile.in
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi
/freebsd-10.1-release/contrib/ntp/scripts/invoke-plot_summary.texi
/freebsd-10.1-release/contrib/ntp/scripts/invoke-summary.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.html
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.html
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace-opts
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.html
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.man.in
/freebsd-10.1-release/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary-opts
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.1plot_summaryman
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.1plot_summarymdoc
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.html
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.man.in
/freebsd-10.1-release/contrib/ntp/scripts/plot_summary.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/summary-opts
/freebsd-10.1-release/contrib/ntp/scripts/summary.1summaryman
/freebsd-10.1-release/contrib/ntp/scripts/summary.1summarymdoc
/freebsd-10.1-release/contrib/ntp/scripts/summary.html
/freebsd-10.1-release/contrib/ntp/scripts/summary.man.in
/freebsd-10.1-release/contrib/ntp/scripts/summary.mdoc.in
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/invoke-update-leap.texi
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap-opts
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.1update-leapman
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.html
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.man.in
/freebsd-10.1-release/contrib/ntp/scripts/update-leap/update-leap.mdoc.in
/freebsd-10.1-release/contrib/ntp/sntp/configure
/freebsd-10.1-release/contrib/ntp/sntp/include/version.def
/freebsd-10.1-release/contrib/ntp/sntp/include/version.texi
/freebsd-10.1-release/contrib/ntp/sntp/invoke-sntp.texi
/freebsd-10.1-release/contrib/ntp/sntp/m4/ntp_libevent.m4
/freebsd-10.1-release/contrib/ntp/sntp/m4/ntp_problemtests.m4
/freebsd-10.1-release/contrib/ntp/sntp/m4/version.m4
/freebsd-10.1-release/contrib/ntp/sntp/networking.c
/freebsd-10.1-release/contrib/ntp/sntp/sntp-opts.c
/freebsd-10.1-release/contrib/ntp/sntp/sntp-opts.h
/freebsd-10.1-release/contrib/ntp/sntp/sntp.1sntpman
/freebsd-10.1-release/contrib/ntp/sntp/sntp.1sntpmdoc
/freebsd-10.1-release/contrib/ntp/sntp/sntp.html
/freebsd-10.1-release/contrib/ntp/sntp/sntp.man.in
/freebsd-10.1-release/contrib/ntp/sntp/sntp.mdoc.in
/freebsd-10.1-release/contrib/ntp/sntp/tests/keyFile.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/kodDatabase.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/kodFile.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/run-kodDatabase.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/run-t-log.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/t-log.c
/freebsd-10.1-release/contrib/ntp/sntp/tests/utilities.c
/freebsd-10.1-release/contrib/ntp/sntp/unity/unity_internals.h
/freebsd-10.1-release/contrib/ntp/sntp/version.c
/freebsd-10.1-release/contrib/ntp/tests/bug-2803/bug-2803.c
/freebsd-10.1-release/contrib/ntp/tests/bug-2803/run-bug-2803.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/a_md5encrypt.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/authkeys.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/buftvtots.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/calendar.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/caljulian.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/clocktime.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/decodenetnum.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/humandate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/lfpfunc.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/lfptostr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/modetoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/msyslog.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/netof.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/numtoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/numtohost.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/octtoint.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/prettydate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/recvbuff.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/refidsmear.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/refnumtoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-a_md5encrypt.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-calendar.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-decodenetnum.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-humandate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-lfpfunc.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-lfptostr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-modetoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-msyslog.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-netof.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-numtoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-numtohost.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-prettydate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-refnumtoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-sfptostr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-socktoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-statestr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-strtolfp.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-timespecops.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-timevalops.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/run-uglydate.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/sfptostr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/socktoa.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/statestr.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/strtolfp.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/timespecops.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/timevalops.c
/freebsd-10.1-release/contrib/ntp/tests/libntp/uglydate.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/leapsec.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/ntp_prio_q.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/ntp_restrict.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/rc_cmdlength.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/run-leapsec.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/run-ntp_restrict.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/run-rc_cmdlength.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/run-t-ntp_signd.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/t-ntp_scanner.c
/freebsd-10.1-release/contrib/ntp/tests/ntpd/t-ntp_signd.c
/freebsd-10.1-release/contrib/ntp/tests/sandbox/run-uglydate.c
/freebsd-10.1-release/contrib/ntp/tests/sandbox/smeartest.c
/freebsd-10.1-release/contrib/ntp/tests/sandbox/uglydate.c
/freebsd-10.1-release/contrib/ntp/tests/sec-2853/sec-2853.c
/freebsd-10.1-release/contrib/ntp/util/invoke-ntp-keygen.texi
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen-opts.c
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen-opts.h
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.1ntp-keygenman
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.c
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.html
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.man.in
/freebsd-10.1-release/contrib/ntp/util/ntp-keygen.mdoc.in
/freebsd-10.1-release/etc/Makefile
/freebsd-10.1-release/lib/libc/yp/yplib.c
linux32_proto.h
linux32_systrace_args.c
syscalls.master
/freebsd-10.1-release/sys/compat/linux/linux_futex.c
/freebsd-10.1-release/sys/compat/linux/linux_misc.c
/freebsd-10.1-release/sys/conf/newvers.sh
/freebsd-10.1-release/sys/i386/linux/syscalls.master
/freebsd-10.1-release/sys/kern/kern_prot.c
/freebsd-10.1-release/sys/net/pfvar.h
/freebsd-10.1-release/sys/netinet/tcp_output.c
/freebsd-10.1-release/sys/netinet6/ip6_output.c
/freebsd-10.1-release/sys/netinet6/ip6_var.h
/freebsd-10.1-release/sys/netinet6/sctp6_usrreq.c
/freebsd-10.1-release/sys/netpfil/pf/pf.c
/freebsd-10.1-release/sys/netpfil/pf/pf_ioctl.c
/freebsd-10.1-release/sys/netpfil/pf/pf_norm.c
/freebsd-10.1-release/sys/sys/ucred.h
/freebsd-10.1-release/usr.sbin/ntp/config.h
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp-keygen.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp.conf.5
/freebsd-10.1-release/usr.sbin/ntp/doc/ntp.keys.5
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpd.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpdc.8
/freebsd-10.1-release/usr.sbin/ntp/doc/ntpq.8
/freebsd-10.1-release/usr.sbin/ntp/doc/sntp.8
/freebsd-10.1-release/usr.sbin/ntp/scripts/mkver
272461 03-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


272021 23-Sep-2014 bz

This is a direct commit rather than an MFC of r271744.

Re-gen after r272020 (r271743 in head) implementing most of
timer_{create,settime,gettime,getoverrun,delete}.

Approved by: re (gjb)
Sponsored by: DARPA/AFRL


272020 23-Sep-2014 bz

MFC r271743:

Implement most of timer_{create,settime,gettime,getoverrun,delete}
for amd64/linux32. Fix the entirely bogus (untested) version from
r161310 for i386/linux using the same shared code in compat/linux.

It is unclear to me if we could support more clock mappings but
the current set allows me to successfully run commercial
32bit linux software under linuxolator on amd64.

Reviewed by: jhb
Differential Revision: D784
Sponsored by: DARPA, AFRL
Approved by: re (gjb)


267561 17-Jun-2014 dchagin

Revert MFC r266925 because it can lead to instant panic at fexecve():

To allow to run interpreter itself add a new ELF branding type.

Pointed out by: kib, mjg


266999 03-Jun-2014 dchagin

MFC r266925:

To allow to run the interpreter itself add a new ELF branding type.
Allow Linux ABI to run ELF interpreter.


258559 25-Nov-2013 emaste

MFC r258135: x86: Allow users to change PSL_RF via ptrace(PT_SETREGS...)

Debuggers may need to change PSL_RF. Note that tf_eflags is already stored
in the signal context during signal handling and PSL_RF previously could
be modified via sigreturn, so this change should not provide any new
ability to userspace.

For background see the thread at:
http://lists.freebsd.org/pipermail/freebsd-i386/2007-September/005910.html

Reviewed by: jhb, kib

Sponsored by: DARPA, AFRL
Approved by: re (gjb)


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


255676 18-Sep-2013 rdivacky

Regen.

Approved by: re (delphij)


255675 18-Sep-2013 rdivacky

Revert r255672, it has some serious flaws, leaking file references etc.

Approved by: re (delphij)


255673 18-Sep-2013 rdivacky

Regen.

Approved by: re (delphij)


255672 18-Sep-2013 rdivacky

Implement epoll support in Linuxulator. This is a tiny wrapper around kqueue
to implement epoll subset of functionality. The kqueue user data are 32bit
on i386 which is not enough for epoll user data so this patch overrides
kqueue fileops to maintain enough space in struct file.

Initial patch developed by me in 2007 and then extended and finished
by Yuri Victorovich.

Approved by: re (delphij)
Sponsored by: Google Summer of Code
Submitted by: Yuri Victorovich <yuri at rawbw dot com>
Tested by: Yuri Victorovich <yuri at rawbw dot com>


255219 05-Sep-2013 pjd

Change the cap_rights_t type from uint64_t to a structure that we can extend
in the future in a backward compatible (API and ABI) way.

The cap_rights_t represents capability rights. We used to use one bit to
represent one right, but we are running out of spare bits. Currently the new
structure provides place for 114 rights (so 50 more than the previous
cap_rights_t), but it is possible to grow the structure to hold at least 285
rights, although we can make it even larger if 285 rights won't be enough.

The structure definition looks like this:

struct cap_rights {
uint64_t cr_rights[CAP_RIGHTS_VERSION + 2];
};

The initial CAP_RIGHTS_VERSION is 0.

The top two bits in the first element of the cr_rights[] array contain total
number of elements in the array - 2. This means if those two bits are equal to
0, we have 2 array elements.

The top two bits in all remaining array elements should be 0.
The next five bits in all array elements contain array index. Only one bit is
used and bit position in this five-bits range defines array index. This means
there can be at most five array elements in the future.

To define new right the CAPRIGHT() macro must be used. The macro takes two
arguments - an array index and a bit to set, eg.

#define CAP_PDKILL CAPRIGHT(1, 0x0000000000000800ULL)

We still support aliases that combine few rights, but the rights have to belong
to the same array element, eg:

#define CAP_LOOKUP CAPRIGHT(0, 0x0000000000000400ULL)
#define CAP_FCHMOD CAPRIGHT(0, 0x0000000000002000ULL)

#define CAP_FCHMODAT (CAP_FCHMOD | CAP_LOOKUP)

There is new API to manage the new cap_rights_t structure:

cap_rights_t *cap_rights_init(cap_rights_t *rights, ...);
void cap_rights_set(cap_rights_t *rights, ...);
void cap_rights_clear(cap_rights_t *rights, ...);
bool cap_rights_is_set(const cap_rights_t *rights, ...);

bool cap_rights_is_valid(const cap_rights_t *rights);
void cap_rights_merge(cap_rights_t *dst, const cap_rights_t *src);
void cap_rights_remove(cap_rights_t *dst, const cap_rights_t *src);
bool cap_rights_contains(const cap_rights_t *big, const cap_rights_t *little);

Capability rights to the cap_rights_init(), cap_rights_set(),
cap_rights_clear() and cap_rights_is_set() functions are provided by
separating them with commas, eg:

cap_rights_t rights;

cap_rights_init(&rights, CAP_READ, CAP_WRITE, CAP_FSTAT);

There is no need to terminate the list of rights, as those functions are
actually macros that take care of the termination, eg:

#define cap_rights_set(rights, ...) \
__cap_rights_set((rights), __VA_ARGS__, 0ULL)
void __cap_rights_set(cap_rights_t *rights, ...);

Thanks to using one bit as an array index we can assert in those functions that
there are no two rights belonging to different array elements provided
together. For example this is illegal and will be detected, because CAP_LOOKUP
belongs to element 0 and CAP_PDKILL to element 1:

cap_rights_init(&rights, CAP_LOOKUP | CAP_PDKILL);

Providing several rights that belongs to the same array's element this way is
correct, but is not advised. It should only be used for aliases definition.

This commit also breaks compatibility with some existing Capsicum system calls,
but I see no other way to do that. This should be fine as Capsicum is still
experimental and this change is not going to 9.x.

Sponsored by: The FreeBSD Foundation


250423 09-May-2013 dchagin

Retire write-only PCB_GS32BIT pcb flag on amd64.


246085 29-Jan-2013 jhb

Reduce duplication between i386/linux/linux.h and amd64/linux32/linux.h
by moving bits that are MI out into headers in compat/linux.

Reviewed by: Chagin Dmitry dmitry | gmail
MFC after: 2 weeks


245849 23-Jan-2013 jhb

Don't assume that all Linux TCP-level socket options are identical to
FreeBSD TCP-level socket options (only the first two are). Instead,
using a mapping function and fail unsupported options as we do for other
socket option levels.

MFC after: 2 weeks


241394 10-Oct-2012 kevlo

Revert previous commit...

Pointyhat to: kevlo (myself)


241370 09-Oct-2012 kevlo

Prefer NULL over 0 for pointers


236027 25-May-2012 ed

Regenerate system call tables.


236026 25-May-2012 ed

Remove use of non-ISO-C integer types from system call tables.

These files already use ISO-C-style integer types, so make them less
inconsistent by preferring the standard types.


235063 05-May-2012 netchild

- >500 static DTrace probes for the linuxulator
- DTrace scripts to check for errors, performance, ...
they serve mostly as examples of what you can do with the static probe;s
with moderate load the scripts may be overwhelmed, excessive lock-tracing
may influence program behavior (see the last design decission)

Design decissions:
- use "linuxulator" as the provider for the native bitsize; add the
bitsize for the non-native emulation (e.g. "linuxuator32" on amd64)
- Add probes only for locks which are acquired in one function and released
in another function. Locks which are aquired and released in the same
function should be easy to pair in the code, inter-function
locking is more easy to verify in DTrace.
- Probes for locks should be fired after locking and before releasing to
prevent races (to provide data/function stability in DTrace, see the
man-page of "dtrace -v ..." and the corresponding DTrace docs).


234360 16-Apr-2012 jkim

Regen for r234359.


234359 16-Apr-2012 jkim

Correct an argument type of iopl syscall for Linuxulator. This also fixes
a warning from Clang, i. e., "args->level < 0 is always false".


234358 16-Apr-2012 jkim

Regen for r234357.


234357 16-Apr-2012 jkim

Correct arguments of stat64, fstat64 and lstat64 syscalls for Linuxulator.


234354 16-Apr-2012 jkim

Regen for r234352.


234352 16-Apr-2012 jkim

- Implement pipe2 syscall for Linuxulator. This syscall appeared in 2.6.27
but GNU libc used it without checking its kernel version, e. g., Fedora 10.
- Move pipe(2) implementation for Linuxulator from MD files to MI file,
sys/compat/linux/linux_file.c. There is no MD code for this syscall at all.
- Correct an argument type for pipe() from l_ulong * to l_int *. Probably
this was the source of MI/MD confusion.

Reviewed by: emulation


232800 10-Mar-2012 netchild

regen


232799 10-Mar-2012 netchild

- add comments to syscalls.master and linux(32)_dummy about which linux
kernel version introduced the sysctl (based upon a linux man-page)
- add comments to sscalls.master regarding some names of sysctls which are
different than the linux-names (based upon the linux unistd.h)
- add some dummy sysctls
- name an unimplemented sysctl

MFC after: 1 month


230132 15-Jan-2012 uqs

Convert files to UTF-8


228958 29-Dec-2011 jhb

Regen.


228957 29-Dec-2011 jhb

Implement linux_fadvise64() and linux_fadvise64_64() using
kern_posix_fadvise().

Reviewed by: silence on emulation@
MFC after: 2 weeks


227776 21-Nov-2011 lstewart

- 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)


227694 19-Nov-2011 ed

Regenerate system call tables.


227693 19-Nov-2011 ed

Make the Linux *at() calls a bit more complete.

Properly support:

- AT_EACCESS for faccessat(),
- AT_SYMLINK_FOLLOW for linkat().


227692 19-Nov-2011 ed

Regenerate system call tables.


227691 19-Nov-2011 ed

Improve *access*() parameter name consistency.

The current code mixes the use of `flags' and `mode'. This is a bit
confusing, since the faccessat() function as a `flag' parameter to store
the AT_ flag.

Make this less confusing by using the same name as used in the POSIX
specification -- `amode'.


227441 11-Nov-2011 rstone

Correct the types of the arguments to return probes of the syscall
provider. Previously we were erroneously supplying the argument types of
the corresponding entry probe.

Reviewed by: rpaulo
MFC after: 1 week


227309 07-Nov-2011 ed

Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.

The SYSCTL_NODE macro defines a list that stores all child-elements of
that node. If there's no SYSCTL_DECL macro anywhere else, there's no
reason why it shouldn't be static.


225618 16-Sep-2011 kmacy

Auto-generated code from sys_ prefixing makesyscalls.sh change

Approved by: re(bz)


225617 16-Sep-2011 kmacy

In order to maximize the re-usability of kernel code in user space this
patch modifies makesyscalls.sh to prefix all of the non-compatibility
calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel
entry points and all places in the code that use them. It also
fixes an additional name space collision between the kernel function
psignal and the libc function of the same name by renaming the kernel
psignal kern_psignal(). By introducing this change now we will ease future
MFCs that change syscalls.

Reviewed by: rwatson
Approved by: re (bz)


224778 11-Aug-2011 rwatson

Second-to-last commit implementing Capsicum capabilities in the FreeBSD
kernel for FreeBSD 9.0:

Add a new capability mask argument to fget(9) and friends, allowing system
call code to declare what capabilities are required when an integer file
descriptor is converted into an in-kernel struct file *. With options
CAPABILITIES compiled into the kernel, this enforces capability
protection; without, this change is effectively a no-op.

Some cases require special handling, such as mmap(2), which must preserve
information about the maximum rights at the time of mapping in the memory
map so that they can later be enforced in mprotect(2) -- this is done by
narrowing the rights in the existing max_protection field used for similar
purposes with file permissions.

In namei(9), we assert that the code is not reached from within capability
mode, as we're not yet ready to enforce namespace capabilities there.
This will follow in a later commit.

Update two capability names: CAP_EVENT and CAP_KEVENT become
CAP_POST_KEVENT and CAP_POLL_KEVENT to more accurately indicate what they
represent.

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


220186 31-Mar-2011 avg

Revert r220032:linux compat: add SO_PASSCRED option with basic handling

I have not properly thought through the commit. After r220031 (linux
compat: improve and fix sendmsg/recvmsg compatibility) the basic
handling for SO_PASSCRED is not sufficient as it breaks recvmsg
functionality for SCM_CREDS messages because now we would need to handle
sockcred data in addition to cmsgcred. And that is not implemented yet.

Pointyhat to: avg


220032 26-Mar-2011 avg

linux compat: add SO_PASSCRED option with basic handling

This seems to have been a part of a bigger patch by dchagin that either
haven't been committed or committed partially.

Submitted by: dchagin, nox
MFC after: 2 weeks


220030 26-Mar-2011 avg

linux compat: add non-dummy capget and capset system calls, regenerate

And drop dummy definitions for those system calls.
This may transiently break the build.

PR: kern/149168
Submitted by: John Wehle <john@feith.com>
Reviewed by: netchild
MFC after: 2 weeks


220028 26-Mar-2011 avg

linux compat: add non-dummy capget and capset system calls

PR: kern/149168
Submitted by: John Wehle <john@feith.com>
Reviewed by: netchild
MFC after: 2 weeks


220026 26-Mar-2011 dchagin

Export the correct AT_PLATFORM value.
Since signal trampolines are copied to the shared page do not need to
leave place on the stack for it. Forgotten in the previous commit.

MFC after: 1 Week


219609 13-Mar-2011 dchagin

Enable shared page use for amd64/linux32 and i386/linux binaries.
Move signal trampoline code from the top of the stack to the shared page.

MFC after: 2 Weeks


219560 12-Mar-2011 avg

add DTrace systrace support for linux32 and freebsd32 on amd64 syscalls

Regenerate system call and systrace support files.

PR: kern/152822
Submitted by: Artem Belevich <fbsdlist@src.cx>
Reviewed by: jhb (earlier version)
MFC after: 3 weeks


219559 12-Mar-2011 avg

add DTrace systrace support for linux32 and freebsd32 on amd64 syscalls

This commits makes necessary changes in syscall/sysent generation
infrastructure.

PR: kern/152822
Submitted by: Artem Belevich <fbsdlist@src.cx>
Reviewed by: jhb (ealier version)
MFC after: 3 weeks


219405 08-Mar-2011 dchagin

Extend struct sysvec with new method sv_schedtail, which is used for an
explicit process at fork trampoline path instead of eventhadler(schedtail)
invocation for each child process.

Remove eventhandler(schedtail) code and change linux ABI to use newly added
sysvec method.

While here replace explicit comparing of module sysentvec structure with the
newly created process sysentvec to detect the linux ABI.

Discussed with: kib

MFC after: 2 Week


219364 07-Mar-2011 dchagin

Remove dead code.

MFC after: 1 Week


218720 15-Feb-2011 dchagin

For realtime signals fill the sigval value.


218658 13-Feb-2011 dchagin

Sort include files in the alphabetical order.


218616 12-Feb-2011 dchagin

Move linux_clone(), linux_fork(), linux_vfork() to a MI path.


218613 12-Feb-2011 dchagin

In preparation for moving linux_clone() to a MI path
introduce linux_set_upcall_kse().


218612 12-Feb-2011 dchagin

In preparation for moving linux_clone () to a MI path
move the TLS code in a separate function.

Use function parameter instead of direct using register.


218611 12-Feb-2011 dchagin

Regen for r218610.


218610 12-Feb-2011 dchagin

The fourth argument of linux_clone is a pointer to the TLS. Change clone syscall definition to match actual linux one.


218103 30-Jan-2011 dchagin

Regen for r218101.

MFC after: 1 Month.


218101 30-Jan-2011 dchagin

Change linux futex syscall definition to match actual linux one.

MFC after: 1 Month.


218100 30-Jan-2011 dchagin

The kern_wait() code already removes the SIGCHLD signal for the waited
process. Removing other SIGCHLD signals is not needed and may cause
problems.

Pointed out by: jilles

MFC after: 1 Month.


218059 29-Jan-2011 dchagin

My style(9) bug.

Pointed out by: kib

MFC after: 1 Month.


218030 28-Jan-2011 dchagin

Implement a variation of the linux_common_wait() which should
be used by linuxolator itself.

Move linux_wait4() to MD path as it requires native struct
rusage translation to struct l_rusage on linux32/amd64.

MFC after: 1 Month.


218028 28-Jan-2011 dchagin

To avoid excessive code duplication move struct rusage translation
to a separate function.

MFC after: 1 Month.


217991 27-Jan-2011 kib

linux_sigreturn() loads the struct trapframe from l_sigcontext
members, thus making a signed extension of 32 bit register
context. If the register is not touched in usermode between
return from signal and next syscall entry, the sign-extension
part of 64bit register is not cleared, causing
linux32_fetch_syscall_args() to read wrong values.

Use unsigned type for the registers in the linux sigcontext.

Reported by: Jacob Frelinger <jacob.frelinger duke edu>, arundel
In collaboration with: dchagin
MFC after: 1 week


217896 26-Jan-2011 dchagin

Add macro to test the sv_flags of any process. Change some places to test
the flags instead of explicit comparing with address of known sysentvec
structures.

MFC after: 1 month


217424 14-Jan-2011 jkim

Remove redundant, bogus, and even harmful uses of setting TS bit in CR0.
It is done from fpstate_drop() when it is really necessary.

Reviewed by: kib
MFC after: 1 week


216634 22-Dec-2010 jkim

Improve PCB flags handling and make it more robust. Add two new functions
for manipulating pcb_flags. These inline functions are very similar to
atomic_set_char(9) and atomic_clear_char(9) but without unnecessary LOCK
prefix for SMP. Add comments about the rationale[1]. Use these functions
wherever possible. Although there are some places where it is not strictly
necessary (e.g., a PCB is copied to create a new PCB), it is done across
the board for sake of consistency. Turn pcb_full_iret into a PCB flag as
it is safe now. Move rarely used fields before pcb_flags and reduce size
of pcb_flags to one byte. Fix some style(9) nits in pcb.h while I am in
the neighborhood.

Reviewed by: kib
Submitted by: kib[1]
MFC after: 2 months


216255 07-Dec-2010 kib

Update some comments related to use of amd64 full context switch.
In exec_linux_setregs(), use locally cached pointer to pcb to set
pcb_full_iret.
In set_regs(), note that full return is needed when code that sets
segment registers is enabled.

MFC after: 1 week


216253 07-Dec-2010 kib

Retire write-only PCB_FULLCTX pcb flag on amd64.

Reminded by: Petr Salinger <Petr.Salinger seznam cz>
Tested by: pho
MFC after: 1 week


213716 12-Oct-2010 kib

Add macro DECLARE_MODULE_TIED to denote a module as requiring the
kernel of exactly the same __FreeBSD_version as the headers module was
compiled against.

Mark our in-tree ABI emulators with DECLARE_MODULE_TIED. The modules
use kernel interfaces that the Release Engineering Team feel are not
stable enough to guarantee they will not change during the life cycle
of a STABLE branch. In particular, the layout of struct sysentvec is
declared to be not part of the STABLE KBI.

Discussed with: bz, rwatson
Approved by: re (bz, kensmith)
MFC after: 2 weeks


213545 08-Oct-2010 kib

Regen.


213544 08-Oct-2010 kib

Fix typo.

Submitted by: arundel
MFC after: 3 days


210555 28-Jul-2010 alc

The interpreter name should no longer be treated as a buffer that can be
overwritten. (This change should have been included in r210545.)

Submitted by: kib


210501 26-Jul-2010 kib

Remove unneeded includes.

Submitted by: alc
MFC after: 1 week


210432 23-Jul-2010 kib

Regen


210431 23-Jul-2010 kib

Remove the linux_exec_copyin_args(), freebsd32_exec_copyin_args() may
server as well. COMPAT_FREEBSD32 is a prerequisite for COMPAT_LINUX32.

Reviewed by: alc
MFC after: 3 weeks


210429 23-Jul-2010 alc

Eliminate a little bit of duplicated code.


209581 28-Jun-2010 kib

Regenerate


208994 10-Jun-2010 kan

Do not require pos parameter to be zero in MAP_ANONYMOUS mmap requests
in Linux emulation layer. Linux seems to only require that pos is
page-aligned, but otherwise ignores it. Default FreeBSD mmap parameter
checking is too strict to allow some Linux binaries to run. tsMuxeR is
one example of such a binary.

Discussed with: jhb
MFC after: 1 week


208453 23-May-2010 kib

Reorganize syscall entry and leave handling.

Extend struct sysvec with three new elements:
sv_fetch_syscall_args - the method to fetch syscall arguments from
usermode into struct syscall_args. The structure is machine-depended
(this might be reconsidered after all architectures are converted).
sv_set_syscall_retval - the method to set a return value for usermode
from the syscall. It is a generalization of
cpu_set_syscall_retval(9) to allow ABIs to override the way to set a
return value.
sv_syscallnames - the table of syscall names.

Use sv_set_syscall_retval in kern_sigsuspend() instead of hardcoding
the call to cpu_set_syscall_retval().

The new functions syscallenter(9) and syscallret(9) are provided that
use sv_*syscall* pointers and contain the common repeated code from
the syscall() implementations for the architecture-specific syscall
trap handlers.

Syscallenter() fetches arguments, calls syscall implementation from
ABI sysent table, and set up return frame. The end of syscall
bookkeeping is done by syscallret().

Take advantage of single place for MI syscall handling code and
implement ptrace_lwpinfo pl_flags PL_FLAG_SCE, PL_FLAG_SCX and
PL_FLAG_EXEC. The SCE and SCX flags notify the debugger that the
thread is stopped at syscall entry or return point respectively. The
EXEC flag augments SCX and notifies debugger that the process address
space was changed by one of exec(2)-family syscalls.

The i386, amd64, sparc64, sun4v, powerpc and ia64 syscall()s are
changed to use syscallenter()/syscallret(). MIPS and arm are not
converted and use the mostly unchanged syscall() implementation.

Reviewed by: jhb, marcel, marius, nwhitehorn, stas
Tested by: marcel (ia64), marius (sparc64), nwhitehorn (powerpc),
stas (mips)
MFC after: 1 month


205792 28-Mar-2010 ed

Rename st_*timespec fields to st_*tim for POSIX 2008 compliance.

A nice thing about POSIX 2008 is that it finally standardizes a way to
obtain file access/modification/change times in sub-second precision,
namely using struct timespec, which we already have for a very long
time. Unfortunately POSIX uses different names.

This commit adds compatibility macros, so existing code should still
build properly. Also change all source code in the kernel to work
without any of the compatibility macros. This makes it all a less
ambiguous.

I am also renaming st_birthtime to st_birthtim, even though it was a
local extension anyway. It seems Cygwin also has a st_birthtim.


205642 25-Mar-2010 nwhitehorn

Change the arguments of exec_setregs() so that it receives a pointer
to the image_params struct instead of several members of that struct
individually. This makes it easier to expand its arguments in the future
without touching all platforms.

Reviewed by: jhb


205014 11-Mar-2010 nwhitehorn

Provide groundwork for 32-bit binary compatibility on non-x86 platforms,
for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32
option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts
of the kernel and enhances the freebsd32 compatibility code to support
big-endian platforms.

Reviewed by: kib, jhb


198554 28-Oct-2009 jhb

Fix some problems with effective mmap() offsets > 32 bits. This was
partially fixed on amd64 earlier. Rather than forcing linux_mmap_common()
to use a 32-bit offset, have it accept a 64-bit file offset. This offset
is then passed to the real mmap() call. Rather than inventing a structure
to hold the normal linux_mmap args that has a 64-bit offset, just pass
each of the arguments individually to linux_mmap_common() since that more
closes matches the existing style of various kern_foo() functions.

Submitted by: Christian Zander @ Nvidia
MFC after: 1 week


198507 27-Oct-2009 kib

In r197963, a race with thread being selected for signal delivery
while in kernel mode, and later changing signal mask to block the
signal, was fixed for sigprocmask(2) and ptread_exit(3). The same race
exists for sigreturn(2), setcontext(2) and swapcontext(2) syscalls.

Use kern_sigprocmask() instead of direct manipulation of td_sigmask to
reschedule newly blocked signals, closing the race.

Reviewed by: davidxu
Tested by: pho
MFC after: 1 month


197064 10-Sep-2009 des

As jhb@ pointed out to me, r197057 was incorrect, not least because these
are generated files.


196512 24-Aug-2009 bz

Fix handling of .note.ABI-tag section for GNU systems [1].
Handle GNU/Linux according to LSB Core Specification 4.0,
Chapter 11. Object Format, 11.8. ABI note tag.

Also check the first word of desc, not only name, according to
glibc abi-tags specification to distinguish between Linux and
kFreeBSD.

Add explicit handling for Debian GNU/kFreeBSD, which runs
on our kernels as well [2].

In {amd64,i386}/trap.c, when checking osrel of the current process,
also check the ABI to not change the signal behaviour for Linux
binary processes, now that we save an osrel version for all three
from the lists above in struct proc [2].

These changes make it possible to run FreeBSD, Debian GNU/kFreeBSD
and Linux binaries on the same machine again for at least i386 and
amd64, and no longer break kFreeBSD which was detected as GNU(/Linux).

PR: kern/135468
Submitted by: dchagin [1] (initial patch)
Suggested by: kib [2]
Tested by: Petr Salinger (Petr.Salinger seznam.cz) for kFreeBSD
Reviewed by: kib
MFC after: 3 days


195486 09-Jul-2009 kib

Restore the segment registers and segment base MSRs for amd64 syscall
return path only when neither thread was context switched while
executing syscall code nor syscall explicitely modified LDT or MSRs.

Save segment registers in trap handlers before interrupts are enabled,
to not allow context switches to happen before registers are saved.
Use separated byte in pcb for indication of fast/full return, since
pcb_flags are not synchronized with context switches.

The change puts back syscall microbenchmark numbers that were slowed
down after commit of the support for LDT on amd64.

Reviewed by: jeff
Tested (and tested, and tested ...) by: pho
Approved by: re (kensmith)


193264 01-Jun-2009 dchagin

Implement accept4 syscall.

Approved by: kib (mentor)
MFC after: 1 month


193235 01-Jun-2009 rwatson

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


192206 16-May-2009 dchagin

Somewhere between 2.6.23 and 2.6.27, Linux added SOCK_CLOEXEC and
SOCK_NONBLOCK flags, that allow to save fcntl() calls.

Implement a variation of the socket() syscall which takes a flags
in addition to the type argument.

Approved by: kib (mentor)
MFC after: 1 month


191989 11-May-2009 dchagin

Translate l_timeval arg to native struct timeval in
linux_setsockopt()/linux_getsockopt() for SO_RCVTIMEO,
SO_SNDTIMEO opts as l_timeval has MD members.

Remove bogus __packed attribute from l_timeval struct on __amd64__.

PR: kern/134276
Submitted by: Thomas Mueller <tmueller sysgo com>
Approved by: kib (mentor)
MFC after: 2 weeks


191973 10-May-2009 dchagin

Do not export AT_CLKTCK when emulating Linux kernel prior
to 2.4.0, as it has appeared in the 2.4.0-rc7 first time.
Being exported, AT_CLKTCK is returned by sysconf(_SC_CLK_TCK),
glibc falls back to the hard-coded CLK_TCK value when aux entry
is not present.

Glibc versions prior to 2.2.1 always use hard-coded CLK_TCK value.

For older applications/libc's which depends on hard-coded CLK_TCK
value user should set compat.linux.osrelease less than 2.4.0.

Approved by: kib (mentor)


191966 10-May-2009 dchagin

Rework r189362, r191883.
The frequency of the statistics clock is given by stathz.
Use stathz if it is available, otherwise use hz.

Pointed out by: bde

Approved by: kib (mentor)


191896 07-May-2009 jamie

Move the per-prison Linux MIB from a private one-off pointer to the new
OSD-based jail extensions. This allows the Linux MIB to accessed via
jail_set and jail_get, and serves as a demonstration of adding jail support
to a module.

Reviewed by: dchagin, kib
Approved by: bz (mentor)


191876 07-May-2009 dchagin

To avoid excessive code duplication move MI definitions to the MI
header file. As it is defined in Linux.

Approved by: kib (mentor)
MFC after: 1 month


191741 02-May-2009 dchagin

Move extern variable definitions to the header file.

Approved by: kib (mentor)
MFC after: 1 month


191719 01-May-2009 dchagin

Reimplement futexes.
Old implemention used Giant to protect the kernel data structures,
but at the same time called malloc(M_WAITOK), that could cause the
calling thread to sleep and lost Giant protection. User-visible
result was the missed wakeup.

New implementation uses one sx lock per futex. The sx protects
the futex structures and allows to sleep while copyin or copyout
are performed.

Unlike linux, we return EINVAL when FUTEX_CMP_REQUEUE operation
is requested and either caller specified futexes are equial or
second futex already exists. This is acceptable since the situation
can only occur from the application error, and glibc falls back to
old FUTEX_WAKE operation when FUTEX_CMP_REQUEUE returns an error.

Approved by: kib (mentor)
MFC after: 1 month


190708 05-Apr-2009 dchagin

Fix KBI breakage by r190520 which affects older linux.ko binaries:

1) Move the new field (brand_note) to the end of the Brandinfo structure.
2) Add a new flag BI_BRAND_NOTE that indicates that the brand_note pointer
is valid.
3) Use the brand_note field if the flag BI_BRAND_NOTE is set and as old
modules won't have the flag set, so the new field brand_note would be
ignored.

Suggested by: jhb
Reviewed by: jhb
Approved by: kib (mentor)
MFC after: 6 days


190620 01-Apr-2009 kib

Save and restore segment registers on amd64 when entering and leaving
the kernel on amd64. Fill and read segment registers for mcontext and
signals. Handle traps caused by restoration of the
invalidated selectors.

Implement user-mode creation and manipulation of the process-specific
LDT descriptors for amd64, see sysarch(2).

Implement support for TSS i/o port access permission bitmap for amd64.

Context-switch LDT and TSS. Do not save and restore segment registers on
the context switch, that is handled by kernel enter/leave trampolines
now. Remove segment restore code from the signal trampolines for
freebsd/amd64, freebsd/ia32 and linux/i386 for the same reason.

Implement amd64-specific compat shims for sysarch.

Linuxolator (temporary ?) switched to use gsbase for thread_area pointer.

TODO:
Currently, gdb is not adapted to show segment registers from struct reg.
Also, no machine-depended ptrace command is added to set segment
registers for debugged process.

In collaboration with: pho
Discussed with: peter
Reviewed by: jhb
Linuxolator tested by: dchagin


190472 27-Mar-2009 ambrisko

Revert 190445 change to this file restoring:
typedef l_long l_off_t;
Change l_mmap_argv's to l_ulong for pgoff. This restores prior behaviour
to consumers of l_off_t but allows mmap to mmap a 32bit position which a
Linux application requires to access SMBIOS data via /dev/mem.

Reviewed by: dchagin
Prompted by: rdivacky


190445 26-Mar-2009 ambrisko

Add stuff to support upcoming BMC/IPMI flashing of newer Dell machine
via the Linux tool.
- Add Linux shim to ipmi(4)
- Create a partitions file to linprocfs to make Linux fdisk see
disks. This file is dynamic so we can see disks come and go.
- Convert msdosfs to vfat in mtab since Linux uses that for
msdosfs.
- In the Linux mount path convert vfat passed in to msdosfs
so Linux mount works on FreeBSD. Note that tasting works
so that if da0 is a msdos file system
/compat/linux/bin/mount /dev/da0 /mnt
works.
- fix a 64it bug for l_off_t.
Grabing sh, mount, fdisk, df from Linux, creating a symlink of mtab to
/compat/linux/etc/mtab and then some careful unpacking of the Linux bmc
update tool and hacking makes it work on newer Dell boxes. Note, probably
if you can't figure out how to do this, then you probably shouldn't be
doing it :-)


189771 13-Mar-2009 dchagin

Implement new way of branding ELF binaries by looking to a
".note.ABI-tag" section.

The search order of a brand is changed, now first of all the
".note.ABI-tag" is looked through.

Move code which fetch osreldate for ELF binary to check_note() handler.

PR: 118473
Approved by: kib (mentor)


189423 05-Mar-2009 jhb

A better fix for handling different FPU initial control words for different
ABIs:
- Store the FPU initial control word in the pcb for each thread.
- When first using the FPU, load the initial control word after restoring
the clean state if it is not the standard control word.
- Provide a correct control word for Linux/i386 binaries under
FreeBSD/amd64.
- Adjust the control word returned for fpugetregs()/npxgetregs() when a
thread hasn't used the FPU yet to reflect the real initial control
word for the current ABI.
- The Linux/i386 ABI for FreeBSD/i386 now properly sets the right control
word instead of trashing whatever the current state of the FPU is.

Reviewed by: bde


189362 04-Mar-2009 dchagin

Add AT_PLATFORM, AT_HWCAP and AT_CLKTCK auxiliary vector entries which
are used by glibc. This silents the message "2.4+ kernel w/o ELF notes?"
from some programs at start, among them are top and pkill.

Do the assignment of the vector entries in elf_linux_fixup()
as it is done in glibc.

Fix some minor style issues.

Submitted by: Marcin Cieslak <saper at SYSTEM PL>
Approved by: kib (mentor)
MFC after: 1 week


188750 18-Feb-2009 kib

Adapt linux emulation to use cv for vfork wait.

Submitted by: Takahiro Kurosawa <takahiro.kurosawa gmail com>
PR: kern/131506


187964 31-Jan-2009 obrien

Fix the inconsistent tabbing.

Noticed by: bde


187948 31-Jan-2009 obrien

Change some movl's to mov's. Newer GAS no longer accept 'movl' instructions
for moving between a segment register and a 32-bit memory location.

Looked at by: jhb


186211 17-Dec-2008 imp

Remove obsolete AT_DEBUG stuff. It never should have been committed
in the first place, let alone migrated to linux emulation.

Reviewed by: peter, rdivacky


185442 29-Nov-2008 kib

Make linux_sendmsg() and linux_recvmsg() work on linux32/amd64.
Change types used in the linux' struct msghdr and struct cmsghdr
definitions to the properly-sized architecture-specific types.
Move ancillary data handler from linux_sendit() to linux_sendmsg().

Submitted by: dchagin


185439 29-Nov-2008 kib

Regenerate


185438 29-Nov-2008 kib

Fix iovec32 for linux32/amd64.

Add a custom version of copyiniov() to deal with the 32-bit iovec
pointers from userland (to be used later).

Adjust prototypes for linux_readv() and linux_writev() to use new
l_iovec32 definition and to match actual linux code. In particular,
use ulong for fd (why ?).

Submitted by: dchagin


185169 22-Nov-2008 kib

Add sv_flags field to struct sysentvec with intention to provide description
of the ABI of the currently executing image. Change some places to test
the flags instead of explicit comparing with address of known sysentvec
structures to determine ABI features.

Discussed with: dchagin, imp, jhb, peter


185002 16-Nov-2008 kib

In the robust futexes list head, futex_offset shall be signed,
and glibc actually supplies negative offsets. Change l_ulong to l_long.

Submitted by: dchagin


184849 11-Nov-2008 ed

Several cleanups related to pipe(2).

- Use `fildes[2]' instead of `*fildes' to make more clear that pipe(2)
fills an array with two descriptors.

- Remove EFAULT from the manual page. Because of the current calling
convention, pipe(2) raises a segmentation fault when an invalid
address is passed.

- Introduce kern_pipe() to make it easier for binary emulations to
implement pipe(2).

- Make Linux binary emulation use kern_pipe(), which means we don't have
to recover td_retval after calling the FreeBSD system call.

Approved by: rdivacky
Discussed on: arch


184790 09-Nov-2008 ed

Regenerate system call tables for r184789.


184789 09-Nov-2008 ed

Mark uname(), getdomainname() and setdomainname() with COMPAT_FREEBSD4.

Looking at our source code history, it seems the uname(),
getdomainname() and setdomainname() system calls got deprecated
somewhere after FreeBSD 1.1, but they have never been phased out
properly. Because we don't have a COMPAT_FREEBSD1, just use
COMPAT_FREEBSD4.

Also fix the Linuxolator to build without the setdomainname() routine by
just making it call userland_sysctl on kern.domainname. Also replace the
setdomainname()'s implementation to use this approach, because we're
duplicating code with sysctl_domainname().

I wasn't able to keep these three routines working in our
COMPAT_FREEBSD32, because that would require yet another keyword for
syscalls.master (COMPAT4+NOPROTO). Because this routine is probably
unused already, this won't be a problem in practice. If it turns out to
be a problem, we'll just restore this functionality.

Reviewed by: rdivacky, kib


184058 19-Oct-2008 kib

Correctly fill siginfo for the signals delivered by linux tkill/tgkill.
It is required for async cancellation to work.

Fix PROC_LOCK leak in linux_tgkill when signal delivery attempt is made
to not linux process.

Do not call em_find(p, ...) with p unlocked.

Move common code for linux_tkill() and linux_tgkill() into
linux_do_tkill().

Change linux siginfo_t definition to match actual linux one. Extend
uid fields to 4 bytes from 2. The extension does not change structure
layout and is binary compatible with previous definition, because i386
is little endian, and each uid field has 2 byte padding after it.

Reported by: Nicolas Joly <njoly pasteur fr>
Submitted by: dchangin
MFC after: 1 month


184026 18-Oct-2008 kib

Set PCB_32BIT and clear PCB_GS32BIT for linux32 binaries.

Tested by: dchagin
MFC after: 3 days


183871 14-Oct-2008 kib

Make robust futexes work on linux32/amd64. Use PTRIN to read
user-mode pointers. Change types used in the structures definitions to
properly-sized architecture-specific types.

Submitted by: dchagin
MFC after: 1 week


183322 24-Sep-2008 kib

Change the static struct sysentvec and struct Elf_Brandinfo initializers
to the C99 style. At least, it is easier to read sysent definitions
that way, and search for the actual instances of sigcode etc.

Explicitely initialize sysentvec.sv_maxssiz that was missed in most
sysvecs.

No objection from: jhb
MFC after: 1 month


182868 08-Sep-2008 kib

The pcb_gs32p should be per-cpu, not per-thread pointer. This is
location in GDT where the segment descriptor from pcb_gs32sd is
copied, and the location is in GDT local to CPU.

Noted and reviewed by: peter
MFC after: 1 week


182866 08-Sep-2008 kib

In linux_set_thread_area(), mark pcb as PCB_GS32BIT. This was missed
when r180992 was committed.

Reviewed by: peter
MFC after: 1 week


182849 07-Sep-2008 kib

Segment registers are stored in the uc_mcontext member of the struct
l_ucontext. To restore the registers content, trampoline needs to
dereference uc_mcontext instead of taking some undefined values from
l_ucontext.

Submitted by: Dmitry Chagin <dchagin@>
MFC after: 1 week


180992 30-Jul-2008 kib

Bring back the save/restore of the %ds, %es, %fs and %gs registers for
the 32bit images on amd64.

Change the semantic of the PCB_32BIT pcb flag to request the context
switch code to operate on the segment registers. Its previous meaning
of saving or restoring the %gs base offset is assigned to the new
PCB_GS32BIT flag.

FreeBSD 32bit image activator sets the PCB_32BIT flag, while Linux 32bit
emulation sets PCB_32BIT | PCB_GS32BIT.

Reviewed by: peter
MFC after: 2 weeks


178977 13-May-2008 rdivacky

Regen.

Approved by: kib (mentor)


178976 13-May-2008 rdivacky

Implement robust futexes. Most of the code is modelled after
what Linux does. This is because robust futexes are mostly
userspace thing which we cannot alter. Two syscalls maintain
pointer to userspace list and when process exits a routine
walks this list waking up processes sleeping on futexes
from that list.

Reviewed by: kib (mentor)
MFC after: 1 month


178439 23-Apr-2008 rdivacky

Implement linux_truncate64() syscall.

Tested by: Aline de Freitas <aline@riseup.net>
Approved by: kib (mentor)


178258 16-Apr-2008 jkim

Regenerate.


178257 16-Apr-2008 jkim

Add stubs for syscalls introduced in Linux 2.6.17 kernel.
Some GNU libc version started using them before 2.6.17 was officially out.

MFC after: 3 days


177999 08-Apr-2008 kib

Regenerate


177997 08-Apr-2008 kib

Implement the linux syscalls
openat, mkdirat, mknodat, fchownat, futimesat, fstatat, unlinkat,
renameat, linkat, symlinkat, readlinkat, fchmodat, faccessat.

Submitted by: rdivacky
Sponsored by: Google Summer of Code 2007
Tested by: pho


177258 16-Mar-2008 rdivacky

Regen.


177257 16-Mar-2008 rdivacky

Implement sched_setaffinity and get_setaffinity using
real cpu affinity setting primitives.

Reviewed by: jeff
Approved by: kib (mentor)


177145 13-Mar-2008 kib

Since version 4.3, gcc changed its behaviour concerning the i386/amd64
ABI and the direction flag, that is it now assumes that the direction
flag is cleared at the entry of a function and it doesn't clear once
more if needed. This new behaviour conforms to the i386/amd64 ABI.

Modify the signal handler frame setup code to clear the DF {e,r}flags
bit on the amd64/i386 for the signal handlers.

jhb@ noted that it might break old apps if they assumed DF == 1 would be
preserved in the signal handlers, but that such apps should be rare and
that older versions of gcc would not generate such apps.

Submitted by: Aurelien Jarno <aurelien aurel32 net>
PR: 121422
Reviewed by: jhb
MFC after: 2 weeks


177091 12-Mar-2008 jeff

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.


176193 11-Feb-2008 jkim

Fix Linux mmap with MAP_GROWSDOWN flag.

Reported by: Andriy Gapon (avg at icyb dot net dot ua)
Tested by: Andriy Gapon (avg at icyb dot net dot ua)
Pointyhat: me
MFC after: 3 days


172255 20-Sep-2007 kib

Fill in cr2 in the signal context from ksi->ksi_addr.
Together with the sys/i386/i386/trap.c rev. 1.306 it fixes the PR.

Submitted by: rdivacky
Suggested by: jhb
Sponsored by: Google Summer of Code 2007
PR: kern/77710
Approved by: re (kensmith)


172220 18-Sep-2007 dwmalone

The kernel version of Linux statfs64 is actually supposed to take
3 arguments, but we had forgotten the second argument. Also make the
Linux statfs64 struct depend on the architecture because it has an
extra 4 bytes padding on amd64 compared to i386.

The three argument fix is from David Taylor, the struct statfs64
stuff is my fault. With this patch I can install i386 Linux matlab
on an amd64 machine.

Submitted by: David Taylor <davidt_at_yadt.co.uk>
Approved by: re (kensmith)


171999 28-Aug-2007 kib

Regenerate.

Approved by: re (kensmith)


171998 28-Aug-2007 kib

Implement fake linux sched_getaffinity() syscall to enable java to work
with Linux 2.6 emulation. This shall be reimplemented once FreeBSD gets
native scheduler affinity syscalls.

Submitted by: rdivacky
Reviewed by: jkim
Sponsored by: Google Summer of Code 2007
Approved by: re (kensmith)


171410 12-Jul-2007 jhb

Fix a couple of issues with the stack limit for 32-bit processes on 64-bit
kernels exposed by the recent fixes to resource limits for 32-bit processes
on 64-bit kernels:
- Let ABIs expose their maximum stack size via a new pointer in sysentvec
and use that in preference to maxssiz during exec() rather than always
using maxssiz for all processses.
- Apply the ABI's limit fixup to the previous stack size when adjusting
RLIMIT_STACK to determine if the existing mapping for the stack needs to
be grown or shrunk (as well as how much it should be grown or shrunk).

Approved by: re (kensmith)


171216 04-Jul-2007 peter

Don't add the 'pad' argument to the mmap/truncate/etc syscalls.

Submitted by: kensmith
Approved by: re (kensmith)


170307 05-Jun-2007 jeff

Commit 14/14 of sched_lock decomposition.
- Use thread_lock() rather than sched_lock for per-thread scheduling
sychronization.
- Use the per-process spinlock rather than the sched_lock for per-process
scheduling synchronization.

Tested by: kris, current@
Tested on: i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc.
Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)


169895 23-May-2007 kib

Move futex support code from <arch>/support.s into linux compat directory.
Implement all futex atomic operations in assembler to not depend on the
fuword() that does not allow to distinguish between -1 and failure return.
Correctly return 0 from atomic operations on success.

In collaboration with: rdivacky
Tested by: Scot Hetzel <swhetzel gmail com>, Milos Vyletel <mvyletel mzm cz>
Sponsored by: Google SoC 2007


169565 14-May-2007 jhb

Rework the support for ABIs to override resource limits (used by 32-bit
processes under 64-bit kernels). Previously, each 32-bit process overwrote
its resource limits at exec() time. The problem with this approach is that
the new limits affect all child processes of the 32-bit process, including
if the child process forks and execs a 64-bit process. To fix this, don't
ovewrite the resource limits during exec(). Instead, sv_fixlimits() is
now replaced with a different function sv_fixlimit() which asks the ABI to
sanitize a single resource limit. We then use this when querying and
setting resource limits. Thus, if a 32-bit process sets a limit, then
that new limit will be inherited by future children. However, if the
32-bit process doesn't change a limit, then a future 64-bit child will
see the "full" 64-bit limit rather than the 32-bit limit.

MFC is tentative since it will break the ABI of old linux.ko modules (no
other modules are affected).

MFC after: 1 week


169458 11-May-2007 kan

Do not dereference linux_to_bsd_signal[-1] if userland has
passed zero as exit signal.

GCC 4.2 changes the kernel data segment layout not to have 0
in that memory location. This code ran by luck before and now
the luck has run out.


168848 18-Apr-2007 jkim

Fix style(9) and comments.

Submitted by: Scot Hetzel (swhetzel at gmail dot com)


168844 18-Apr-2007 jkim

style(9) says sizeof's are not be followed by a space. Fix them.


168843 18-Apr-2007 jkim

Implement settimeofday() for Linuxulator/amd64.

Submitted by: Scot Hetzel (swhetzel at gmail dot com)


168275 02-Apr-2007 jkim

MFP4: Turn emul_lock into a mutex.

Submitted by: rdivacky


168063 30-Mar-2007 jkim

MFP4: Fix style(9) nits and grammar in comments.


168056 30-Mar-2007 jkim

MFP4: 114193, 114194

Dont "return" in linux_clone() after we forked the new process in a case
of problems. Move the copyout of p2->p_pid outside the emul_lock coverage.

Submitted by: Roman Divacky


168036 30-Mar-2007 jkim

Regen for set_thread_area.


168035 30-Mar-2007 jkim

MFP4: Linux set_thread_area syscall (aka TLS) support for amd64.

Initial version was submitted by Divacky Roman and mostly rewritten by me.

Tested by: emulation


168014 29-Mar-2007 julian

Implement the openat() linux syscall
Submitted by: Roman Divacky (rdivacky@)
MFC after: 2 weeks


167157 02-Mar-2007 jkim

MFP4: 115220, 115222

- Fix style(9) and reduce diff between amd64 and i386.
- Prefix Linuxulator macros with LINUX_ to prevent future collision.


167048 27-Feb-2007 jkim

MFP4: 115094

Linux does not check file descriptor when MAP_ANONYMOUS is set.
This should fix recent LTP test regressions.

Reported by: Scot Hetzel (swhetzel at gmail dot com)
netchild


166944 24-Feb-2007 netchild

Partial MFp4 of 114977:
Whitespace commit: Fix grammar, spelling and punctuation.

Submitted by: "Scot Hetzel" <swhetzel@gmail.com>


166731 15-Feb-2007 jkim

Fix accidental removal of an empty line from the previous commit.


166730 15-Feb-2007 jkim

Regen.


166729 15-Feb-2007 jkim

MFP4: 113033

Port iopl(2) from i386. This fixes LTP iopl01 and iopl02 on amd64.


166727 15-Feb-2007 jkim

MFP4: 113025, 113146, 113177, 113203, 113500, 113546, 113570

- PROT_READ, PROT_WRITE, or PROT_EXEC implies PROT_READ and PROT_EXEC.
Linux/ia64's i386 emulation layer does this and it complies with Linux
header files. This fixes mmap05 LTP test case on amd64.
- Do not adjust stack size when failure has occurred.
- Synchronize i386 mmap/mprotect with amd64.


166398 01-Feb-2007 kib

Introduce some more SO_ option equivalents from Linux to FreeBSD.

The msg variable in linux_recvmsg() was not initialized.
Copy it from userspace.

Submitted by: rdivacky


166395 01-Feb-2007 kib

Fix LOR that occurs because proctree_lock was acquired while holding
emuldata lock by moving the code upwards outside the emul_lock coverage.

Submitted by: rdivacky


166394 01-Feb-2007 kib

MFi386: Use LINUX_SIG_VALID macro.

Submitted by: rdivacky


166188 23-Jan-2007 jeff

- Remove setrunqueue and replace it with direct calls to sched_add().
setrunqueue() was mostly empty. The few asserts and thread state
setting were moved to the individual schedulers. sched_add() was
chosen to displace it for naming consistency reasons.
- Remove adjustrunqueue, it was 4 lines of code that was ifdef'd to be
different on all three schedulers where it was only called in one place
each.
- Remove the long ifdef'd out remrunqueue code.
- Remove the now redundant ts_state. Inspect the thread state directly.
- Don't set TSF_* flags from kern_switch.c, we were only doing this to
support a feature in one scheduler.
- Change sched_choose() to return a thread rather than a td_sched. Also,
rely on the schedulers to return the idlethread. This simplifies the
logic in choosethread(). Aside from the run queue links kern_switch.c
mostly does not care about the contents of td_sched.

Discussed with: julian

- Move the idle thread loop into the per scheduler area. ULE wants to
do something different from the other schedulers.

Suggested by: jhb

Tested on: x86/amd64 sched_{4BSD, ULE, CORE}.


166150 20-Jan-2007 netchild

MFp4 (113077, 113083, 113103, 113124, 113097):

Dont expose em->shared to the outside world before its properly
initialized. Might not affect anything but its at least a better
coding style.

Dont expose em via p->p_emuldata until its properly initialized.
This also enables us to get rid of some locking and simplify the
code because we are workin on a local copy.

In linux_fork and linux_vfork create the process in stopped state
to be sure that the new process runs with fully initialized emuldata
structure [1]. Also fix the vfork (both in linux_clone and linux_vfork)
race that could result in never woken up process [2].

Reported by: Scot Hetzel [1]
Suggested by: jhb [2]
Reviewed by: jhb (at least some important parts)
Submitted by: rdivacky
Tested by: Scot Hetzel (on amd64)

Change 2 comments (in the new code) to comply to style(9).

Suggested by: jhb


166007 14-Jan-2007 netchild

MFp4 (112893):
Make linux_vfork() actually work. This enables make to work again with 2.6.
It also fixes the LTP vfork tests.

Submitted by: rdivacky


165867 07-Jan-2007 netchild

MFp4 (112498):
Rename the locking flags to EMUL_DOLOCK and EMUL_DONTLOCK to prevent confusion.

Submitted by: rdivacky


165832 06-Jan-2007 netchild

MFi386 rev 1.56:
Bring the linux mmap code more into line with how linux (2.4.x) behaves.

Tested by: Scot Hetzel <swhetzel@gmail.com> on amd64 without PROT_EXEC

Additionally to the i386 version always use PROT_EXEC in the mapping like the
previous version of the amd64 code did. We need to examinate this further to
decide what the right thing to do is. For now this fixes several problems in
the LTP test runs and should behave regarding PROT_EXEC like before.


165690 31-Dec-2006 netchild

regen after addition of linux_utimes and linux_rt_sigtimedwait


165689 31-Dec-2006 netchild

MFp4 (111746, 108671, 108945, 112352):
- add linux utimes syscall [1]
- add linux rt_sigtimedwait syscall [2]

Submitted by: "Scot Hetzel" <swhetzel@gmail.com> [1]
Submitted by: Bruce Becker <hostmaster@whois.gts.net> [2]
PR: 93199 [2]


165610 29-Dec-2006 rwatson

Regenerate.


165609 29-Dec-2006 rwatson

Assign or clean up audit identifiers for a number of additional Linux
system calls on the amd64 architecture.

Some minor white space tweaks for consistency with other syscalls.master
files.

Obtained from: TrustedBSD Project


165408 20-Dec-2006 jkim

MFP4: 109655

- Move linux_nanosleep() from src/sys/amd64/linux32/linux32_machdep.c to
src/sys/compat/linux/linux_time.c.
- Validate timespec ranges before use as Linux kernel does.
- Fix l_timespec structure.
- Clean up style(9) nits.


164860 03-Dec-2006 netchild

MFP4 (110939):

MFi386: return EOPNOTSUPP for unknown module events.

Submitted by: rdivacky


164199 11-Nov-2006 ru

Regen.

Forgotten by: trhodes


164066 07-Nov-2006 jhb

Add a new 'union l_sigval' to use in place of 'union sigval' in the
linux siginfo structure. l_sigval uses a l_uintptr_t for sival_ptr so
that sival_ptr is the right size for linux32 on amd64. Since no code
currently uses 'lsi_ptr' this is just a cosmetic nit rather than a bug
fix.


163829 31-Oct-2006 kib

Fix a typo resulting in truncated linux32 signal trampoline code copied
to the usermode. Usually, signal handler segfaulted on return.

Reviewed by: jhb
MFC after: 3 days


163761 29-Oct-2006 netchild

regen after linux_io_* backout


163760 29-Oct-2006 netchild

Backout the linux aio stuff. Several problems where identified and the
dynamic nature (if no native aio code is available, the linux part
returns ENOSYS because of missing requisites) should be solved differently
than it is.

All this will be done in P4.

Not included in this commit is a backout of the changes to the native aio
code (removing static in some places). Those changes (and some more) will
also be needed when the reworked linux aio stuff will reenter the tree.

Requested by: rwatson
Discussed with: rwatson


163736 28-Oct-2006 netchild

regen (prctl addition)


163734 28-Oct-2006 netchild

MFP4:
Implement prctl().

Submitted by: rdivacky
Tested with: LTP


163380 15-Oct-2006 netchild

regen (linux AIO stuff)


163379 15-Oct-2006 netchild

MFP4 (with some minor changes):

Implement the linux_io_* syscalls (AIO). They are only enabled if the native
AIO code is available (either compiled in to the kernel or as a module) at
the time the functions are used. If the AIO stuff is not available there
will be a ENOSYS.

From the submitter:
---snip---
DESIGN NOTES:

1. Linux permits a process to own multiple AIO queues (distinguished by
"context"), but FreeBSD creates only one single AIO queue per process.
My code maintains a request queue (STAILQ of queue(3)) per "context",
and throws all AIO requests of all contexts owned by a process into
the single FreeBSD per-process AIO queue.

When the process calls io_destroy(2), io_getevents(2), io_submit(2) and
io_cancel(2), my code can pick out requests owned by the specified context
from the single FreeBSD per-process AIO queue according to the per-context
request queues maintained by my code.

2. The request queue maintained by my code stores contrast information between
Linux IO control blocks (struct linux_iocb) and FreeBSD IO control blocks
(struct aiocb). FreeBSD IO control block actually exists in userland memory
space, required by FreeBSD native aio_XXXXXX(2).

3. It is quite troubling that the function io_getevents() of libaio-0.3.105
needs to use Linux-specific "struct aio_ring", which is a partial mirror
of context in user space. I would rather take the address of context in
kernel as the context ID, but the io_getevents() of libaio forces me to
take the address of the "ring" in user space as the context ID.

To my surprise, one comment line in the file "io_getevents.c" of
libaio-0.3.105 reads:

Ben will hate me for this

REFERENCE:

1. Linux kernel source code: http://www.kernel.org/pub/linux/kernel/v2.6/
(include/linux/aio_abi.h, fs/aio.c)

2. Linux manual pages: http://www.kernel.org/pub/linux/docs/manpages/
(io_setup(2), io_destroy(2), io_getevents(2), io_submit(2), io_cancel(2))

3. Linux Scalability Effort: http://lse.sourceforge.net/io/aio.html
The design notes: http://lse.sourceforge.net/io/aionotes.txt

4. The package libaio, both source and binary:
http://rpmfind.net/linux/rpm2html/search.php?query=libaio
Simple transparent interface to Linux AIO system calls.

5. Libaio-oracle: http://oss.oracle.com/projects/libaio-oracle/
POSIX AIO implementation based on Linux AIO system calls (depending on
libaio).
---snip---

Submitted by: Li, Xiao <intron@intron.ac>


163374 15-Oct-2006 netchild

MFP4 (106538 + 106541):
Implement CLONE_VFORK. This fixes the clone05 LTP test.

Submitted by: rdivacky


163373 15-Oct-2006 netchild

Revert my previous commit, I mismerged this to the wrong place.

Pointy hat to: netchild


163372 15-Oct-2006 netchild

MFP4 (106541): Fix the clone05 test in the LTP.

Submitted by: rdivacky


163371 15-Oct-2006 netchild

MFP4 (107144[1]): Implement CLONE_FS on i386[1] and amd64.

Submitted by: rdivacky [1]


162954 02-Oct-2006 phk

First part of a little cleanup in the calendar/timezone/RTC handling.

Move relevant variables to <sys/clock.h> and fix #includes as necessary.

Use libkern's much more time- & spamce-efficient BCD routines.


162182 09-Sep-2006 netchild

Change futex lock from mutex to sx. Make futex_get atomic (protected by the
futex lock).

Sponsored by: Google SoC 2006
Submitted by: rdivacky
Suggested by: jhb


161696 28-Aug-2006 netchild

MFi386 parts of rev 1.55 (modulo real MD parts):
- implement CLONE_PARENT semantic
- lock proc in the currently disabled part of CLONE_THREAD

Submitted by: rdivacky


161666 27-Aug-2006 netchild

regen


161665 27-Aug-2006 netchild

Add the linux statfs64 call. This allows Tivoli backup to proceed a little
but further on -current (still not successful, but a step into the right
direction).

Sponsored by: Google SoC 2006
Submitted by: rdivacky
Tested by: Paul Mather <paul@gromit.dlib.vt.edu>


161611 25-Aug-2006 netchild

Emulate what vfork does instead of using it in linux_vfork. This way
we can do the stuff we need to do with linux processes at fork and
don't panic the kernel at exit of the child.

Submitted by: rdivacky
Tested with: tst-vfork* (glibc regression tests)
Tested by: netchild


161474 20-Aug-2006 netchild

Sync the MI parts for amd64 with i386 and remove the corresponding special
handling for amd64 in the common code. The MD parts for amd64 are still
outstanding, but at least this fixes some panics on amd64.

Sponsored by: Google SoC 2006
Submitted by: rdivacky
Tested by: bsam


161461 19-Aug-2006 netchild

Get rid of some nested includes.

Sponsored by: Google SoC 2006
Submitted by: rdivacky
Noticed by: jhb


161419 17-Aug-2006 netchild

Move some stuff into headers where they belong.

Sponsored by: Google SoC 2006
Submitted by: rdivacky
Noticed by: jhb, ssouhlal


161400 17-Aug-2006 netchild

Initialize the emul sx-lock.

Sponsored by: Google SoC 2006
Submitted by: rdivacky


161365 16-Aug-2006 netchild

Style fixes to comments.

Sponsored by: Google SoC 2006
Submitted by: rdivacky
Noticed by: jhb, ssouhlal


161330 15-Aug-2006 jhb

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


161328 15-Aug-2006 jhb

- Remove unused sysvec variables from various syscalls.conf.
- Send the systrace_args files for all the compat ABIs to /dev/null for
now. Right now makesyscalls.sh generates a file with a hardcoded
function name, so it wouldn't work for any of the ABIs anyway. Probably
the function name should be configurable via a 'systracename' variable
and the functions should be stored in a function pointer in the sysvec
structure.


161315 15-Aug-2006 netchild

Initialize the eventhandlers, mutexes and sx locks.

Sponsored by: Google SoC 2006
Submitted by: rdivacky


161311 15-Aug-2006 netchild

add autogenerated systrace_args stuff for dtrace


161310 15-Aug-2006 netchild

Add the linux 2.6.x stuff (not used by default!):
- TLS - complete
- pid/tid mangling - complete
- thread area - complete
- futexes - complete with issues
- clone() extension - complete with some possible minor issues
- mq*/timer*/clock* stuff - complete but untested and the mq* stuff is
disabled when not build as part of the kernel with native FreeBSD mq*
support (module support for this will come later)

Tested with:
- linux-firefox - works, tested
- linux-opera - works, tested
- linux-realplay - doesnt work, issue with futexes
- linux-skype - doesnt work, issue with futexes
- linux-rt2-demo - works, tested
- linux-acroread - doesnt work, unknown reason (coredump) and sometimes
issue with futexes
- various unix utilities in linux-base-gentoo3 and linux-base-fc4:
everything tried worked

On amd64 not everything is supported like on i386, the catchup is planned for
later when the remaining bugs in the new functions are fixed.

To test this new stuff, you have to run
sysctl compat.linux.osrelease=2.6.16
to switch back use
sysctl compat.linux.osrelease=2.4.2

Don't switch while running a linux program, strange things may or may not
happen.

Sponsored by: Google SoC 2006
Submitted by: rdivacky
Some suggestions/help by: jhb, kib, manu@NetBSD.org, netchild


161309 15-Aug-2006 netchild

regen


161305 15-Aug-2006 netchild

Add new syscalls in the linuxolator (only used when the sysctl
compat.linux.osrelease is changed to "2.6.16" or similar).

On amd64 not everything is supported like on i386, the catchup is planned for
later when the remaining bugs in the new functions are fixed.

Sponsored by: Google SoC 2006
Submitted by: rdivacky


161204 10-Aug-2006 netchild

Add some more errno mappings (bsd -> linux) and a comment about the status..

Submitted by: "Intron" <mag@intron.ac>


160799 28-Jul-2006 jhb

Regen for MPSAFE flag removal.


160798 28-Jul-2006 jhb

Now that all system calls are MPSAFE, retire the SYF_MPSAFE flag used to
mark system calls as being MPSAFE:
- Stop conditionally acquiring Giant around system call invocations.
- Remove all of the 'M' prefixes from the master system call files.
- Remove support for the 'M' prefix from the script that generates the
syscall-related files from the master system call files.
- Don't explicitly set SYF_MPSAFE when registering nfssvc.


160797 28-Jul-2006 jhb

Various fixes to comments in the syscall master files including removing
cruft from the audit import and adding mention of COMPAT4 to freebsd32.


160277 11-Jul-2006 jhb

Regen.


160276 11-Jul-2006 jhb

- Add conditional VFS Giant locking to getdents_common() (linux ABIs),
ibcs2_getdents(), ibcs2_read(), ogetdirentries(), svr4_sys_getdents(),
and svr4_sys_getdents64() similar to that in getdirentries().
- Mark ibcs2_getdents(), ibcs2_read(), linux_getdents(), linux_getdents64(),
linux_readdir(), ogetdirentries(), svr4_sys_getdents(), and
svr4_sys_getdents64() MPSAFE.


160144 06-Jul-2006 jhb

Regen.


160143 06-Jul-2006 jhb

- Protect the list of linux ioctl handlers with an sx lock.
- Hold Giant while calling linux ioctl handlers for now as they aren't all
known to be MPSAFE yet.
- Mark linux_ioctl() MPSAFE.


159994 27-Jun-2006 jhb

Regen.


159991 27-Jun-2006 jhb

- Add a kern_semctl() helper function for __semctl(). It accepts a pointer
to a copied-in copy of the 'union semun' and a uioseg to indicate which
memory space the 'buf' pointer of the union points to. This is then used
in linux_semctl() and svr4_sys_semctl() to eliminate use of the stackgap.
- Mark linux_ipc() and svr4_sys_semsys() MPSAFE.


159983 27-Jun-2006 jhb

Regen.


159982 27-Jun-2006 jhb

- Expand the scope of Giant some in mount(2) to protect the vfsp structure
from going away. mount(2) is now MPSAFE.
- Expand the scope of Giant some in unmount(2) to protect the mp structure
(or rather, to handle concurrent unmount races) from going away.
umount(2) is now MPSAFE, as well as linux_umount() and linux_oldumount().
- nmount(2) and linux_mount() were already MPSAFE.


159961 26-Jun-2006 jhb

Regen.


159959 26-Jun-2006 jhb

linux_brk() is MPSAFE.


159824 21-Jun-2006 netchild

Commit the DUMMY stuff (printing messages for missing syscalls) for amd64 too.

Submitted by: rdivacky
Sponsored by: Google SoC 2006
Noticed by: jkim
Pointyhat to: netchild


159801 20-Jun-2006 netchild

regen after change to syscalls.master


159799 20-Jun-2006 netchild

Switch to using the DUMMY infrastructure instead of UNIMPL for the new
syscalls. This way there will be a log message printed to the console
(this time for real).

Note: UNIMPL should be used for syscalls we do not implement ever, e.g.
syscalls to load linux kernel modules.

Submitted by: rdivacky
Sponsored by: Goole SoC 2006
P4 IDs: 99600, 99602


159582 13-Jun-2006 netchild

regen after MFP4 (soc2006/rdivacky_linuxolator) of syscalls.master

P4-Changes: similar to 98673 and 98675 but regenerated locally
Sponsored by: Google SoC 2006
Submitted by: rdivacky


159581 13-Jun-2006 netchild

MFP4 (soc2006/rdivacky_linuxolator)

Update of syscall.master:
o Adding of several new dummy syscalls (268-310)
o Synchronization of amd64 syscall.master with i386 one
o Auditing added to amd64 syscall.master
o Change auditing type for lstat syscall (bugfix). [1]

P4-Changes: 98672, 98674
Noticed by: rwatson [1]
Sponsored by: Google SoC 2006
Submitted by: rdivacky


158407 10-May-2006 netchild

regen (linux rt_sigpending)


158406 10-May-2006 netchild

Implement rt_sigpending in the linuxolator.

PR: 92671
Submitted by: Markus Niemist"o <markus.niemisto@gmx.net>


158334 06-May-2006 ambrisko

Forgot the amd/linux32 part since sys/*/linux didn't match :-(

Pointed out by: Alexander (thanks)


156919 20-Mar-2006 netchild

regen: fix of linuxolator with testing in a cross-build


156918 20-Mar-2006 netchild

Fix the linuxolator on amd64 (cross-build).


156875 19-Mar-2006 ru

Regen.


156874 19-Mar-2006 ru

Unbreak COMPAT_LINUX32 option support on amd64.

Broken by: netchild


156851 18-Mar-2006 netchild

regen


156843 18-Mar-2006 netchild

regen after COMPAT_43 removal


156842 18-Mar-2006 netchild

Get rid of the need of COMPAT_43 in the linuxolator.

Submitted by: Divacky Roman <xdivac02@stud.fit.vutbr.cz>
Obtained from: DragonFly (some parts)


156440 08-Mar-2006 ups

Fix exec_map resource leaks.

Tested by: kris@


155402 06-Feb-2006 jhb

- Always call exec_free_args() in kern_execve() instead of doing it in all
the callers if the exec either succeeds or fails early.
- Move the code to call exit1() if the exec fails after the vmspace is
gone to the bottom of kern_execve() to cut down on some code duplication.


153741 26-Dec-2005 sobomax

Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure
with flags bitfield and set BI_CAN_EXEC_DYN flag for all brands that usually
allow executing elf dynamic binaries (aka shared libraries). When it is
requested to execute ET_DYN elf image check if this flag is on after we
know the elf brand allowing execution if so.

PR: kern/87615
Submitted by: Marcin Koziej <creep@desk.pl>


153448 15-Dec-2005 jhb

Remove linux_mib_destroy() (which I actually added in between 5.0 and 5.1)
which existed to cleanup the linux_osname mutex. Now that MTX_SYSINIT()
has grown a SYSUNINIT to destroy mutexes on unload, the extra destroy here
was redundant and resulted in panics in debug kernels.

MFC after: 1 week
Reported by: Goran Gajic ggajic at afrodita dot rcub dot bg dot ac dot yu


151980 02-Nov-2005 ps

Calling setrlimit from 32bit apps could potentially increase certain
limits beyond what should be capiable in a 32bit process, so we
must fixup the limits.

Reviewed by: jhb


151343 14-Oct-2005 jhb

The signal code is now an int rather than a long, so update debug printfs.


151316 14-Oct-2005 davidxu

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


150473 22-Sep-2005 ups

Fix the "fpudna: fpcurthread == curthread XXX times" problem.

Tested by: kris@
Reviewed by: peter@
MFC after: 3 days


148540 29-Jul-2005 jhb

Move MODULE_DEPEND() statements for SYSVIPC dependencies to linux_ipc.c
so that they aren't duplicated 3 times and are also in the same file as
the code that depends on the SYSVIPC modules.


147975 13-Jul-2005 jhb

Regen.


147974 13-Jul-2005 jhb

Make a pass through all the compat ABIs sychronizing the MP safe flags
with the master syscall table as well as marking several ABI wrapper
functions safe.

MFC after: 1 week


147588 24-Jun-2005 jhb

Correct the amount of data to allocate in these local copies of
exec_copyin_strings() to catch up to rev 1.266 of kern_exec.c. This fixes
panics on amd64 with compat binaries since exec_free_args() was freeing
more memory than these functions were allocating and the mismatch could
cause memory to be freed out from under other concurrent execs.

Approved by: re (scottl)


147142 08-Jun-2005 sobomax

Regen after addition of linux_getpriority wrapper.

PR: kern/81951
Submitted by: Andriy Gapon <avg@icyb.net.ua>
MFC after: 1 week


147141 08-Jun-2005 sobomax

Properly convert FreeBSD priority values into Linux values in the
getpriority(2) syscall.

PR: kern/81951
Submitted by: Andriy Gapon <avg@icyb.net.ua>


146807 30-May-2005 rwatson

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


146806 30-May-2005 rwatson

Introduce a new field in the syscalls.master file format to hold the
audit event identifier associated with each system call, which will
be stored by makesyscalls.sh in the sy_auevent field of struct sysent.
For now, default the audit identifier on all system calls to AUE_NULL,
but in the near future, other BSM event identifiers will be used. The
mapping of system calls to event identifiers is many:one due to
multiple system calls that map to the same end functionality across
compatibility wrappers, ABI wrappers, etc.

Submitted by: wsalamon
Obtained from: TrustedBSD Project


144670 05-Apr-2005 jhb

Fix a change in a debug printf I missed in an earlier commit.


144449 31-Mar-2005 jhb

- Use a custom version of copyinuio() to implement readv/writev using
kern_readv/writev.
- Use kern_sched_rr_get_interval() rather than the stackgap.


144441 31-Mar-2005 jhb

- Fix some sign extension problems with implicit 32 to 64 bit conversions.
- Fix the mmap2() wrapper to not truncate high addresses.

Submitted by: Christian Zander


144011 23-Mar-2005 das

Make ps_nargvstr and ps_nenvstr unsigned. This fixes an input
validation error in procfs/linprocfs that can be exploited by local
users to cause a kernel panic. All versions of FreeBSD with the patch
referenced in SA-04:17.procfs have this bug, but versions without that
patch have a more serious bug instead. This problem only affects
systems on which procfs or linprocfs is mounted.

Found by: Coverity Prevent analysis tool
Security: Local DOS


143198 07-Mar-2005 sobomax

Regen after addition of linux_nosys handler.


143197 07-Mar-2005 sobomax

Handle unimplemented syscall by instantly returning ENOSYS instead of sending
signal first and only then returning ENOSYS to match what real linux does.

PR: kern/74302
Submitted by: Travis Poppe <tlp@LiquidX.org>


142057 18-Feb-2005 jhb

- Add a custom version of exec_copyin_args() to deal with the 32-bit
pointers in argv and envv in userland and use that together with
kern_execve() and exec_free_args() to implement linux_execve() for the
amd64/linux32 ABI without using the stackgap.
- Implement linux_nanosleep() using the recently added kern_nanosleep().
- Use linux_emul_convpath() instead of linux_emul_find() in
exec_linux_imgact_try().

Tested by: cokane
Silence on: amd64


140992 29-Jan-2005 sobomax

o Split out kernel part of execve(2) syscall into two parts: one that
copies arguments into the kernel space and one that operates
completely in the kernel space;

o use kernel-only version of execve(2) to kill another stackgap in
linuxlator/i386.

Obtained from: DragonFlyBSD (partially)
MFC after: 2 weeks


138129 27-Nov-2004 das

Don't include sys/user.h merely for its side-effect of recursively
including other headers.


136152 05-Oct-2004 jhb

Rework how we store process times in the kernel such that we always store
the raw values including for child process statistics and only compute the
system and user timevals on demand.

- Fix the various kern_wait() syscall wrappers to only pass in a rusage
pointer if they are going to use the result.
- Add a kern_getrusage() function for the ABI syscalls to use so that they
don't have to play stackgap games to call getrusage().
- Fix the svr4_sys_times() syscall to just call calcru() to calculate the
times it needs rather than calling getrusage() twice with associated
stackgap, etc.
- Add a new rusage_ext structure to store raw time stats such as tick counts
for user, system, and interrupt time as well as a bintime of the total
runtime. A new p_rux field in struct proc replaces the same inline fields
from struct proc (i.e. p_[isu]ticks, p_[isu]u, and p_runtime). A new p_crux
field in struct proc contains the "raw" child time usage statistics.
ruadd() has been changed to handle adding the associated rusage_ext
structures as well as the values in rusage. Effectively, the values in
rusage_ext replace the ru_utime and ru_stime values in struct rusage. These
two fields in struct rusage are no longer used in the kernel.
- calcru() has been split into a static worker function calcru1() that
calculates appropriate timevals for user and system time as well as updating
the rux_[isu]u fields of a passed in rusage_ext structure. calcru() uses a
copy of the process' p_rux structure to compute the timevals after updating
the runtime appropriately if any of the threads in that process are
currently executing. It also now only locks sched_lock internally while
doing the rux_runtime fixup. calcru() now only requires the caller to
hold the proc lock and calcru1() only requires the proc lock internally.
calcru() also no longer allows callers to ask for an interrupt timeval
since none of them actually did.
- calcru() now correctly handles threads executing on other CPUs.
- A new calccru() function computes the child system and user timevals by
calling calcru1() on p_crux. Note that this means that any code that wants
child times must now call this function rather than reading from p_cru
directly. This function also requires the proc lock.
- This finishes the locking for rusage and friends so some of the Giant locks
in exit1() and kern_wait() are now gone.
- The locking in ttyinfo() has been tweaked so that a shared lock of the
proctree lock is used to protect the process group rather than the process
group lock. By holding this lock until the end of the function we now
ensure that the process/thread that we pick to dump info about will no
longer vanish while we are trying to output its info to the console.

Submitted by: bde (mostly)
MFC after: 1 month


134586 01-Sep-2004 julian

Give setrunqueue() and sched_add() more of a clue as to
where they are coming from and what is expected from them.

MFC after: 2 days


134269 24-Aug-2004 jhb

Correct the arguments to kern_sigaltstack() as they were reversed.

PR: kern/68079
Submitted by: Georg-W. Koltermann gwk at rahn-koltermann dot de


133846 16-Aug-2004 obrien

I missed an 'IA32' in the documentation.


133844 16-Aug-2004 obrien

I'm not sure what tjr envisioned for turning on FreeBSD/i386 rt support,
but make it COMPAT_IA32 for now.
Fix the 'DEBUG' argument code to unbreak the amd64 LINT build.


133843 16-Aug-2004 obrien

Fix the 'DEBUG' argument code to unbreak the amd64 LINT build.


133820 16-Aug-2004 tjr

Regen.


133819 16-Aug-2004 tjr

Add preliminary support for running 32-bit Linux binaries on amd64, enabled
with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux
emulations bits, but also builds on the 32-bit FreeBSD and generic IA-32
binary emulation work.

Some of this is still a little rough around the edges, and will need to be
revisited before 32-bit and 64-bit Linux emulation support can coexist in
the same kernel.