aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-07-28Cygwin: console: Add workaround for ConEmu cygwin connector.Takashi Yano1-0/+25
- ConEmu cygwin connector conflicts with cons_master_thread since it does not use read() to read console input. With this patch, cons_master_thread is disabled in ConEmu cygwin connector.
2022-07-28Cygwin: console: Add missing input_mutex guard.Takashi Yano2-6/+18
- Setting con.disable_master_thread flag should be guarded by input_mutex, however, it was not. This patch fixes that.
2022-07-28Cygwin: Fix previous attempt to drop i386 targets from hookapiCorinna Vinschen1-20/+19
Somehow this patch looks like it was pushed before having been finished. Let's try again... Fixes: e46f15c2d168 ("Cygwin: hookapi: drop handling i386 targets") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-07-14Cygwin: _dll_crt0: minimize target-specific conditional codeCorinna Vinschen1-4/+4
Only the assembler snippet is really x86_64-specific, so minimize the conditional code block to this snippet. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-07-14Cygwin: hookapi: drop handling i386 targetsCorinna Vinschen1-3/+1
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-07-14Cygwin: fix or delete a few comments to drop 32 bit referencesCorinna Vinschen7-24/+17
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-07-14Cygwin: drop cyglsa.h. LSA subauth is not supported anymoreCorinna Vinschen2-212/+0
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-07-14Cygwin: drop 32 bit target from linker scriptCorinna Vinschen1-3/+1
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-07-14Cygwin: drop tmpfile export alias for 32 bit systemsCorinna Vinschen1-4/+0
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2022-07-13Add --enable-newlib-reent-thread-local optionMatt Joyce33-0/+267
By default, Newlib uses a huge object of type struct _reent to store thread-specific data. This object is returned by __getreent() if the __DYNAMIC_REENT__ Newlib configuration option is defined. The reentrancy structure contains for example errno and the standard input, output, and error file streams. This means that if an application only uses errno it has a dependency on the file stream support even if it does not use it. This is an issue for lower end targets and applications which need to qualify the software according to safety standards (for example ECSS-E-ST-40C, ECSS-Q-ST-80C, IEC 61508, ISO 26262, DO-178, DO-330, DO-333). If the new _REENT_THREAD_LOCAL configuration option is enabled, then struct _reent is replaced by dedicated thread-local objects for each struct _reent member. The thread-local objects are defined in translation units which use the corresponding object.
2022-07-13Add _REENT_IS_NULL()Matt Joyce4-3/+13
In a follow up patch, struct _reent is optionally replaced by dedicated thread-local objects. In this case,_REENT is optionally defined to NULL. Add the _REENT_IS_NULL() macro to disable this check on demand.
2022-07-13Add _REENT_SIG_FUNC(ptr)Matt Joyce3-15/+16
Add a _REENT_SIG_FUNC() macro to encapsulate access to the _sig_func member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
2022-07-13Add _REENT_CVTBUF(ptr)Matt Joyce3-8/+9
Add a _REENT_CVTBUF() macro to encapsulate access to the _cvtbuf member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
2022-07-13Add _REENT_CVTLEN(ptr)Matt Joyce2-4/+5
Add a _REENT_CVTLEN() macro to encapsulate access to the _cvtlen member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow-up patch.
2022-07-13Add _REENT_CLEANUP(ptr)Matt Joyce10-11/+12
Add a _REENT_CLEANUP() macro to encapsulate access to the __cleanup member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
2022-07-13Add _REENT_LOCALE(ptr)Matt Joyce3-4/+5
Add a _REENT_LOCALE() macro to encapsulate access to the _locale member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
2022-07-13Add _REENT_INC(ptr)Matt Joyce2-3/+4
Add a _REENT_INC() macro to encapsulate access to the _inc member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
2022-07-13Add _REENT_STDERR(ptr)Matt Joyce4-6/+7
Add a _REENT_STDERR() macro to encapsulate access to the _stderr member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
2022-07-13Add _REENT_STDOUT(ptr)Matt Joyce5-8/+9
Add a _REENT_STDOUT() macro to encapsulate access to the _stdout member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
2022-07-13Add _REENT_STDIN(ptr)Matt Joyce5-8/+9
Add a _REENT_STDIN() macro to encapsulate access to the _stdin member of struct reent. This will help to replace the struct member with a thread-local storage object in a follow up patch.
2022-07-13Add _REENT_ERRNO(ptr)Matt Joyce108-263/+264
Add a _REENT_ERRNO() macro to encapsulate the access to the _errno member of struct reent. This will help to replace the structure member with a thread-local storage object in a follow up patch. Replace uses of __errno_r() with _REENT_ERRNO(). Keep __errno_r() macro for potential users outside of Newlib.
2022-07-13Define _REENT_EMERGENCY(ptr) only onceMatt Joyce2-4/+4
Use this macro to access the _emergency member of struct _reent. This macro will help to replace the _emergency member of struct _reent with a thread-local storage object in a follow up patch.
2022-07-13Move content in <sys/reent.h>Sebastian Huber1-12/+12
Move definitions not directly related to struct _reent to the bottom of the file. This allows a contiguous #ifndef _REENT_THREAD_LOCAL_STORAGE block.
2022-07-12Update FAQs which are out of date on the details of setup UIJon Turney2-12/+13
2022-07-12Update FAQs for removal of 32-bit CygwinJon Turney3-13/+6
Update FAQs for removal of 32-bit Cygwin Also update FAQs for dropping support for Windows Vista/Server 20008
2022-07-12Cygwin: clipboard: Add workaround for setting clipboard failure.Takashi Yano1-13/+34
- OpenClipboard() just after CloseClipboard() sometimes fails. Due to this, /dev/clipboard sometimes fails to set CF_UNICODETEXT data. This patch add a workaround for this issue.
2022-07-11RTEMS: Add READMESebastian Huber1-0/+79
2022-07-11libc/syslog: fully deprecate and don't try to open "/dev/log"Gleb Smirnoff1-1/+0
The "/dev/log" socket existed in pre-FreeBSD times. Later it was substituted to a compatibility symlink. The symlink creation was deprecated in FreeBSD 10.2 and 9-STABLE. Reviewed by: markj Differential revision: https://reviews.freebsd.org/D35304
2022-07-11arp: Implement sticky ARP mode for interfaces.Konrad Sewiłło-Jopek1-0/+1
Provide sticky ARP flag for network interface which marks it as the "sticky" one similarly to what we have for bridges. Once interface is marked sticky, any address resolved using the ARP will be saved as a static one in the ARP table. Such functionality may be used to prevent ARP spoofing or to decrease latencies in Ethernet networks. The drawbacks include potential limitations in usage of ARP-based load-balancers and high-availability solutions such as carp(4). The implemented option is disabled by default, therefore should not impact the default behaviour of the networking stack. Sponsored by: Conclusive Engineering sp. z o.o. Reviewed By: melifaro, pauamma_gundo.com Differential Revision: https://reviews.freebsd.org/D35314 MFC after: 2 weeks
2022-07-11Correctly measure system load averages > 1024Alan Somers1-4/+4
The old fixed-point arithmetic used for calculating load averages had an overflow at 1024. So on systems with extremely high load, the observed load average would actually fall back to 0 and shoot up again, creating a kind of sawtooth graph. Fix this by using 64-bit math internally, while still reporting the load average to userspace as a 32-bit number. Sponsored by: Axcient Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D35134
2022-07-11Add ifcap2 names for RXTLS4 and RXTLS6 interface capabilitiesKonstantin Belousov1-0/+6
and corresponding nvlist capabilities name strings. Reviewed by: hselasky, jhb, kp (previous version) Sponsored by: NVIDIA Networking MFC after: 3 weeks Differential revision: https://reviews.freebsd.org/D32551
2022-07-11Kernel-side infrastructure to implement nvlist-based set/get ifcapsKonstantin Belousov2-2/+49
Reviewed by: hselasky, jhb, kp (previous version) Sponsored by: NVIDIA Networking MFC after: 3 weeks Differential revision: https://reviews.freebsd.org/D32551
2022-07-11tcp: LRO code to deal with all 12 TCP header flagsRichard Scheffenegger1-2/+2
TCP per RFC793 has 4 reserved flag bits for future use. One of those bits may be used for Accurate ECN. This patch is to include these bits in the LRO code to ease the extensibility if/when these bits are used. Reviewed By: hselasky, rrs, #transport Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D34127
2022-07-11kernel: deprecate Internet Class A/B/CMike Karels1-5/+17
Hide historical Class A/B/C macros unless IN_HISTORICAL_NETS is defined; define it for user level. Define IN_MULTICAST separately from IN_CLASSD, and use it in pf instead of IN_CLASSD. Stop using class for setting default masks when not specified; instead, define new default mask (24 bits). Warn when an Internet address is set without a mask. MFC after: 1 month Reviewed by: cy Differential Revision: https://reviews.freebsd.org/D32708
2022-07-11tcp: socket option to get stack alias namePeter Lei1-0/+1
TCP stack sysctl nodes are currently inserted using the stack name alias. Allow the user to get the current stack's alias to allow for programatic sysctl access. Obtained from: Netflix
2022-07-11tcp: Add hystart-plus to cc_newreno and rack.Randall Stewart1-1/+1
TCP Hystart draft version -03: https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-hystartplusplus Is a new version of hystart that allows one to carefully exit slow start if the RTT spikes too much. The newer version has a slower-slow-start so to speak that then kicks in for five round trips. To see if you exited too early, if not into congestion avoidance. This commit will add that feature to our newreno CC and add the needed bits in rack to be able to enable it. Reviewed by: tuexen Sponsored by: Netflix Inc. Differential Revision: https://reviews.freebsd.org/D32373
2022-07-11tcp: Add support for DSACK based reordering window to rack.Randall Stewart1-0/+1
The rack stack, with respect to the rack bits in it, was originally built based on an early I-D of rack. In fact at that time the TLP bits were in a separate I-D. The dynamic reordering window based on DSACK events was not present in rack at that time. It is now part of the RFC and we need to update our stack to include these features. However we want to have a way to control the feature so that we can, if the admin decides, make it stay the same way system wide as well as via socket option. The new sysctl and socket option has the following meaning for setting: 00 (0) - Keep the old way, i.e. reordering window is 1 and do not use DSACK bytes to add to reorder window 01 (1) - Change the Reordering window to 1/4 of an RTT but do not use DSACK bytes to add to reorder window 10 (2) - Keep the reordering window as 1, but do use SACK bytes to add additional 1/4 RTT delay to the reorder window 11 (3) - reordering window is 1/4 of an RTT and add additional DSACK bytes to increase the reordering window (RFC behavior) The default currently in the sysctl is 3 so we get standards based behavior. Reviewed by: tuexen Sponsored by: Netflix Inc. Differential Revision: https://reviews.freebsd.org/D31506
2022-07-11tsleep: Add a PNOLOCK flagAndrew Gallatin1-3/+5
Add a PNOLOCK flag so that, in the race circumstance where wakeup races are externally mitigated, tsleep() can be called with a sleep time of 0 without triggering an an assertion. Reviewed by: jhb Sponsored by: Netflix
2022-07-11socket: Implement SO_RERRORRoy Marples1-0/+1
SO_RERROR indicates that receive buffer overflows should be handled as errors. Historically receive buffer overflows have been ignored and programs could not tell if they missed messages or messages had been truncated because of overflows. Since programs historically do not expect to get receive overflow errors, this behavior is not the default. This is really really important for programs that use route(4) to keep in sync with the system. If we loose a message then we need to reload the full system state, otherwise the behaviour from that point is undefined and can lead to chasing bogus bug reports. Reviewed by: philip (network), kbowling (transport), gbe (manpages) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D26652
2022-07-11pf: syncookie supportKristof Provost1-0/+2
Import OpenBSD's syncookie support for pf. This feature help pf resist TCP SYN floods by only creating states once the remote host completes the TCP handshake rather than when the initial SYN packet is received. This is accomplished by using the initial sequence numbers to encode a cookie (hence the name) in the SYN+ACK response and verifying this on receipt of the client ACK. Reviewed by: kbowling Obtained from: OpenBSD MFC after: 1 week Sponsored by: Modirum MDPay Differential Revision: https://reviews.freebsd.org/D31138
2022-07-11tcp: Add a socket option to rackRandall Stewart1-0/+1
so we can test various changes to the slop value in timers. Timer_slop, in TCP, has been 200ms for a long time. This value dates back a long time when delayed ack timers were longer and links were slower. A 200ms timer slop allows 1 MSS to be sent over a 60kbps link. Its possible that lowering this value to something more in line with todays delayed ack values (40ms) might improve TCP. This bit of code makes it so rack can, via a socket option, adjust the timer slop. Reviewed by: mtuexen Sponsered by: Netflix Inc Differential Revision: https://reviews.freebsd.org/D30249
2022-07-11tcp: SACK Lost Retransmission Detection (LRD)Richard Scheffenegger1-0/+1
Recover from excessive losses without reverting to a retransmission timeout (RTO). Disabled by default, enable with sysctl net.inet.tcp.do_lrd=1 Reviewed By: #transport, rrs, tuexen, #manpages Sponsored by: Netapp, Inc. Differential Revision: https://reviews.freebsd.org/D28931
2022-07-11This brings into sync FreeBSD with the netflixRandall Stewart1-1/+23
versions of rack and bbr. This fixes several breakages (panics) since the tcp_lro code was committed that have been reported. Quite a few new features are now in rack (prefecting of DGP -- Dynamic Goodput Pacing among the largest). There is also support for ack-war prevention. Documents comming soon on rack.. Sponsored by: Netflix Reviewed by: rscheff, mtuexen Differential Revision: https://reviews.freebsd.org/D30036
2022-07-11Use thunks for compat ioctls using struct ifgroupreq.John Baldwin1-2/+0
Reviewed by: brooks, kib Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D29893
2022-07-11ioccom: define ioctl cmd value that can never be validKonstantin Belousov1-0/+3
Its use is for cases where some filler is needed for cmd, or we need an indication that there were no cmd supplied, and so on. Reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29935
2022-07-11poll(2): Add POLLRDHUP.Thomas Munro1-0/+1
Teach poll(2) to support Linux-style POLLRDHUP events for sockets, if requested. Triggered when the remote peer shuts down writing or closes its end. Reviewed by: kib MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D29757
2022-07-11tcp: add support for TCP over UDPMichael Tuexen1-0/+1
Adding support for TCP over UDP allows communication with TCP stacks which can be implemented in userspace without requiring special priviledges or specific support by the OS. This is joint work with rrs. Reviewed by: rrs Sponsored by: Netflix, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29469
2022-07-11termios: add more speedsBjoern A. Zeeb1-0/+8
A lot of small arm64 gadgets are using 1500000 as console speed. While cu can perfectly deal with this some 3rd party software, e.g., comms/conserver-con add speeds based on B<n> being defined. Having it defined here simplifies enhancing other software. Obtained-from: NetBSD sys/sys/termios.h 1.36 MFC-after: 2 weeks Reviewed-by: philip (,okayed by imp) Differential Revision: https://reviews.freebsd.org/D29209
2022-07-11Revert "SO_RERROR indicates that receive buffer overflows"Alexander V. Chernikov1-1/+0
Wrong version of the change was pushed inadvertenly. This reverts commit 4a01b854ca5c2e5124958363b3326708b913af71.
2022-07-11SO_RERROR indicates that receive buffer overflowsAlexander V. Chernikov1-0/+1
should be handled as errors. Historically receive buffer overflows have been ignored and programs could not tell if they missed messages or messages had been truncated because of overflows. Since programs historically do not expect to get receive overflow errors, this behavior is not the default. This is really really important for programs that use route(4) to keep in sync with the system. If we loose a message then we need to reload the full system state, otherwise the behaviour from that point is undefined and can lead to chasing bogus bug reports.