88109 Commits

Author SHA1 Message Date
phk
87ed8009e2 Add #include <sys/conf.h> so we don't rely on <sys/disk.h> doing it. 2003-04-01 12:34:47 +00:00
ru
575e050d5b Parallelize (on the top-level SUBDIR list) the "all" stage of
buildworld.  This gives 5-11% percent gain in real buildworld
times on various UP and SMP systems here.  I used 4 * hw.ncpu
as an argument to "make -j" in my tests.
2003-04-01 11:39:04 +00:00
ru
9fcf0741d3 Pass NO_WARNS to the build-tool stage too; -Wsystem-headers
isn't known to the 4.x system compiler.
2003-04-01 11:29:29 +00:00
ru
59ea65502d This can't obviously be cleaner than system headers. 2003-04-01 11:11:38 +00:00
jeff
b6f2f0c90a - smb_td_intr takes a thread as an argument not a proc. 2003-04-01 09:24:12 +00:00
jeff
a0a1f8446c - smb_proc_intr is now spelled smb_td_intr.
Noticed by:	phk
Pointy hat to:	jeffr
2003-04-01 09:23:24 +00:00
jeff
3c4f704ebe - p will be unused in cursig() if INVARIANTS is not defined. Access it
through td->td_proc to avoid the unused variable.

Spotted by:	Maxim Konovalov <maxim@macomnet.ru>
2003-04-01 09:07:36 +00:00
phk
81a4ff8159 Don't include <sys/buf.h> needlessly. 2003-04-01 09:02:58 +00:00
phk
7c6db5e66d Fix KASSERT syntax error. 2003-04-01 08:57:28 +00:00
mdodd
e72fdee732 Implement support for RFC 3514 (The Security Flag in the IPv4 Header).
(See: ftp://ftp.rfc-editor.org/in-notes/rfc3514.txt)

This fulfills the host requirements for userland support by
way of the setsockopt() IP_EVIL_INTENT message.

There are three sysctl tunables provided to govern system behavior.

	net.inet.ip.rfc3514:

		Enables support for rfc3514.  As this is an
		Informational RFC and support is not yet widespread
		this option is disabled by default.

	net.inet.ip.hear_no_evil

		 If set the host will discard all received evil packets.

	net.inet.ip.speak_no_evil

		If set the host will discard all transmitted evil packets.

The IP statistics counter 'ips_evil' (available via 'netstat') provides
information on the number of 'evil' packets recieved.

For reference, the '-E' option to 'ping' has been provided to demonstrate
and test the implementation.
2003-04-01 08:21:44 +00:00
phk
0bafba46a2 Fix KASSERT syntax errors.
Please compile LINT before commiting.
2003-04-01 08:10:21 +00:00
phk
80780d2ba2 Remove the old config interface, the new OAM is sufficiently functional
now.
2003-04-01 07:33:56 +00:00
phk
85edc96041 Remove the old config interface now that the new OAM is functional. 2003-04-01 07:33:17 +00:00
jeff
e8890ccacd - Adjust the makefiles so we have a per architecture makefile. 2003-04-01 07:07:38 +00:00
jake
c40f0ee134 - Add a flags field to struct pcb. Use this to keep track of wether or
not the pcb has floating point registers saved in it.
- Implement get_mcontext and set_mcontext.
2003-04-01 04:58:50 +00:00
jeff
6d2a0afa7c - Spell SIGSETOR correctly. 2003-04-01 04:49:12 +00:00
jake
359cfe8501 - Don't allow tf_wstate to be set in set_regs.
- Clear FPRS_FEF in set_fpregs so the new registers will be reloaded.
2003-04-01 04:29:03 +00:00
jake
8e217044b1 Implement cpu_set_upcall. 2003-04-01 04:19:29 +00:00
jake
06240b6c81 - Rename pcb_fpstate to pcb_ufp (user floating point), and change it to
a simple array of 64 ints.
- Use a critical section when saving floating point state in cpu_fork
  instead of sched_lock.
2003-04-01 04:02:45 +00:00
jeff
16b13762b2 - Commit the forgotten libthr/sys bits. 2003-04-01 03:51:08 +00:00
jeff
08f648d4cd - Add libthr but don't hook it up to the regular build yet. This is an
adaptation of libc_r for the thr system call interface.  This is beta
   quality code.
2003-04-01 03:46:29 +00:00
jake
7bada9c1ac Rename pcb_fp to pcb_sp, so as to not be confused with floating point
state.
2003-04-01 03:05:46 +00:00
tjr
5c91df4e54 Specify the M_WAITOK flag explicitly in the MALLOC call to silence a
runtime warning ("Bad malloc flags: 0").
2003-04-01 02:47:09 +00:00
tjr
3bc3a08256 Give the M_WAITOK flag explicitly to the MALLOC call to silence a runtime
warning ("Bad malloc flags: 0").
2003-04-01 02:42:02 +00:00
jake
48ae97193a Implement casuptr. 2003-04-01 02:37:04 +00:00
jeff
c724e78c22 - Regen. 2003-04-01 02:34:21 +00:00
jeff
4f9ba753d8 - thr_exit() should no longer be called with Giant held. 2003-04-01 02:32:53 +00:00
jeff
d41c709cb3 - Mark the various thr syscalls as MP safe. Previously there was a bug if
this was not done since thr_exit() unwinds giant.
2003-04-01 02:32:07 +00:00
jeff
1b4d7b91ce - Borrow the KSE single threading code for exec and exit. We use the check
if (p->p_numthreads > 1) and not a flag because action is only necessary
   if there are other threads.  The rest of the system has no need to
   identify thr threaded processes.
 - In kern_thread.c use thr_exit1() instead of thread_exit() if P_THREADED
   is not set.
2003-04-01 01:26:20 +00:00
jeff
ddd8314458 - Regen for umtx. 2003-04-01 01:22:18 +00:00
jeff
5f8f1497c8 - Add thr and umtx system calls. 2003-04-01 01:15:56 +00:00
jeff
df35b7809f - Add the kern_umtx.c file to the build. 2003-04-01 01:13:29 +00:00
jeff
a7da772fc1 - Include umtx.h in files generated by makesyscalls.sh
- Add system calls for umtx.
2003-04-01 01:12:24 +00:00
jeff
e3addd2765 - Add an entry and a head for the queue of threads blocked on a umtx.
- Add a prototype for thr_exit1().
2003-04-01 01:11:22 +00:00
jeff
2921bb5e34 - Add an api for doing smp safe locks in userland.
- umtx_lock() is defined as an inline in umtx.h.  It tries to do an
   uncontested acquire of a lock which falls back to the _umtx_lock()
   system-call if that fails.
 - umtx_unlock() is also an inline which falls back to _umtx_unlock() if the
   uncontested unlock fails.
 - Locks are keyed off of the thr_id_t of the currently running thread which
   is currently just the pointer to the 'struct thread' in kernel.
 - _umtx_lock() uses the proc pointer to synchronize access to blocked thread
   queues which are stored in the first blocked thread.
2003-04-01 01:10:42 +00:00
jeff
919a0c8fa4 - We now have to include umtx.h and ucontext.h in the system call related
headers.
2003-04-01 00:35:12 +00:00
jeff
814bb99933 - Regen for thr related system calls. 2003-04-01 00:34:29 +00:00
jeff
5e69249b17 - Add the four thr related system calls. 2003-04-01 00:31:37 +00:00
jeff
0cd72ec7ee - Add kern_thr.c 2003-04-01 00:30:54 +00:00
jeff
a417418db4 - Add two files to support the thr threading interface.
- sys/thr.h contains the user space visible api that is intended only for
   use in threading library packages.
 - kern/kern_thr.c contains thr system calls and other thr specific code.
2003-04-01 00:30:30 +00:00
jeff
420a77ecd5 - Define a new md function 'casuptr'. This atomically compares and sets
a pointer that is in user space.  It will be used as the basic primitive
   for a kernel supported user space lock implementation.
 - Implement this function in x86's support.s
 - Provide stubs that return -1 in all other architectures.  Implementations
   will follow along shortly.

Reviewed by:	jake
2003-04-01 00:18:55 +00:00
jeff
56865cc549 - In npxgetregs() use the td argument to save the fpu state from and not
curthread.  Nothing currently depends on this behavior.
 - Clean up an extra newline.

Obtained from:	bde
2003-04-01 00:16:32 +00:00
jeff
23844ff023 - Add a placeholder for sigwait 2003-03-31 23:36:40 +00:00
jeff
71a412bee0 - Regen for the sig*wait* system calls. 2003-03-31 23:33:45 +00:00
jeff
e059422042 - According to mike@FreeBSD.org SIGTHR should be hiden by
#ifdef __BSD_VISIBLE
2003-03-31 23:31:50 +00:00
jeff
b23496dd54 - Define sigwait, sigtimedwait, and sigwaitinfo in terms of
kern_sigtimedwait() which is capable of supporting all of their semantics.
 - These should be POSIX compliant but more careful review is needed before
   we announce this.
2003-03-31 23:30:41 +00:00
thomas
7e134f95f3 Revert change 1.201 (removing mapping of VAPPEND to VWRITE).
Instead, use the generic vaccess() operation to determine whether
an operation is permitted. This avoids embedding knowledge on
vnode permission bits such as VAPPEND in the NFS client.

PR:		kern/46515
vaccess() patch submitted by:	"Peter Edwards" <pmedwards@eircom.net>
Approved by:	tjr, roberto (mentor)
2003-03-31 23:26:10 +00:00
jeff
fb111f29cd - Catch up with kernel signal changes. 2003-03-31 22:57:55 +00:00
jeff
327373a2cb - The siglist in the proc holds signals that were blocked by all threads
when they were delivered.  In signotify() check to see if we have
   unblocked any of those signals and post them to the thread.
 - Use td_sigmask instead of p_sigmask in all cases.
 - In sigpending return both signals pending on the thread and proc.
 - Define a function, sigtd(), that finds the appropriate thread to deliver
   the signal to if psignal() has been called instead of tdsignal().
 - Define a function, tdsignal(), that delivers a signal to a specific thread
   or if that thread has the signal blocked it may deliver it to the process
   where it will wait for a thread to unblock it.
 - Since we are delivering signals to a specific thread we do not need to
   abort the sleep of all threads.
 - Rename the old tdsignal() to tdsigwakeup().
 - Save and restore the old signal mask to and from the thread.
2003-03-31 22:57:01 +00:00
jeff
bc98ededbf - Move the NEEDSIGCHK and OLDMASK flags from proc to thread.
- Move the signal mask to the thread.
 - Adjust a few comments.
2003-03-31 22:51:19 +00:00