Commit Graph

52940 Commits

Author SHA1 Message Date
John Baldwin
36412d79b4 - Make the mutex code almost completely machine independent. This greatly
reducues the maintenance load for the mutex code.  The only MD portions
  of the mutex code are in machine/mutex.h now, which include the assembly
  macros for handling mutexes as well as optionally overriding the mutex
  micro-operations.  For example, we use optimized micro-ops on the x86
  platform #ifndef I386_CPU.
- Change the behavior of the SMP_DEBUG kernel option.  In the new code,
  mtx_assert() only depends on INVARIANTS, allowing other kernel developers
  to have working mutex assertiions without having to include all of the
  mutex debugging code.  The SMP_DEBUG kernel option has been renamed to
  MUTEX_DEBUG and now just controls extra mutex debugging code.
- Abolish the ugly mtx_f hack.  Instead, we dynamically allocate
  seperate mtx_debug structures on the fly in mtx_init, except for mutexes
  that are initiated very early in the boot process.   These mutexes
  are declared using a special MUTEX_DECLARE() macro, and use a new
  flag MTX_COLD when calling mtx_init.  This is still somewhat hackish,
  but it is less evil than the mtx_f filler struct, and the mtx struct is
  now the same size with and without mutex debugging code.
- Add some micro-micro-operation macros for doing the actual atomic
  operations on the mutex mtx_lock field to make it easier for other archs
  to override/optimize mutex ops if needed.  These new tiny ops also clean
  up the code in some places by replacing long atomic operation function
  calls that spanned 2-3 lines with a short 1-line macro call.
- Don't call mi_switch() from mtx_enter_hard() when we block while trying
  to obtain a sleep mutex.  Calling mi_switch() would bogusly release
  Giant before switching to the next process.  Instead, inline most of the
  code from mi_switch() in the mtx_enter_hard() function.  Note that when
  we finally kill Giant we can back this out and go back to calling
  mi_switch().
2000-10-20 07:26:37 +00:00
John Baldwin
ccbdd9ee59 - Expand the set of atomic operations to optionally include memory barriers
in most of the atomic operations.  Now for these operations, you can
  use the normal atomic operation, you can use the operation with a read
  barrier, or you can use the operation with a write barrier.  The function
  names follow the same semantics used in the ia64 instruction set.  An
  atomic operation with a read barrier has the extra suffix 'acq', due to
  it having "acquire" semantics.  An atomic operation with a write barrier
  has the extra suffix 'rel'.  These suffixes are inserted between the
  name of the operation to perform and the typename.  For example, the
  atomic_add_int() function now has 3 variants:
  - atomic_add_int() - this is the same as the previous function
  - atomic_add_acq_int() - this function combines the add operation with a
    read memory barrier
  - atomic_add_rel_int() - this function combines the add operation with a
    write memory barrier
- Add 'ptr' to the list of types that we can perform atomic operations
  on.  This allows one to do atomic operations on uintptr_t's.  This is
  useful in the mutex code, for example, because the actual mutex lock is
  a pointer.
- Add two new operations for doing loads and stores with memory barriers.
  The new load operations use a read barrier before the load, and the
  new store operations use a write barrier after the load.  For example,
  atomic_load_acq_int() will atomically load an integer as well as
  enforcing a read barrier.
2000-10-20 07:00:48 +00:00
John Baldwin
3f4809dd0d Axe the barrier_{read,write,rw}() helper functions as this method of
doing memory barriers doesn't really scale well for the ia64.  Also,
memory barriers are more a property of the CPU than bus space.

Requested by:	dfr
2000-10-20 06:45:48 +00:00
Bruce A. Mah
69a71301db Add -L option to limit the package status characters the user *doesn't*
want to see.

Submitted by:	Doug Barton <DougB@gorean.org>
2000-10-20 06:16:18 +00:00
Bruce A. Mah
65ea861a3e Make pkg_version -c -l work.
PR:		bin/19019
Submitted by:	Stijn Hoop <stijn@win.tue.nl>
2000-10-20 06:00:28 +00:00
Mike Pritchard
18157703d5 Remove bogus xref.
PR:		docs/22125
Submitted by:	Keith Jones <keith@sse0691.bri.hp.com>
2000-10-20 05:59:51 +00:00
KATO Takenori
1ae7243298 Convert the type of bus_space_handle_t of pc98 from structure into
pointer to structure.

Reviewed by:	nyan
2000-10-20 02:42:06 +00:00
Nick Hibma
a6bf18b222 Add the quirk entry for the Sony Memory Stick Adapter.
Add NO_SYNQ_CACHE to the Sony DSC camera entry.
2000-10-20 00:53:30 +00:00
Nick Hibma
fd947b09e2 Kill the correct dhclient on detach of the ethernet device.
Submitted by:	Josef Karthauser <joe@freebsd.org>
Submitted by:	Chris Dillon <cdillon@wolves.k12.mo.us>
2000-10-20 00:42:05 +00:00
Nick Hibma
64b78d815a Bugfix: The data is not stored only in the first cblock, calculate the
length of the data properly. This should be moved into a tty_subr
function.

Also, disanle the setting of the CDC_CM_OVER_DATA flag. It breaks some
modems. I don't think that ther actually is a modem that needs this.

Submitted by:		Brad Karp <bkarp@ICSI.Berkeley.EDU>
2000-10-20 00:35:52 +00:00
Josef Karthauser
fb2a416f3b Fixup a couple of ether card entries to use the new pccard_ether
calling convention.
2000-10-20 00:31:48 +00:00
Nick Hibma
3cf950d1c5 Regen. 2000-10-20 00:30:01 +00:00
Nick Hibma
9258cec045 Add the Sony MSC Memory Stick Adaptor (in the Sony PCS laptops) 2000-10-20 00:29:21 +00:00
Nick Hibma
40a7a362c7 Correct the text on RETURN VALUES. 2000-10-20 00:27:56 +00:00
Peter Wemm
9b57bb4ef5 execsw_set hasn't been used for a while and does not exist. 2000-10-20 00:26:33 +00:00
Josef Karthauser
5da9f8fa97 Augment the 'ifaddr' structure with a 'struct if_data' to keep
statistics on a per network address basis.

Teach the IPv4 and IPv6 input/output routines to log packets/bytes
against the network address connected to the flow.

Teach netstat to display the per-address stats for IP protocols
when 'netstat -i' is evoked, instead of displaying the per-interface
stats.
2000-10-19 23:15:54 +00:00
Warner Losh
7ae6b1ebd2 o Fix memory leak in ivars
o Change name of bus
o Change the panic on resource allocation failure to just a message.  We'll
  work out why this fails later in the pcic/pccbb code merge.
2000-10-19 22:36:41 +00:00
Gregory Neil Shapiro
a9f042fd92 Make note of merged changes. 2000-10-19 21:54:37 +00:00
Dag-Erling Smørgrav
a0c6ec97c9 Understand the difference between an empty file and a non-existent file.
This has been sitting in my tree for ages...
2000-10-19 21:05:59 +00:00
Doug Rabson
4e94026a72 Don't force bootverbose anymore. 2000-10-19 20:39:48 +00:00
Doug Rabson
45b56a5505 Decrease the number of ticks between clock interrupts by a factor of ten
to place more pressure on the exception handling code.
2000-10-19 20:37:28 +00:00
Doug Rabson
2a4f0b6fd4 * Disable interrupts when restoring a trapframe.
* Make sure we reset ar.k6 (used to hold the kernel stack pointer when
  we are returning to user mode after a syscall.
2000-10-19 20:36:31 +00:00
John Baldwin
d8f831678d Reparent a kernel thread to init during kthread_exit() so that the zombie
can be reaped.
2000-10-19 19:53:44 +00:00
John Baldwin
bd788f7aca - Move the prototype for proc_reparent from sys/ptrace.h to sys/proc.h
- Fix the sorting of function prototypes in sys/proc.h
2000-10-19 18:55:22 +00:00
John Baldwin
0cfbef3288 Quiet a silly warning.
Pointy-hat to:	ps
2000-10-19 18:52:20 +00:00
Josef Karthauser
c5bb0e9394 Scripts should contain a comment block describing what the script does. 2000-10-19 18:18:35 +00:00
Ruslan Ermilov
f136389613 A failure to allocate memory for auxiliary TCP data is now fatal.
This fixes a null pointer dereference problem that is unlikely to
happen in normal circumstances.
2000-10-19 10:44:44 +00:00
Jonathan Chen
feb78939ee NEWCARD/Cardbus -
This commit adds support for Xircom X3201 based cardbus cards.
Support for the TDK 78Q2120 MII is also added.
IBM Etherjet, Intel and Xircom cards uses these chips.

Note that as a result of this commit, some Intel/DEC 21143 based cardbus
cards will also attach, but not get link.  That is being looked at.
2000-10-19 08:34:32 +00:00
John Baldwin
cbbee1e4e6 Move init_clocks earlier in the system startup so that hardclock and clock
interrupts are started before the device probe.  This allows interrupt
threads to run during the device probe among other things.
2000-10-19 08:16:34 +00:00
Mike Smith
c7e95d0abe Write the routed interrupt back to PCI configuration space. 2000-10-19 08:07:23 +00:00
Mike Smith
9d55863400 Call the BIOS to route the selected interrupt. Correctly calculate the
interrupt from the PCI routing table (ffs returns 1 for the rightmost
bit, not 0).
2000-10-19 08:06:50 +00:00
Mike Smith
4bbbd5e215 Add PCI BIOS function codes for IRQ routing fetch and route. 2000-10-19 08:02:46 +00:00
Robert Watson
47460a23a0 o Introduce new VOP_ACCESS() flag VADMIN, allowing file systems to perform
"administrative" authorization checks.  In most cases, the VADMIN test
  checks to make sure the credential effective uid is the same as the file
  owner.
o Modify vaccess() to set VADMIN as an available right if the uid is
  appropriate.
o Modify references to uid-based access control operations such that they
  now always invoke VOP_ACCESS() instead of using hard-coded policy checks.
o This allows alternative UFS policies to be implemented by replacing only
  ufs_access() (such as mandatory system policies).
o VOP_ACCESS() requires the caller to hold an exclusive vnode lock on the
  vnode: I believe that new invocations of VOP_ACCESS() are always called
  with the lock held.
o Some direct checks of the uid remain, largely associated with the QUOTA
  and SUIDDIR code.

Reviewed by:	eivind
Obtained from:	TrustedBSD Project
2000-10-19 07:53:59 +00:00
John Baldwin
dc13e6dfbb Axe the idle_event eventhandler, and add a MD cpu_idle function used
for things such as halting CPU's, idling CPU's, etc.

Discussed with:	msmith
2000-10-19 07:47:16 +00:00
Roger Hardiman
de2c745ce3 Add Daniel's name and fix release data 2000-10-19 07:34:18 +00:00
Roger Hardiman
97e1cf9c1b Update to driver 2.17
Fixes bugs in devfs when unloading and reloading
Syncs with NetBSD changes

Submitted by:	Alexander Langer <alex@big.endian.de>
Submitted by:	Thomas Klausner <wiz@netbsd.org>
Submitted by:	Daniel O'Connor" <doconnor@gsoft.com.au>
2000-10-19 07:33:28 +00:00
Bruce A. Mah
c0fe4ab249 ObCommit from BSDCon: Update SMPng note and add an entry for devfs,
which hopefully reflect something of what grog and phk presented in their
talks.
2000-10-18 23:45:31 +00:00
Josef Karthauser
924ea87683 Make these PICOBSD's compile... well, almost. Still some work to
do on PPP (atm problems.)
2000-10-18 22:02:33 +00:00
Josef Karthauser
22bbcf38a7 Reference Larry Wall's perlstyle man page, and recommend it's use where
entries in this guide don't override it.

Requested by:	markm

Comment on tabulation style.
2000-10-18 21:57:37 +00:00
Dag-Erling Smørgrav
c1ff8324f0 Trim index lines down to 79 characters, not 80.
Approved by:	jkh
2000-10-18 20:16:26 +00:00
Søren Schmidt
550abec2a0 Minor changes to the ATA RAID support code, remove some verbosity
and put some under bootverbose..
2000-10-18 18:49:42 +00:00
Josef Karthauser
e6e692447c Use 'unless' instead of 'if (! ... )' where it improves readability. 2000-10-18 18:01:35 +00:00
Peter Wemm
5d391f75d6 EVENTHANDLER_INVOKE() takes two arguments. 2000-10-18 17:56:06 +00:00
Josef Karthauser
32d219825c Opening braces should be at the end of the controlling line. Else
and elsif belong on the same line as the closing brace for the
previous if or elsif block.

Suggested by:	des
2000-10-18 17:48:10 +00:00
Peter Wemm
df58517066 This didn't compile. Fix typo: s/rmang_get_start/rman_get_start/ 2000-10-18 17:45:29 +00:00
Josef Karthauser
a2a307a14d Contract a statement that's too verbose. 2000-10-18 17:34:43 +00:00
Josef Karthauser
a669270dee There are enough examples of using 'my $var = ...' definitions, so remove
one.
2000-10-18 17:32:21 +00:00
Josef Karthauser
a4d70fdb47 All variables should be commented.
Local variables should be separated from function arguments by a
blank line.

Suggested by:	des
2000-10-18 17:25:59 +00:00
Josef Karthauser
ab6f5f0d9c Make subroutine prototypes mandatory.
The main code should be wrapped in a MAIN:{ ... } declaration.

Suggested by:	des
2000-10-18 17:21:54 +00:00
Josef Karthauser
d17bce98be Fix the places that I missed last commit: 'vars' not 'var'. 2000-10-18 17:12:07 +00:00