summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* General -Wall warning cleanup, part I.jkh1996-07-121-1/+1
| | | | Submitted-By: Kent Vander Velden <graphix@iastate.edu>
* Fixed two bugs in previous commit: be sure to include tcp_debug.h whendg1996-07-122-3/+6
| | | | TCPDEBUG is defined, and fix typo in TCPDEBUG2() macro.
* Fix braino in rev 1.30 fix; m_copy() the mbuf that has the headerfenner1996-07-121-2/+2
| | | | | | pulled up already. This bug can cause the first packet from a source to a group to be corrupted when it is delivered to a process listening on the mrouter.
* Bump RELDATE in -current to be greater than RELDATE in -stable (and hencepeter1996-07-121-2/+2
| | | | | | | | 2.1.5-RELEASE). This will obviously be set "for real" closer to the time. (some ports use this to differentiate the two branches /dev/kmem kernel architectures. This exact same procedure happened in November last year for the 2.1 RELEASE as well.)
* Staticized some variables.bde1996-07-121-5/+12
| | | | | | | | | | | | | | Fixed initialization of pipe_pgid - don't default to pid 0 (swapper) for SIGIO. Added comments about other implicit initializations, mostly for struct stat. Fixed initialization of st_mode. S_IFSOCK was for when pipes were sockets. It is probably safe to fix the bogus S_ISFIFO() now that pipes can be distinguished from sockets in all cases. Don't return ENOSYS for inappropriate ioctls.
* Use a big delta in adjtime() for big negative adjustments as well asbde1996-07-121-2/+2
| | | | | | | | for big positive adjustments. The existence of big adjustments may be a bug (it's not documented...) but there was no good reason for the asymmetric behaviour. Reviewed by: wollman
* Staticized a few variables.bde1996-07-126-18/+27
| | | | Fixed warnings about unused variables.
* Removed "optimization" using gcc's builtin memcpy instead of bcopy.bde1996-07-122-10/+4
| | | | | There is little difference now since the amount copied is large, and bcopy will become much faster on some machines.
* Renamed upa to p0upa to match p0upt.bde1996-07-123-42/+42
| | | | Cleaned up some comments.
* Export `dumpmag' to utilities but not to the kernel.bde1996-07-122-6/+8
| | | | Restored a truncated comment.
* Fixed cloned comments about npx traps to match context.bde1996-07-123-15/+24
|
* Removed obsolete definition of PIPE_NBIO.bde1996-07-121-2/+1
|
* Moved the definition of DEBUGMSG() from asm.h to start.S. This macrobde1996-07-122-13/+13
| | | | | | | | is only appropriate to use in the special environment of start.S (real mode plus some conventions about not saving registers), and asm.h is supposed to be for generic macros. Removed some unnecessary parentheses.
* Moved the definition of `bsize' out of a DO_BAD144 ifdef so that thisbde1996-07-121-2/+2
| | | | compiles when DO_BAD144 is not defined.
* Moved the definition of dflt_name to the correct file (table.c is only forbde1996-07-123-5/+8
| | | | explicitly initialized data) and made it conditional on NAMEBLOCK.
* Fixed some speling, punctuation.. and spac ing errors.bde1996-07-122-19/+19
|
* Fixed operand order for shld and shrd.bde1996-07-122-164/+160
| | | | | | Finished the constant poisoning that was begun in rev.1.14. Consts aren't very poisonous (or useful) unless -Wcast-qual is in CFLAGS, and it isn't in the default CFLAGS.
* Don't use NULL in non-pointer contexts.bde1996-07-1213-54/+50
|
* Add some comments explaining what APM_DSVALUE_BUG does no that I knownate1996-07-112-6/+20
| | | | | | | what it does and why it's needed. Now I have to figure out how to fix the bug. :) [ No functional changes ]
* Modify the kernel to use the new pr_usrreqs interface rather than the oldwollman1996-07-1115-295/+566
| | | | | | | | | | | | | | pr_usrreq mechanism which was poorly designed and error-prone. This commit renames pr_usrreq to pr_ousrreq so that old code which depended on it would break in an obvious manner. This commit also implements the new interface for TCP, although the old function is left as an example (#ifdef'ed out). This commit ALSO fixes a longstanding bug in the TCP timer processing (introduced by davidg on 1995/04/12) which caused timer processing on a TCB to always stop after a single timer had expired (because it misinterpreted the return value from tcp_usrreq() to indicate that the TCB had been deleted). Finally, some code related to polling has been deleted from if.c because it is not relevant t -current and doesn't look at all like my current code.
* Merge.jkh1996-07-112-2/+6
|
* Adding changes to ipfw and the kernel to support ip packet diversion..julian1996-07-1012-60/+597
| | | | | | This stuff should not be too destructive if the IPDIVERT is not compiled in.. be aware that this changes the size of the ip_fw struct so ipfw needs to be recompiled to use it.. more changes coming to clean this up.
* Whee. Fix two bugs which ended up cancelling each other out.nate1996-07-104-12/+12
| | | | | | | | | | apm_setup.s was storing apm_cs16_base and apm_cs32_base addresses in each others slots, and apm.c was reversing the result so the bugs cancelled out, but the code looked wrong. No functional differences unfortunately. Submitted by: dave edmondson <davided@sco.com>
* Clean out some historical cruft.jkh1996-07-102-12/+2
|
* Disallow host routes that point to themselves. These routes serve nofenner1996-07-102-6/+35
| | | | | | | | | | | purpose, other than to get in the way of the ARP table and cause "can't allocate llinfo" errors. This change may cause gated or routed to start complaining when adding such routes. If so, these programs will need to be fixed to not try to add these routes. Reviewed by: wollman
* Functionality for IPFIREWALL_VERBOSE logging:nate1996-07-091-1/+7
| | | | | | | | | | | - State when we've reached the limit on a particular rule in the kernel logfile - State when a rule or all rules have been zero'd. This gives a log of all actions that occur w/regard to the firewall occurances, and can explain why a particular break-in attempt might not get logged due to the limit being reached. Reviewed by: alex
* This is a proposal-in-code for a substantial modification of the waywollman1996-07-094-5/+500
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the high kernel calls into a protocol stack to perform requests on the user's behalf. We replace the pr_usrreq() entry in struct protosw with a pointer to a structure containing pointers to functions which implement the various reuqests; each function is declared with the correct type and number of arguments. (This is unlike the current scheme in which a quarter of the requests take arguments of type other than (struct mbuf *) and the difference is papered over with casts.) There are a few benefits to this new scheme: 1) Arguments are passed with their correct types, and null-pointer dummies are no longer necessary. 2) There should be slightly better caching effects from eliminating the prximity to extraneous code and th switch in pr_usrreq(). 3) It becomes much easier to change the types of the arguments to something other than `struct mbuf *' (e.g.,pushing the work of sosend() into the protocol as advocated by Van Jacobson). There is one principal drawback: existing protocol stacks need to be modified. This is alleviated by compatibility code in uipc_socket2.c and uipc_domain.c which emulates the new interface in terms of the old and vice versa. This idea is not original to me. I read about what Jacobson did in one of his papers and have tried to implement the first steps towards something like that here. Much work remains to be done.
* Log not exited signal only, but the fact that core dumped (or not) tooache1996-07-091-5/+6
|
* Quiet a couple of -Wunused warnings.wollman1996-07-094-6/+15
|
* make the NAMEBLOCK changes conditional on that preprocessor variable,julian1996-07-093-10/+15
| | | | | and add more documentation of the option in the Makefile also CORRECT the variable mentioned in the README.
* Fix something that's been bugging me for a long time: move the CPUwollman1996-07-086-392/+572
| | | | | | type identification code out of machdep.c and into a new file of its own. Hopefully other grot can be moved out of machdep.c as well (by other people) into more descriptively-named files.
* Back-off on the previous commit, specifically remove the look-aheaddyson1996-07-081-11/+3
| | | | optimization on the active queue scan. I will do this correctly later.
* Fix a problem with the pageout daemon RSS limiting, where it degradesdyson1996-07-081-21/+27
| | | | | | | performance to LRU or worse when RSS limiting takes effect. Also, make an end condition in the active queue scan more efficient in the case where pages are removed from the active queue as a side effect of a pmap operation.
* In all special cases for spl or page_alloc where kmem_map is check for,dg1996-07-071-8/+8
| | | | | mb_map (a submap of kmem_map) must also be checked. Thanks to wcarchive (err...sort of) for demonstrating this bug.
* Add the ability to specify bootflags. This is similar to boot_i386(8),joerg1996-07-062-3/+31
| | | | except for the root f/s options that don't seem to be useful.
* Obtained from: Whistle Communicationsjulian1996-07-056-63/+240
| | | | | | | | | | | | | | Add code to the boot blocks to allow the user to place default boot strings on block 1 of the disk (2nd block), should the correct magic numbers be present. If the correct options are used it will 'delete' the name used from block1, thereby assuring that if the boot fails it won't be stuck in an infinite loop. the boot strings are set by the utility "nextboot" (not yet checked in, but being tested.) By default these changes should have no effect on existing installations and if compiled without the NAMEBLOCK option should be essentially identical to the old ones.
* This driver supports the SDL Communications RISCom/N2 ISA cards that isjhay1996-07-0510-5/+5286
| | | | | | | | | | | | | | | based on the HD64570 chip. Both the 1 and 2 port cards is supported. Line speeds of up to 2Mbps is possible. At this speed about 95% of the bandwidth is usable with 486DX processors. The standard FreeBSD sppp code is used for the link level layer. The default protocol used is PPP. The Cisco HDLC protocol can be used by adding "link2" to the ifconfig line in /etc/sysconfig or where ever ifconfig is run. At the moment only the X.21 interface is tested. The others may need tweaks to the clock selection code.
* Get rid of PIPE_NBIO, cleaning up the code a bit.dyson1996-07-041-27/+15
| | | | Reviewed by: bde
* Comment out rootdev & rrootdev so a ls -l doesn't panic the machine.phk1996-07-031-2/+2
|
* Implement locking for pfs nodes, when at the leaf. Concurrent accessdyson1996-07-024-22/+62
| | | | | | | to information from a single process causes hangs. Specifically, this fixes problems (hangs) with concurrent ps commands, when the system is under heavy memory load. Reviewed by: davidg
* Properly set the PG_MAPPED and PG_WRITEABLE flags. This fixes some potentialdyson1996-07-023-6/+7
| | | | problems with vm_map_remove/vm_map_delete.
* Fix a serious problem, with a window where an object lock is needed,dyson1996-07-022-114/+194
| | | | | | but not there. The extent of the object lock is expanded to be over the range that it is needed. Additionally, clean up the code so that it conforms to better coding style.
* Added or restored #include of <machine/md_var.h>. Some declarationsbde1996-07-017-11/+26
| | | | moved from <machine/cpufunc.h> to better places.
* Fixed lots of warnings about unportable casts of pointers to volatilebde1996-07-013-19/+36
| | | | | | variables: don't depend on the compiler generating atomic code to set the variables - use inline asm to specify the atomic instruction(s) explicitly.
* Moved declarations of non-cpu things from <machine/cpufunc.h> to betterbde1996-07-015-41/+22
| | | | places.
* Use the standard timer (interrupt) frequency while calibrating the clocks.bde1996-07-015-35/+20
| | | | | | | | | | Testing with the high frequency of 20000 Hz (to find problems) only found the problem that this frequency is too high for slow i386's. Disable interrupts while setting the timer frequency. This was unnecessary before rev.1.57 and forgotten in rev.1.57. The critical (i8254) interrupts are disabled in another way at boot time but not in the sysctl to change the frequency.
* Fix the ordering dependency I broke.jkh1996-06-301-2/+2
|
* Make -current consistant with -stable regarding time that a processdyson1996-06-301-2/+2
| | | | | | sleeps before being swapped out. The time is increased from 4 secs to 10 secs. Originally I had decreased it from 20 to 4, but that is a bit severe. 20 is too long though.
* Enable ktrace by default, accompanied by a small reminder about thejoerg1996-06-302-4/+14
| | | | | | implications (4 KB bloat, slight slowdown of syscalls). Reviewed by: freebsd-hackers
* Fixed a major bug that caused various pmap related panics, hangs, and reboots.dg1996-06-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The i386 pmap module uses a special area of kernel virtual memory for mapping of page tables pages when it needs to modify another process's virtual address space. It's called the 'alternate page table map'. There is only one of them and it's expected that only one process will be using it at once and that the operation is atomic. When the merged VM/buffer cache was implemented over a year ago, it became necessary to rundown VM pages at I/O completion. The unfortunate and unforeseen side effect of this is that pmap functions are now called at bio interrupt time. If there happend to be a process using the alternate page table map when this I/O completion occurred, it was possible for a different process's address space to be switched into the alternate page table map - leaving the current pmap process with the wrong address space mapped when the interrupt completed. This resulted in BAD things happening like pages being mapped or removed from the wrong address space, etc.. Since a very common case of a process modifying another process's address space is during fork when the kernel stack is inserted, one of the most common manifestations of this bug was the kernel stack not being mapped properly, resulting in a silent hang or reboot. This made it VERY difficult to troubleshoot this bug (I've been trying to figure out the cause of this for >6 months). Fortunately, the set of conditions that must be true before this problem occurs is sufficiently rare enough that most people never saw the bug occur. As I/O rates increase, however, so does the frequency of the crashes. This problem used to kill wcarchive about every 10 days, but in more recent times when the traffic exceeded >100GB/day, the machine could barely manage 6 hours of uptime. The fix is to make certain that no process has the pages mapped that are involved in the I/O, before the I/O is started. The pages are made busy, so no process will be able to map them, either, until the I/O has finished. This side-steps the issue by still allowing the pmap functions to be called at interrupt time, but also assuring that the alternate page table map won't be switched. Unfortunately, this appears to not be the only cause of this problem. :-( Reviewed by: dyson
OpenPOWER on IntegriCloud