Commit Graph

20747 Commits

Author SHA1 Message Date
thorpej
85d56961e5 Update a comment relative to the vm_bootstrap_steal_memory() change, and
don't include pmap_free_pages() or pmap_next_page() in the new non-contig
case.
1998-01-08 23:48:16 +00:00
thorpej
4cb36c3346 Update a comment to reflect the vm_bootstrap_steal_memory() change, and
while I'm here, note which two functions will no longer exist when
new non-contig code is done for this pmap.
1998-01-08 23:47:07 +00:00
thorpej
54f8b4bf57 In the new non-contig case, redefine pmap_steal_memory() as an alternative
to vm_bootstrap_steal_memory(), since we may need to steal memory from
a direct-mapped segment at this early stage of the game (on e.g. MIPS
and Alpha).

This interface is activated by defining PMAP_STEAL_MEMORY in <machine/pmap.h>.
Otherwise, the pmap_virtual_space() prototype is in-scope for use by
vm_bootstrap_steal_memory().
1998-01-08 23:28:04 +00:00
thorpej
15efce41a3 Zorch pmap_startup() prototype. It was never implemented in machine-dependent
code, and is inlined in the MACHINE_NONCONTIG case of vm_page_bootstrap() now.
1998-01-08 23:13:05 +00:00
thorpej
589a1e440e Clean up and consolidate the old non-contig bootstrap functions, and
rename pmap_steal_memory() to vm_bootstrap_steal_memory().
1998-01-08 23:03:24 +00:00
lukem
c0e8ee54e9 * start from the top of the given ephemeral range and work down;
results in reserved ephemeral ports starting at the top (as per
  current practice), and shouldn't have a negative effect on normal
  ephemeral ports...
* initialise inpt_lastlow in in_pcbinit
1998-01-08 11:56:50 +00:00
mrg
c599e7d439 add new version of non contiguous memory code, written by chuck cranor,
called "MACHINE_NEW_NONCONGIG".  this is required for UVM, the new VM
system (also written by chuck) that is coming soon.  adds new functions:
	vm_page_physload() -- tell the VM system about an area of memory.
	vm_physseg_find() -- returns index in vm_physmem array that this
		address is in.
and several new versions of old functions/macros defined in vm_page.h.


this is the sparc portion.
1998-01-08 11:39:30 +00:00
mrg
a20d56e92e add new version of non contiguous memory code, written by chuck cranor,
called "MACHINE_NEW_NONCONGIG".  this is required for UVM, the new VM
system (also written by chuck) that is coming soon.  adds new functions:
	vm_page_physload() -- tell the VM system about an area of memory.
	vm_physseg_find() -- returns index in vm_physmem array that this
		address is in.
and several new versions of old functions/macros defined in vm_page.h.

this is the MI portion.  sparc, and then later i386 portions to come.
all other ports need to change to this ASAP!  (alpha is already being
worked on)
1998-01-08 11:36:16 +00:00
mrg
0876a69653 some KNF. 1998-01-08 11:03:13 +00:00
mrg
7069ab9961 don't call fb_unblank if NFB < 0 1998-01-08 10:56:36 +00:00
mrg
002fbe8721 do not use fb_unblank unless NFB > 0 1998-01-08 01:13:58 +00:00
thorpej
655a55141c Regen: Back out RCS ID related changes. 1998-01-08 01:07:24 +00:00
thorpej
5713d318b8 Back out RCS ID related changes. 1998-01-08 01:06:50 +00:00
thorpej
db8d7d755a Regen: Back out RCS ID related changes. 1998-01-08 01:05:10 +00:00
thorpej
af0fb8a65a Back out RCS ID related changes. 1998-01-08 01:04:44 +00:00
thorpej
c4a3ed1697 Regen: Back out RCS ID related changes. 1998-01-08 01:02:05 +00:00
thorpej
ddb3a0e478 Back out RCS ID related changes. 1998-01-08 01:01:27 +00:00
thorpej
22aef93dcd Regen: back out RCS ID related changes. 1998-01-08 00:36:12 +00:00
thorpej
b0a69d357f Back out RCS ID related changes. 1998-01-08 00:35:35 +00:00
thorpej
106bb71744 Regen: back out RCS ID related changes. 1998-01-08 00:33:49 +00:00
thorpej
eac46118ba Back out RCS ID related changes. 1998-01-08 00:33:33 +00:00
lukem
1a63d90320 add missing ; ... 1998-01-08 00:32:39 +00:00
thorpej
1b2dbc7a0e Regen: back out RCS ID related changes. 1998-01-08 00:32:06 +00:00
thorpej
b0ecfb4210 Back out RCD ID related changes. 1998-01-08 00:31:23 +00:00
thorpej
0068dec705 Regen: back out RCD ID related changes. 1998-01-08 00:27:16 +00:00
thorpej
585f0dec73 Regen: back out RCD ID related changes. 1998-01-08 00:17:11 +00:00
thorpej
d76d905b2f Back out RCS ID related changes. 1998-01-08 00:16:25 +00:00
thorpej
cbf3cc6bb8 Make insertion and removal of sockets from the partial and incoming
connections queues O(C) rather than O(N).
1998-01-07 23:47:08 +00:00
thorpej
cc22126721 Implement passing credentials as ancillary data on Unix domain sockets,
enabled with the LOCAL_CREDS socket option on the listener.  Semantics are
similar to BSD/OS's:
- Creds are available with first data on SOCK_STREAM, and with every datagram
  on SOCK_DGRAM.
- It is not possible to forge credentials.

Different in that:
- Different credential data structure (ours does not rely on the format
  of internal kernel data structures, and does not pass the login name).
- We can pass creds and file descriptors at the same time (this does not
  work in BSD/OS).

Luke Mewburn <lukem@netbsd.org> gets credit for inspiring me to implement
this.  :-)
1998-01-07 22:57:09 +00:00
lukem
c80b4400e5 add the following, derived from FreeBSD:
* IP_PORTRANGE socket option, which controls how the ephemeral ports
  are allocated. it takes the following settings:
	IP_PORTRANGE_DEFAULT	use anonportmin (49152) -> anonportmax (65535)
	IP_PORTRANGE_HIGH	as IP_PORTRANGE_DEFAULT (retained for FreeBSD
				compat reasons, where these are separate)
	IP_PORTRANGE_LOW	use 600 -> 1023. only works if uid==0.
* in_pcb flag INP_ANONPORT. set if port was allocated ephmerally
1998-01-07 22:51:22 +00:00
thorpej
cf89ccf13e Add uipc_ctloutput(). 1998-01-07 22:50:42 +00:00
thorpej
ba2c7e8ca0 Add flags to the unpcb, and define the "want credentials" flag. 1998-01-07 22:49:47 +00:00
thorpej
e7a511e0c1 Define the LOCAL_CREDS socket option, and pass a proc * to unp_output(). 1998-01-07 22:49:12 +00:00
thorpej
2731959046 Prototype uipc_ctloutput(). 1998-01-07 22:47:49 +00:00
thorpej
84741f2538 Add the sockcred structure and related definitions, and the SCM_CREDS
control message type.
1998-01-07 22:46:26 +00:00
is
5d5c1cd59e - avoid system stack underflow when calling sigreturn via trap #0
- make sure all sigreturn error conditions are reported to the caller,
  instead of the place jumped to.
This is the bugfix part of pr 4628 by ITOH Yasufumi.
The performance optimization part will be handled seperately, after evaluating
its implications.
Testing on 68040 and removing the performance change from the proposed patch
by scottr. Half of the Amiga machdep.c change had to be done manually by me,
as the patchfile didn't apply cleanly.
XXX Yes, Amiga should be changed to use the common sig_machdep.c instead.
XXX Really soon now. I promise.
1998-01-07 22:46:00 +00:00
mikel
c0d8293951 fix some typos in error messages & comments 1998-01-07 08:47:54 +00:00
scottr
4567c69fea Update from John Wittkoski: the Color Classic and Color Classic II
have Cuda hardware, not IIsi-based.
1998-01-07 07:33:36 +00:00
thorpej
b981fc4d34 Fix bug in recvit() that would cause recvmsg() to only receive one
control message, even if there were multiple control messages on
the queue.  From Jean-Luc Richier <Jean-Luc.Richier@imag.fr>, in
bug report kern/4700.
1998-01-07 05:49:25 +00:00
thorpej
e918c058f1 Fix passing of multiple file descriptors (was broken when code was made
64-bit safe).
1998-01-07 04:03:38 +00:00
thorpej
974b59d07c Happy new year! 1998-01-07 00:41:43 +00:00
thorpej
052b639ac1 Clean up the forking of init and the pagedaemon slightly: call fork1()
directly (which provides a pointer to the new process).
1998-01-06 21:18:00 +00:00
thorpej
07216d15fc Allow retval to be NULL, filling it in only if it was passed. 1998-01-06 21:15:41 +00:00
is
d002f566b3 Support 68060 (and, for the Amiga, even 68040 buserr frames) in the sendsig()
and, indirectly, sigreturn() functions.
XXX The Amiga should be switched to using sig_machdep.c instead.
1998-01-06 20:50:22 +00:00
bouyer
d8d77f77d6 Add a few quirk entries from OpenBSD. 1998-01-06 17:03:15 +00:00
thorpej
6ac24f05df Garbage-collect VM_PMAP. 1998-01-06 08:46:11 +00:00
thorpej
2317f9064e Garbage-collect pm_stchanged. 1998-01-06 08:40:50 +00:00
thorpej
d8ee45898e Garbage-collect __VM_PMAP_HACK. 1998-01-06 08:36:23 +00:00
thorpej
0e5cf40b1f Always include pmap_pinit(), since it is a defined pmap interface
function (thought, we might revisit that later).  Just call pmap_pinit()
in pmap_create(), instead of inlining what pmap_pinit() does.

Also, g/c a TAILQ_FIRST() macro that is now defined in <sys/queue.h>
1998-01-06 08:27:05 +00:00
thorpej
a26db50632 Don't need __VM_PMAP_HACK anymore. 1998-01-06 08:14:14 +00:00
thorpej
4044eccd3f Don't use vm_pmap; use vm_map.pmap instead. 1998-01-06 08:13:08 +00:00
thorpej
c2768af3d4 Garbage-collect cpu_set_init_frame(); it hasn't been needed for some time
now.
1998-01-06 08:06:45 +00:00
thorpej
07f835de1f Garbage-collect PMAP_ACTIVATE() call here; it's no longer necessary. 1998-01-06 07:49:36 +00:00
thorpej
3e7eb6c80a Garbage-collect pm_pdchanged; it's not used by anything. 1998-01-06 07:16:06 +00:00
thorpej
61567b54de Garbage-collect pm_stchanged; it's not used by anything. 1998-01-06 07:02:58 +00:00
thorpej
d11b109f2b Garbage-collect use of the PCB's copy of the user segment table pointer. 1998-01-06 06:51:40 +00:00
thorpej
ab9b250a37 The user segment table pointer is no longer kept here. Change it to
a spare field.

XXX Should be changed to use generic m68k PCB!
1998-01-06 06:47:04 +00:00
thorpej
8cbc5caabb The user segment table pointer is no longer kept here. Change it to
a spare field.
1998-01-06 06:46:05 +00:00
perry
8a98e23a48 RCSID Police. 1998-01-06 04:55:52 +00:00
perry
2ec6474b31 RCSID Police. 1998-01-06 04:44:59 +00:00
jtk
fe87ac4104 fix for changes in bioscall structure and include files 1998-01-06 00:35:42 +00:00
thorpej
a8f80ad4fd Fix a bogosity apparently inherited from when the Utah 4.3BSD code base
was converted to use Mach VM for Net2/4.4BSD.  The user segment table
pointer was originally stored in the PCB.  When Mach VM came along,
however, it was also stored in the pmap, and loaded into the PCB in
pmap_activate().  pmap_activate() would then note that the PCB's USTP
was now in sync with the pmap's USTP, and the low-level context switch
code would use the value from the PCB.

However, pmap_activate() would also load the hardware MMU context if
the pmap was the current pmap (or, in the case where pmaps can be shared,
such as in NetBSD, if the proc was the current proc).  The low-level
context switch code would then reload the hardware _again_ using the
USTP from the PCB.

However, the optimization of not calling pmap_activate() if "stchanged"
was false ended up causing some processes to use stale USTP values from
the PCB when the low-level context switch code reloaded the hardware!
This was noticed by using a real vfork(2) (which worked for some time
before failing, surprisingly!)

Since I'm hard pressed to find any real optimization here (since the
hardware was always reloaded once, sometimes twice!), the code now always
calls pmap_activate(), which uses the correct USTP value (the one in the
pmap).  The PCB's USTP is now ignored, and should eventually be g/c'd.

Another optimization can actually be performed, and I have added a comment
describing what it is, but have not yet implemented it.

Also note that most of the loadustp() functions where actually incomplete.
This has been corrected.  These functions should probably be split up into
MMU-specific operations, and called indirectly, rather than doing constant
run-time decision making based on values that will never change during the
course of a boot's lifetime.
1998-01-05 23:16:21 +00:00
perry
3625dbcd48 RCSID Police. 1998-01-05 21:34:56 +00:00
perry
5646f55116 make script insert RCS ids into generated files 1998-01-05 21:28:21 +00:00
perry
086015d681 RCSID Police. 1998-01-05 21:13:51 +00:00
perry
e464358f5f make script insert RCS ids into generated files 1998-01-05 21:12:34 +00:00
perry
49ad493e50 RCSID Police. 1998-01-05 21:11:15 +00:00
perry
489c2f7e06 make script insert RCS ids into generated files 1998-01-05 21:10:18 +00:00
perry
b46484bb8a RCSID Police. 1998-01-05 20:51:25 +00:00
perry
24920eefb1 RCSID Police. 1998-01-05 19:40:40 +00:00
perry
736c62507d regened with RCSIDs in place 1998-01-05 19:38:41 +00:00
perry
e6fe83471e make script insert RCS ids into generated files 1998-01-05 19:37:08 +00:00
perry
5e35a0595e regened with RCSIDs in place 1998-01-05 19:30:30 +00:00
perry
5e96ab4c0a make script insert RCS ids into generated files 1998-01-05 19:28:16 +00:00
perry
c915c7718d regened with RCSIDs in place 1998-01-05 19:25:06 +00:00
perry
127f6582ff make script insert RCS ids into generated files 1998-01-05 19:24:28 +00:00
perry
1a80fd799d RCSID Police. 1998-01-05 19:19:41 +00:00
perry
3a47434df3 regened with RCSIDs in place 1998-01-05 19:14:39 +00:00
perry
02e9346e57 fix RCS ids insertion so it really works 1998-01-05 19:13:04 +00:00
perry
9b0894473d make script insert RCS ids into generated files 1998-01-05 18:45:02 +00:00
perry
36bd5a5407 regened with RCSIDs in place 1998-01-05 18:23:00 +00:00
perry
8309b37a61 ugh. escape rcs tags so that the script doesn't get messed up. 1998-01-05 18:19:35 +00:00
perry
4dc846816b put RCS ids in the output files. Not essential, but useful. 1998-01-05 18:09:44 +00:00
perry
a69b5af889 regened with RCSID 1998-01-05 18:06:27 +00:00
perry
3c47900572 RCSID Police. 1998-01-05 17:51:27 +00:00
thorpej
e5e283e02d Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes
left were SCCS IDs and Copyright dates.
1998-01-05 10:31:44 +00:00
lukem
1f8f74b669 enhance ephemeral port allocation code:
* support sysctl net.inet.ip.anonportmin (lowest ephemeral port)
  and net.inet.ip.anonportmax (highest ephemeral port).
  these can't be set to >65535, < IPPORT_RESERVED (unless IPNOPRIVPORTS
  is defined), and anonportmin has to be < anonportmax.
* use a cleaner way of only cycling through the available set once;
  this will be useful for when a random allocation scheme is used
* define IPPORT_ANON{MIN,MAX} instead of IPPORT_USER{LOW,HIGH}
1998-01-05 09:52:02 +00:00
thorpej
2e85747e9e From 4.4BSD-Lite2 (noted by Frank van der Linden):
so_linger is used as an argument to tsleep(), so was stuffed with
clockticks for the TCP linger time.  However, so_linger is set directly from
l_linger if the linger time is specified, and l_linger is seconds (although
this is not currently documented anywhere).  Fix this to set the TCP
linger time in seconds, and multiply so_linger by hz when tsleep() is
called to actually perform the linger.
1998-01-05 09:12:29 +00:00
perry
fff05a68ab RCSID Police. 1998-01-05 07:31:05 +00:00
perry
015e898c02 RCSID Police. 1998-01-05 07:02:46 +00:00
perry
3e0fad1868 RCSID Police. 1998-01-05 06:28:44 +00:00
thorpej
010625fefd Implement access methods:
lists: LIST_FIRST(), LIST_NEXT()

simple queues: SIMPLEQ_FIRST(), SIMPLEQ_NEXT()

tail queues: TAILQ_FIRST(), TAILQ_NEXT()

circular queues: CIRCLEQ_FIRST(), CIRCLEQ_LAST(), CIRCLEQ_NEXT(),
CIRCLEQ_PREV()
1998-01-05 06:27:42 +00:00
thorpej
ce340c6ca5 Also pass fork1() a struct proc **, in case the caller wants a pointer
to the newly created process.
1998-01-05 05:16:26 +00:00
perry
d38a11e380 Fix imported RCS keyword slightly 1998-01-05 05:08:43 +00:00
perry
e13ab577cd RCSID Police. 1998-01-05 05:05:49 +00:00
thorpej
5703397593 Initialize proc0's file descriptor table with fdinit1(). 1998-01-05 04:52:48 +00:00
thorpej
6382d6dd79 Implement file descriptor table sharing. Partially from FreeBSD. 1998-01-05 04:51:15 +00:00
thorpej
fb74151eaf Fix the stat(2) ABI problem noticed by Curt Sampson and Chris Demetriou.
The problem is that the timespec structures now how 7 32-bit values before
them, which causes them to be implicitly padded on the Alpha (because the
timespecs have an alignment of 64 bits).  However, the alignment constraints
changed if _POSIX_SOURCE was defined (thus replacing the timespecs with
time_ts and longs).  This had no effect on 32-bit architectures, but changed
the offsets of several stat structure members on the Alpha.

XXX The ABI has not changed; explicit padding is added in the _POSIX_SOURCE
XXX case, enabled by an #ifdef __alpha__.  This should be changed if the
XXX stat(2) ABI is ever changed again (e.g. if we change time_t to 64 bits).
1998-01-05 02:23:43 +00:00
thorpej
341b8e9b49 Add fork statistics to vmmeter. 1998-01-04 03:53:35 +00:00
thorpej
871be215c8 Define flags passed to fork1(). Currently "block parent" and "share vmspace"
are defined.
1998-01-04 03:53:04 +00:00
thorpej
740f872797 New vfork(2) implementation, whith semantics matching those of the original
3BSD vfork(2), i.e. share address space w/ parent and block parent.

Keep statistics on the total number of forks, the number of forks that
block the parent, and the number of forks that share the address space
with the parent.
1998-01-04 03:52:02 +00:00
thorpej
43677af399 Regen: add __vfork14() at #282. 1998-01-04 03:47:05 +00:00
thorpej
d36ffe9822 Add __vfork14() system call at #282. 1998-01-04 03:45:21 +00:00
thorpej
5739c88a75 Implement address space sharing (by keeping ref counts on the vmspace
structure).  Many thanks to Chuck Cranor for debugging assistence.
1998-01-03 02:53:00 +00:00
thorpej
e1f13c8c99 Change shmfork() and shmexit() prototypes (vmspace *'s, not proc *'s). 1998-01-03 02:51:32 +00:00
thorpej
36780f9243 Make shmexit() and shmfork() take struct vmspace *'s, not struct proc *'s,
and update internal interfaces appropriately.
1998-01-03 02:50:32 +00:00
thorpej
b1cf620cfe Update for additional argument to vm_fork() ("shared" boolean). 1998-01-03 02:49:30 +00:00
thorpej
bb2d5987ff Don't call shmexit() if the vmspace ref count is not 1. Update for new
argument to shmexit().
1998-01-03 02:48:43 +00:00
thorpej
b9f1b716f3 Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
1998-01-03 01:12:59 +00:00
thorpej
b73f9750f6 Don't allocate PTEs in cpu_fork(); they were allocated when the new
process's pmap was created.  Instead, use pmap_activate() to load the
page {0,1} base and length registers into the PCB for the hardware's use.
1998-01-03 00:37:31 +00:00
thorpej
aa58d4ac6b Adjust for the fact that the page {0,1} base and length registers are now
stored in the pmap structure.
1998-01-03 00:35:28 +00:00
thorpej
f267fe868d - Adjust so that access to the PCB is not required in most pmap functions.
Store the page {0,1} base and length registers in the pmap structure,
  and implement pmap_activate(), which stores them in the PCB (for the
  hardware's use).
- Re-implement pmap_pinit(); allocate the PTEs here, not in cpu_fork().
1998-01-03 00:34:02 +00:00
thorpej
172a9381b6 - Remove the PCB pointer from the pmap structure. Instead, store the
page {0,1} base and length registers in the pmap structure.  They will
  be loaded in to the PCB when the process's address space is activated
  by way of pmap_activate().
- Remove pmap_pinit() macro; it's now a real function.
- Prototypes for pmap_pinit(), pmap_activate(), pmap_deactivate().
1998-01-03 00:28:43 +00:00
thorpej
d8076f896b Grab the PCB directly from the u-area, not by indirecting through VM
structures.
1998-01-03 00:23:53 +00:00
thorpej
9ca174a51d Implement pmap_activate(). 1998-01-02 22:57:56 +00:00
thorpej
a6f228e498 Make pmap_activate() take a struct proc *. 1998-01-02 22:36:33 +00:00
thorpej
c162e92a71 Implement pmap_activate(). 1998-01-02 22:17:18 +00:00
thorpej
f39e44955b Make pmap_activate() take a proc *. 1998-01-02 20:37:28 +00:00
thorpej
d14e18faa9 Make pmap_activate() take a proc *. 1998-01-02 20:10:26 +00:00
ragge
5680284286 Fix problem in copy*str() when not emulating locc. 1998-01-02 19:33:27 +00:00
thorpej
dd966fca05 Change an argument name to PMAP_ACTIVATE() to more accurately describe the
semantics of the argument.
1998-01-01 20:05:23 +00:00
thorpej
287b63b321 - Make pmap_activate() and pmap_deactivate() take a struct proc *.
- Define active_user_pmap() and use it in the appropriate places (from hp300
  port).
1998-01-01 19:52:50 +00:00
mikel
733dae35bc use ${SIZE} instead of "size" (somehow this one got missed) 1998-01-01 08:11:41 +00:00
enami
74a36a05ae No longer needs to include sys/shm.h. 1998-01-01 02:43:18 +00:00
thorpej
8b5e0b6e06 Remove a couple of unneeded VM-related headers. 1997-12-31 19:32:55 +00:00
cjs
89951259ed Add kernfs; remove more stuff we don't need. 1997-12-31 16:44:37 +00:00
thorpej
9c20093835 Make pmap_activate() and pmap_deactivate() take a struct proc *. 1997-12-31 10:12:55 +00:00
thorpej
a322314f51 Split out the code that prepares a VM space for exec into a new
vmspace_exec() function.
1997-12-31 07:47:41 +00:00
thorpej
673fb149c6 Implement a queue for delayed ACK processing. This queue is used in
tcp_fasttimo() in lieu of scanning all open TCP connections.
1997-12-31 03:31:23 +00:00
enami
d6eb3246bf Fix a typo in panic string. 1997-12-31 02:46:51 +00:00
enami
e4aca18342 When building fake disklabel, if a partition type is other than FS_UNUSED
don't override it so that port specific hack takes effect.
1997-12-31 02:38:24 +00:00
enami
929e6f5a6f Don't print newline at beginning of line. 1997-12-31 01:19:52 +00:00
is
d5ad660623 EACCESS->EROFS, for the write on readonly medium error. 1997-12-30 21:36:51 +00:00
thorpej
d3eaf8a978 Rearrange disk_detach() slightly, and make a small run-time cosmetic
change in disk_unbusy().
1997-12-30 09:51:24 +00:00
lukem
0b57ba7265 as per the IANA assigned ports numbers document, use ports
49152..65535 for ephemeral ports (instead of 1024..5000).
closes my [kern/4440], but with correct code :)
1997-12-30 02:54:08 +00:00
scottr
fa1347ed5b Prompt for total sectors, and calculate sane defaults for sectors per
cylinder and total sectors.
1997-12-29 07:15:10 +00:00
is
00a8cd54c1 Added ST_Q_SENSE_HELP to the Archive Viper 150S quirks so that
density 0 (autosense) actually works.
1997-12-28 19:25:35 +00:00
scottr
d8f027887d If the send routine returns an error (-1), wait and retry using the same
backoff mechanism we use for receiving the response.  This is particularly
helpful when we have transient errors on transmit, e.g. a very busy
network or router.
1997-12-26 22:41:30 +00:00
scottr
89b10b928f Do better reporting of transmit errors. 1997-12-26 22:37:05 +00:00
oki
ac86463ce3 Make compile without options MACHINE_NONCONTIG. 1997-12-24 17:48:10 +00:00
oki
49779c8c5a Add MDP_STACKADJ. 1997-12-24 17:46:08 +00:00
fvdl
ffb3eaa5ea Add extra delay after wdcreset() call in wdcprobe. Needed by at least
one controller, where registers otherwise will still be inaccesible
(even though the busy bit has been reset), making the probe fail.
1997-12-24 02:01:00 +00:00
tv
89e7595756 Exclude /dev/fb code if no framebuffer is compiled into the system.
Adds a fb.h flag file with '#define NFB 1' if any such card is configured
in to the kernel.
1997-12-23 23:57:20 +00:00
thorpej
ff7a4d0472 Add COMPAT_13. 1997-12-22 05:31:23 +00:00
jonathan
3550b22654 Commit patch for PMAG-A (mfb) pixel inversion accientally left out of 1.3.
See PR# port-pmax/4724.
1997-12-22 02:39:28 +00:00
fvdl
787c8aa329 Check vnode for VDIR type before doing anything with it in the
NFS readdir service.
1997-12-22 00:09:02 +00:00
kleink
087ac96d12 Update to last commit: do not pass the accounting flag to suser(), since the call does not actually *use* super-user privileges. Pointed out by Charles. 1997-12-21 18:50:57 +00:00
kleink
aa4d1febf1 Due to the feedback received, change chown(), fchown() and lchown() not to
clear the setgid and setuid bits if called by the superuser.  Addresses
PR kern/4662.
1997-12-21 17:49:18 +00:00
hpeyerl
6563f769af update for correct SPU type and COMPAT_13. 1997-12-21 17:15:01 +00:00
perry
589a5e2c79 patch from is -- I don't know what it does, but he says it's critical. 1997-12-20 21:13:13 +00:00
kleink
29a50e6221 Protect namespace from struct sigaltstack13. 1997-12-20 12:00:06 +00:00
pk
bf8e38df4f Establish the interrupt handlers on sun4 `oclocks'; pointed out
by Chuck Cranor.
1997-12-19 22:53:10 +00:00
scottr
6a7a3fb133 spurintr() is a low-level interrupt handler, and must not
be called by C code!  Spotted by Bill Studenmund, who also provided
#the substance of this change.
1997-12-19 05:38:00 +00:00
perry
907c7a3c43 fix the Linksys Combo EthernetCard (for carrel) 1997-12-18 22:29:29 +00:00
pk
964a147839 Clean vers.c & vers.o. 1997-12-18 21:03:58 +00:00
mycroft
61475326e0 Add delays for lame keyboard controllers, as in the keyboard driver. Do a
better job of flushing input in various cases.
1997-12-18 16:49:10 +00:00
sakamoto
73a2fb9659 support simple stack trace. 1997-12-18 09:09:01 +00:00
sakamoto
e2f98dba9e remove avail_end temporarily for compile. 1997-12-18 09:08:35 +00:00
sakamoto
15dd19ea29 use pmap.c of port-powerpc.
mem_regions support.
1997-12-18 09:07:58 +00:00
scottr
e43a4bda4a Update for the NWO 1997-12-18 06:45:30 +00:00
scottr
0b62536fdf Make these more closely resemble the old configurations. 1997-12-18 06:44:15 +00:00
scw
3adf82c90e Grok boot partition argument delimited by a colon. Force RB_ASKNAME
when partition argument is present.
1997-12-17 21:33:10 +00:00
scw
c0ba23773d Always write primary bootstrap code to raw partition, even when the
secondary bootstrap is on partition >= b.
1997-12-17 21:30:23 +00:00
scw
ea634df03a Workaround for bug in 147Bug PROM (my version, 2.2, at least) which
prevents booting from tape in the obvious way.
1997-12-17 21:28:02 +00:00
scw
4b78217d87 Conf file suitable for the ramdisk installation kernel. 1997-12-17 21:24:11 +00:00
scw
f7b8b2dc36 Add file-system KERNFS for the benefit of miniroot install. 1997-12-17 21:20:06 +00:00
jeremy
070bd37c1b Pad out table manager structures so that all the members in the contiguous
table manager array allocated in pmap_startup() are properly aligned for
faster bus access.
1997-12-17 16:20:33 +00:00
thorpej
3c5ff3879d Keep stats on connections dropped due to excessive persist timeout. 1997-12-17 06:06:41 +00:00
thorpej
04ec3df592 From 4.4BSD-Lite2:
- When running the slow timers, skip PCBs in LISTEN state.
- When processing the persist timer, drop the connection if the connection
  idle time exceeds the maximum backoff for retransmit.  Part of
  kern/2335 (pete@daemon.net).
1997-12-17 06:04:17 +00:00
thorpej
82ce1f6a97 From 4.4BSD-Lite2:
- If we fail to allocate mbufs for the outgoing segment, free the header
  and abort.

From Stevens:
- Ensure the persist timer is running if the send window reaches zero.
  Part of the fix for kern/2335 (pete@daemon.net).
1997-12-17 05:59:32 +00:00
thorpej
985f99fe00 Don't initialize softc's space tags/handles until isapnp_config() has
been called.  Pointed out by Lennart Augustsson.
1997-12-17 01:31:59 +00:00
mycroft
f1170022ce Don't do anything in comparam() if the line speed and flags are the same. 1997-12-16 22:52:37 +00:00
mjacob
feb6e077d4 do not incread vm_kmem_size that radically for 1GB or better machines 1997-12-16 21:59:41 +00:00
scottr
24d2f8120e Don't enable interrupts unless we are using reselect or interrupt-
driven PDMA modes.
1997-12-16 19:44:19 +00:00
wrstuden
5a67b7c680 Add initialization code for cs_wr5_dtr as the M.I. layer now tests
it in initializing during autoconfig. Similar to sys/arch/sun3/dev/zs.c
revision 1.47. Ought to fix hangs at first tty access reported by
Johnny Lam, <jlbg+@andrew.cmu.edu>.
1997-12-16 17:53:12 +00:00
scottr
cebc1537c1 Update to match std.mac68k changes. 1997-12-16 17:22:53 +00:00
mikel
718221a852 fix format string in FD_DEBUG printf(); from Eric Haszlakiewicz in PR 4692 1997-12-16 07:35:45 +00:00
thorpej
154fe5a522 Add INADDR_ALLRTRS_GROUP and INADDR_MAX_LOCAL_GROUP. 1997-12-16 00:02:05 +00:00
thorpej
a5252fc287 Fill out more file system information, from Havard Eidnes, and hacked a bit
by me.
1997-12-15 23:17:19 +00:00
pk
443a2a02f4 "pool" routines moved to kern/subr_pool.c 1997-12-15 11:18:41 +00:00
pk
efb8a7ec96 Add kern/subr_pool.c 1997-12-15 11:16:50 +00:00
pk
327c0046f9 Memory pool resource utility. 1997-12-15 11:14:57 +00:00
leo
4702594559 Correct size of brwrite():trbuf[] (Mellon). 1997-12-15 09:21:04 +00:00
sakamoto
c594d764bc support IDE hard disk controllers (wdc) and drives (wd)
put wdc.c into bebox/isa directory temporarily
1997-12-15 08:00:22 +00:00
scottr
c68f17bd02 Fix a typo in a comment. 1997-12-15 07:15:57 +00:00
pk
a8c268918b Changes from Rafal Boni to accommodate ISA driver front-ends. 1997-12-13 21:18:01 +00:00
thorpej
ee84a26869 After further examination of traces of bulk transfers (with help from
Kevin Lahey), undo the "defer window update until next delayed ACK".
1997-12-13 21:02:38 +00:00
gwr
be7fd676e5 Sync with GENERIC 1997-12-13 00:26:08 +00:00
gwr
ebbce0eb18 Need MEMORY_DISK_IS_ROOT now also.
Sync with GENERIC
1997-12-13 00:25:15 +00:00
gwr
4f0a44847d Move Sun3/E stuff 1997-12-13 00:23:45 +00:00
gwr
6be94f263f obsolete 1997-12-13 00:21:01 +00:00
scottr
dc89550a55 Fix typo in a trace message expression. 1997-12-12 22:44:26 +00:00
gwr
21ce121705 Temporarily disable the bootparam "gateway" support. 1997-12-12 21:09:49 +00:00
gwr
f5bbc0b3ec Copied from src/lib/libc/net/inet_pton.c
and adapted for kernel and libsa use.
1997-12-12 20:14:01 +00:00
drochner
a9006ce5b9 Make ttyblock() work as intended and documented in canonical mode.
(operator precedence problem)
closes PR kern/2131 (Matthias Pfaller)
1997-12-12 12:49:40 +00:00
sakamoto
caa702438d add bus_space_{read,write}_multi_N macros
some fix.
1997-12-12 03:08:28 +00:00
thorpej
c02a72fcd0 Implement an infrastructure to allow larger initial congestion windows.
The sysctl'able variable "tcp_init_win", when set to 0, selects an
auto-tuning algorithm for selecting the initial window, based on transmit
segment size, per discussion in the IETF tcpimpl working group.

Default initial window is still 1 segment, but will soon become 2 segments,
per discussion in tcpimpl.
1997-12-11 22:47:24 +00:00
pk
5641a30a30 Pull in fcntl GETLK/SETLK/UNLK compat functions from SVR4 sibling. 1997-12-11 09:52:57 +00:00
sakamoto
4a0b2d1b52 fix wrong variable declaration 1997-12-11 09:31:00 +00:00
sakamoto
cddd6a97bc add ins/outs macros 1997-12-11 09:23:54 +00:00
sakamoto
8bdb67652b change order of interrupt description bit 1997-12-11 09:04:23 +00:00
thorpej
3026b32ab3 In the PRU_RCVD entry point, if TF_DELACK is set, don't send the window
update now, since it will be sent within 200ms when the delayed ACK is
sent.  Instrument how many hits we get on this optimization.
1997-12-11 06:53:06 +00:00
thorpej
7f7bb7db17 In tcp_fasttimo(), don't clear TF_DELACK; we need it to count delayed ACKs
in tcp_output(), and it will only be cleared in tcp_output() if the ACK was
transmitted sucessfully.  Also, don't count delayed ACKs here, let tcp_output()
count them.
1997-12-11 06:42:44 +00:00
thorpej
8346cea65d Count delayed ACKs after they have been sucessfully transmitted. 1997-12-11 06:37:48 +00:00
thorpej
6c1840c05c Fix the "stretch ACK violation" bug documented in internet draft
draft-ietf-tcpimpl-prob-02.txt.  Also, fix another bug in the header
prediction case where an ACK would not be sent when it should be.
1997-12-11 06:33:29 +00:00
pk
9e087acb89 Code for software-assisted DDB single-stepping from Chuck Silvers. 1997-12-10 23:12:13 +00:00
pk
1581707b5d Fixes for software-assisted single-stepping from Chuck Silvers. 1997-12-10 23:09:31 +00:00
matthias
f0faff5a2f sync with /sys/arch/i386/i386/md_root.c. 1997-12-10 21:56:30 +00:00
matthias
071a27d737 add MEMORY_DISK_IS_ROOT to use the memory disk and not the boot device
as the rootdevice.
1997-12-10 21:51:14 +00:00
gwr
2031003c9b Oops - forgot to set netmask=smask 1997-12-10 20:38:37 +00:00
gwr
0aa79a60f4 Change the format of the bootparam "gateway" parameter string to
gateway=server:255.255.255.0 because that is the perferred format,
and the sys/libsa code already knows how to parse that format.
(Copied ip_convert here from the libsa code.)
1997-12-10 20:22:37 +00:00
gwr
ecd43c7870 Request the "gateway" parameter and use its contents
to determine our gateway and subnet mask, consistent
with what is done by nfs_mountroot.
1997-12-10 20:19:00 +00:00
drochner
fbe83dc02d Install "pcvt_ioctl.h" by normal "make includes". 1997-12-10 14:14:21 +00:00
leo
18d2ccf637 Add '-H' option for writing High density floppies. 1997-12-10 09:32:35 +00:00
thorpej
c40f4eb3cc Implement tcp_drain(). 1997-12-10 01:58:07 +00:00
christos
badc0e40aa PR/2733: Bill Sommerfeld: route change command can crash system. Actually
the case mentioned in the PR was fixed as part of PR/2582. There was a similar
case though that was not handled as part of my initial fix, which was fixed
in FreeBSD. I applied the remaining part from FreeBSD and the code matches
now the FreeBSD respective version. [this probably should be pulled up for 1.3]
1997-12-10 00:47:57 +00:00
sakamoto
b60acd2843 fix to get the right irq 1997-12-09 23:33:17 +00:00
gwr
e0170ea83c Remove local definition of DEBUG (left there by accident). 1997-12-09 22:29:01 +00:00
gwr
1e1b53cba9 The ie_reset function needs to turn off loopback mode.
(Remember the TDR complaint: short X clocks away?
that was because the chip was in looback mode! 8)
1997-12-09 22:25:42 +00:00
thorpej
eae709d885 Costmetic change: use intotcpcb() in tcp_fasttimo(). 1997-12-09 21:59:17 +00:00
tv
a7d1d15c39 KMEMSTATS is documented in options(4) as being a possible severe
performance hit, and on an 80386 processor, it most certainly is.  Pull it
from the GENERIC (and DISKLESS "generic") kernels--configure it in
yourself if you actually need it.
1997-12-09 13:32:32 +00:00
gwr
2e40be26b8 The ie_reset function needs to turn off loopback mode.
(Remember the TDR complaint: short X clocks away?
that was because the chip was in looback mode! 8)
1997-12-08 21:49:50 +00:00
gwr
ec9abe23be Several fixes. This version actually works! 1997-12-08 19:22:52 +00:00
gwr
1a340a5921 Fix missing newline in attach 1997-12-08 19:19:25 +00:00
gwr
c497f2ca2b Define the interrupt vector registers as 16-bit fields as
shown in the documentation.  (Thanks to Michael Thompson)
1997-12-08 19:17:12 +00:00
thorpej
b27ebeeac1 Work-around the situation where the buffer cache is larger than
16M, thus eating up all candidate bounce pages, which are not allocated
until autoconfiguration runs, by deferring allocation of the buffer
cache pages until after autoconfiguration has run.

XXX This is safe because the i386 port doesn't read any disklabels
XXX during autoconfiguration.
1997-12-08 05:07:29 +00:00
fvdl
be205fedc0 Define constants for the start and end VA of user page tables. 1997-12-07 21:30:11 +00:00
fvdl
4357e617d2 When getting a pagefault for a PT page, wire it. Normally we fault them in
ourselves, but this can still happen on a 386 in copyout & friends.

Fixes pmap_changebit panics seen on 386s. Thanks to Juergen Hannken-Illjes
for providing detailed info on bug occurances.
1997-12-07 21:28:56 +00:00
scottr
39aac67f16 Fix prototypes so that we can compile without DDB. Closes
PR 4633.
1997-12-07 17:47:47 +00:00
thorpej
0ac93f48ea Use malloc()/free(), not geteblk()/brelse(), for the device buffer. 1997-12-07 16:09:36 +00:00
thorpej
d25c266af2 Use malloc()/free() for the temporary buffer, not geteblk()/brelse(). 1997-12-07 16:06:21 +00:00
thorpej
6e39ad36a6 In pccngetc(), don't treat cn_tab->cn_dev as a valid device number until
it's initialized.
1997-12-07 06:20:44 +00:00
scw
ea4e9ca4f6 Doh! 'avail_end' is a physical offset, not a page number! 1997-12-06 20:29:59 +00:00
scottr
ee70fa750a Shades of rev 1.13: Really, we shouldn't call Debugger() if we
haven't got ddb in the kernel.  Fixes PR 4632.
1997-12-06 19:41:46 +00:00
mhitch
cc997082a5 Someone forgot to update db_tlbdump_cmd() when adding the printf routine
to the TLB dump routines arguements.  Machines would die horibbly when
trying to dump the TLB entries in DDB.  Also don't explicitly "page" the
output, since db_printf takes care of that.
1997-12-06 19:19:07 +00:00
scottr
73a00edbd6 PR 4078: Enabling the SCSI IRQ interrupt to allow reselects to work
causes the MI interrupt handler to barf when we get a 5380 RST interrupt
while probing.  Worse, the VIA latches the interrupt, so simply having
all interrupts disabled during autoconfig doesn't resolve the problem.
[I demonstrated the latter on a IIci, which erroneously reports a
reselection attempt(!) after autoconfig is complete.  The latched
interrupt results from the SCSI bus reset we do when initializing the
bus.]

Since interrupts must be enabled during autoconfig anyway (sigh), test
to see if autoconfig has completed in sbc_irq_intr().  If not, we don't
pass the interrupt up to the MI interrupt handler.  Also, make sure to
clear the VIA interrupt if we're servicing an unclaimed 5380 RST
interrupt.

Thanks to Bill Studenmund for providing the key insight needed to unlock
this problem.
1997-12-06 18:53:30 +00:00
chuck
d76941843e fix mixer code that was clearly untested:
- allow get/set of enums SUNAUDIO_SOURCE and SUNAUDIO_OUTPUT rather
	than returning EINVAL
 - add missing SUNAUDIO_MONITOR_CLASS case in query_devinfo
 - convert SUNAUDIO_MONITOR case from a MIXER_CLASS to a MIXER_VALUE
	like it is supposed to be
 - the labels for outputs/record class were swapped: fix it

this patch allows "mixerctl" to work properly on a sparc
1997-12-06 03:20:56 +00:00
mjacob
fd208bedb2 Rev up to 1.09 FC f/w, but keep 1.07 around- 1.09 is a little strange. 1997-12-05 19:42:32 +00:00
mjacob
5ff1a34bba Add a new async notification, and also fix a bug where the queue entry
wasn't getting fully zeroed as it should be.
1997-12-05 19:41:49 +00:00
mjacob
62ac2ff851 new async code defined 1997-12-05 19:40:35 +00:00
tv
0a558b3f1f Standardize COMPAT_SUNOS -- remove all references to
sunos_exec_aout_makecmds() in machdep.c for various architectures and put
it in exec_conf.c like the other emulations; rename exec.h to
sunos_exec.h.
1997-12-04 15:33:17 +00:00
leo
9d09eab68e Preserve the bootflags in the processor-type test (== make the loader
work again for the TT030).
1997-12-04 07:39:05 +00:00
mjacob
40ef7dd007 handle case of no keyboard configured 1997-12-03 22:32:05 +00:00
thorpej
27899a4858 Don't conditionalize STACKGAPLEN on COMPAT_*. Darn near everything uses
it now (including compat system calls for previous NetBSD releases),
and it doesn't hurt anything to always initialize it to non-zero.
1997-12-03 20:02:29 +00:00
briggs
16b71d1871 Thanks to Paul Goyette <paul@whooppee.com> for a patch to clear the
interrupt properly on a SuperMac Spectrum/8 Series III, and thanks
to Dan McMahill for loaning the card to Paul.
I modified Paul's patch somewhat to change grfmv_intr_generic_{1,4}
to grfmv_intr_generic_write{1,4} and added grfmv_intr_generic_or4 to
handle this card.
1997-12-03 03:05:02 +00:00
augustss
a908b2b30e Fix three problems spotted by mycroft:
- Closing the audio device should stop recording.
- Manipulating the pause function could accidentally start playing or recording.
- AUDIO_FLUSH could accidentally start playing or recording.
1997-12-03 01:01:19 +00:00
mjacob
d90bb02e10 oops on a comment- it is 1.07 FW, not 1.05 1997-12-03 00:45:05 +00:00
gwr
d4ff9e0143 Remove the broken trap recursion check (#if DEBUG) 1997-12-02 23:41:30 +00:00
gwr
b3701f21ea Kill some noise from -DDEBUG 1997-12-02 20:42:13 +00:00
gwr
7c95ede823 Kill some noise from -DDEBUG 1997-12-02 19:48:45 +00:00