]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
21 years agoRemove an extraneous space, reported by `groff -z`.
hmp [Fri, 16 May 2003 19:55:52 +0000 (19:55 +0000)]
Remove an extraneous space, reported by `groff -z`.

Approved by: des (mentor), re (scottl)

21 years agoRemove a bogus NOTES section. Move that content elsewhere.
hmp [Fri, 16 May 2003 19:54:20 +0000 (19:54 +0000)]
Remove a bogus NOTES section.  Move that content elsewhere.

Approved by: des (mentor), re (scottl)

21 years agoDetect that a vnode has been reclaimed while vflush() was waiting to lock
truckman [Fri, 16 May 2003 19:46:51 +0000 (19:46 +0000)]
Detect that a vnode has been reclaimed while vflush() was waiting to lock
the vnode and restart the loop.  Vflush() is vulnerable since it does not
hold a reference to the vnode and it holds no other locks while waiting
for the vnode lock.  The vnode will no longer be on the list when the
loop is restarted.

Approved by: re (rwatson)

21 years agoDocument the ``resource management'' routines in rman(9).
hmp [Fri, 16 May 2003 19:22:27 +0000 (19:22 +0000)]
Document the ``resource management'' routines in rman(9).

Submitted by: Bruce M. Simpson <bms@spc.org>
Reviewed by: mdodd

Approved by: des (mentor), re (scottl)

21 years ago- Use better terminology when describing mutex operations in msleep(9)'s
jhb [Fri, 16 May 2003 15:52:32 +0000 (15:52 +0000)]
- Use better terminology when describing mutex operations in msleep(9)'s
  description.
- Remove some bogus commas.
- Use the past tense when referring to the removal of the sleep() function
  since it happened quite a while ago and since the previous sentence in the
  paragraph already uses the past tense.

Approved by: re (rwatson)

21 years agoAdd a manual page for the CTASSERT(9) macro.
hmp [Fri, 16 May 2003 15:24:07 +0000 (15:24 +0000)]
Add a manual page for the CTASSERT(9) macro.

Approved by: des (mentor), re (scottl)

21 years agoDocument the VFCF_* flags.
hmp [Fri, 16 May 2003 15:21:20 +0000 (15:21 +0000)]
Document the VFCF_* flags.

Approved by: des (mentor), re (scottl)

21 years agoMore configuration tweaks. Rename %CONFIGS to %SETUPS to make the code
des [Fri, 16 May 2003 14:01:02 +0000 (14:01 +0000)]
More configuration tweaks.  Rename %CONFIGS to %SETUPS to make the code
clearer (particularly to someone who has read the man page).  Don't print
anything on stderr.

21 years agoRevision 1.49 broke snapshot building on older systems.
ru [Fri, 16 May 2003 13:59:12 +0000 (13:59 +0000)]
Revision 1.49 broke snapshot building on older systems.

Approved by: re (scottl)

21 years agoDocument the fact that tinderbox(1) accepts environment variables on the
des [Fri, 16 May 2003 13:58:20 +0000 (13:58 +0000)]
Document the fact that tinderbox(1) accepts environment variables on the
command line.  Also sort the xrefs correctly.

21 years agoMore oats for the beggars' horses.
des [Fri, 16 May 2003 12:11:13 +0000 (12:11 +0000)]
More oats for the beggars' horses.

21 years agoBe careful what you wish for - you might get it!
des [Fri, 16 May 2003 10:59:40 +0000 (10:59 +0000)]
Be careful what you wish for - you might get it!

Wished for by: ru

21 years agoAdd a 'patch' command rather than apply the patch unconditionally.
des [Fri, 16 May 2003 10:58:35 +0000 (10:58 +0000)]
Add a 'patch' command rather than apply the patch unconditionally.
Don't try to clean the release chroot, leave that to the release Makefile.

21 years agoDon't be so sensitive; /\bStop\b/ can occur in normal output and trick
des [Fri, 16 May 2003 10:55:49 +0000 (10:55 +0000)]
Don't be so sensitive; /\bStop\b/ can occur in normal output and trick
tbmaster into thinking the build failed.  Look for /^Stop in / instead.

21 years agoo In pmap_install, don't prevent switching the pmap if we're
marcel [Fri, 16 May 2003 07:57:44 +0000 (07:57 +0000)]
o  In pmap_install, don't prevent switching the pmap if we're
   switching to kernel_pmap. The pmap is not special enough.
o  Clear the active bit on the pmap we're switching out.
o  Fix some nearby style(9) bugs.

Approved by: re@

21 years agoOverhaul the reporting code, making sender, recipient and subject fully
des [Fri, 16 May 2003 07:54:47 +0000 (07:54 +0000)]
Overhaul the reporting code, making sender, recipient and subject fully
configurable.

Add support for tinderbox.pl's --patch.

-STABLE releases won't build with NOPERL (kernel builds use Perl).

21 years agoAdd support for local patches (which are also passed on to make release)
des [Fri, 16 May 2003 07:52:38 +0000 (07:52 +0000)]
Add support for local patches (which are also passed on to make release)

--verbose was a little too verbose, especially while cleaning the sandbox.

21 years agoUse vm_object_deallocate(), not vm_pager_deallocate(), to destroy a
alc [Fri, 16 May 2003 07:28:27 +0000 (07:28 +0000)]
Use vm_object_deallocate(), not vm_pager_deallocate(), to destroy a
vm object.  (vm_pager_deallocate() does not, in fact, destroy a vm object.)

Approved by: re (scottl)
Reviewed by: phk

21 years agoIndent a comment. This makes 1.100.
marcel [Fri, 16 May 2003 07:05:08 +0000 (07:05 +0000)]
Indent a comment. This makes 1.100.

Still approved by: re@ (blanket)

21 years agoTurn pmap_growkernel() into a critical section. While here, initialize
marcel [Fri, 16 May 2003 07:03:15 +0000 (07:03 +0000)]
Turn pmap_growkernel() into a critical section. While here, initialize
kernel_vm_end in pmap_bootstrap. Don't delay the initialization until
we need to grow the kernel VM space. This BTW happens twice before
we enter either single- or multi-user mode. Don't adjust kernel_vm_end
while growing based on whether the KPT contains a non-NULL entry. We
trust kernel_vm_end to be correct and we make sure it's still correct
after growing.
Define virtual_avail and virtual_end in terms of VM_MIN_KERNEL_ADDRESS
and VM_MAX_KERNEL_ADDRESS (resp). Don't hardcode region knowledge.

21 years agoRevamp the RID allocation code:
marcel [Fri, 16 May 2003 06:40:40 +0000 (06:40 +0000)]
Revamp the RID allocation code:
o  Limit the size of the region ID map to 64KB. This gives a bitmap
   that is large enough to keep track of 2^19 numbers. The minimal map
   size is 32KB. The reason we limit the map size is that processor
   models may have implemented a 24-bit region ID, which would give
   a 2MB bitmap while the maximum number of allocations is always
   less than PID_MAX*5, which is less than 2^19.
o  Allocate all region IDs up-front. The slight downside of reserving
   more RIDs then a process needs (3 for ia64 native and 1 for ia32)
   is preferable over the call to pmap_ensure_rid() where RIDs are
   allocated on demand. On SMP systems this may lead to a race
   condition.
o  When allocating a region ID, don't use arc4random(). We're not
   interested in randomness or uniform distribution across the
   spectrum. We only need uniqueness. Random numbers may easily
   collide when the number of allocated RIDs is high, creating a
   possibly unbounded retry rate.

21 years agoMove the conditional definition of KSTACK_MAX_PAGES up ahead where
marcel [Fri, 16 May 2003 06:17:34 +0000 (06:17 +0000)]
Move the conditional definition of KSTACK_MAX_PAGES up ahead where
it's more visible.

Approved by: re@ (blanket)

21 years agoSync the linker script with the one used by default for userland. Since
marcel [Fri, 16 May 2003 06:03:45 +0000 (06:03 +0000)]
Sync the linker script with the one used by default for userland. Since
ia64 only uses relocations with addend, remove the sections specific to
non-addend relocations (.rel.*). Also remove C++ specific sections.

Approved by: re@ (blanket)

21 years agoAdd variables for missing network drivers.
murray [Fri, 16 May 2003 04:31:00 +0000 (04:31 +0000)]
Add variables for missing network drivers.

PR: kern/51911
Submitted by: David Yeske <dyeske@yahoo.com>
Approved by: re

21 years agoAdd E-Tech ISA PnP modem ID.
murray [Fri, 16 May 2003 04:04:04 +0000 (04:04 +0000)]
Add E-Tech ISA PnP modem ID.

PR: kern/36692
Submitted by: Theo van Klaveren <t.vanklaveren@student.utwente.nl>
Approved by: re (murray)
MFC After: 3 days

21 years agoAdd French dvorak-like keymap for syscons.
murray [Fri, 16 May 2003 03:46:53 +0000 (03:46 +0000)]
Add French dvorak-like keymap for syscons.

PR: conf/50732
Submitted by: Frederic PRACA <frederic.praca@freebsd-fr.org>
Approved by: re

21 years agoFix the M and < keys on Belgian keyboards.
murray [Fri, 16 May 2003 03:37:52 +0000 (03:37 +0000)]
Fix the M and < keys on Belgian keyboards.

PR: conf/30341, i386/48398
Submitted by: Chris Pockele <chrisp@belgacom.net>
Approved by: re

21 years agoFix < >, { } and [ ] keys.
murray [Fri, 16 May 2003 03:34:23 +0000 (03:34 +0000)]
Fix < >, { } and [ ] keys.

PR: conf/47556
Approved by: re (murray)

21 years agoRun $S/kern/genassym.sh with the correct NM.
obrien [Fri, 16 May 2003 02:27:17 +0000 (02:27 +0000)]
Run $S/kern/genassym.sh with the correct NM.

Approved by: re(blanket)

21 years agoCatch up with the renaming of the "union" filesystem to "unionfs".
tjr [Fri, 16 May 2003 02:15:07 +0000 (02:15 +0000)]
Catch up with the renaming of the "union" filesystem to "unionfs".
Fixes a problem where directory entries could show up twice: once
on the top layer of the union stack, and once on the bottom layer.

Approved by: re (rwatson)

21 years agoFix long standing bug that prevents the PT_CONTINUE, PT_KILL and
obrien [Fri, 16 May 2003 01:34:23 +0000 (01:34 +0000)]
Fix long standing bug that prevents the PT_CONTINUE, PT_KILL and
PT_DETACH ptrace(2) requests from functioning as advertised in the
manual page.  As described in kern/35175, the PT_DETACH request will,
under certain circumstances, pass an unwanted signal on to the traced
process upan detaching from it.  The PT_CONTINUE request will
sometimes fail if you make it pass a signal that has "properties" that
differ from the properties of the signal that origionally caused the
traced process to be stopped.  Since PT_KILL is nothing than
PT_CONTINUE with SIGKILL, it is broken too.  In the PT_KILL case, this
leads to an unkillable process.

PR: 44011
Submitted by: Mark Kettenis <kettenis@chello.nl>
Approved by: re(jhb)

21 years agoAdd a tunable/sysctl "hw.fxp_noflow" which disables flow control support
rwatson [Fri, 16 May 2003 01:13:16 +0000 (01:13 +0000)]
Add a tunable/sysctl "hw.fxp_noflow" which disables flow control support
on if_fxp cards.  When flow control is enabled, if the operating system
doesn't acknowledge the packet buffer filling, the card will begin to
generate ethernet quench packets, but appears to get into a feedback
loop of some sort, hosing local switches.  This is a temporary workaround
for 5.1: the ability to configure flow control should probably be
exposed by some or another management interface on ethernet link layer
devices.

Approved by: re (bmah)
Reviewed by: mux

21 years agoIn cpu_fork(), initialize pcb_psl for the new process to PSL_KERNEL,
tmm [Fri, 16 May 2003 01:10:33 +0000 (01:10 +0000)]
In cpu_fork(), initialize pcb_psl for the new process to PSL_KERNEL,
instead of taking the (userland) eflags from the trap frame and masking
out PSL_I. There is no need to inherit any flags from the forking process;
the old method however can cause flags set in userland for the forking
process to be bogusly set in kernel mode when the newly forked process
runs for the first time (in particular PSL_T, which is set for userland
when the process is single-stepped; this would cause trace traps in
kernel mode).

Approved by: re (jhb)

21 years agoBring the kame(4) manual page closer to reality:
hmp [Fri, 16 May 2003 00:31:12 +0000 (00:31 +0000)]
Bring the kame(4) manual page closer to reality:

    - prefix(8) and gifconfig(8) are deprecated
    - dtcpc, dtcps were never imported (also removed from KAME CVS)
    - pim6dd, pim6sd and racoon are ports
    - inet6d does not exist on FreeBSD

PR: docs/51295
Submitted by: Simon L. Nielsen <simon@nitro.dk>

Content reviewed by: itojun
Approved by: des (mentor), re (bmah)

21 years agoVOP_PATHCONF() requires a vnode lock; this patch adds locking to
rwatson [Thu, 15 May 2003 21:13:08 +0000 (21:13 +0000)]
VOP_PATHCONF() requires a vnode lock; this patch adds locking to
fpathconf(). The lock is held for direct calls to VOP_PATHCONF() in
pathconf() already.

Approved by: re (jhb)
Pointed out by: DEBUG_VFS_LOCKS

21 years agoThis change grabs the vnode lock for NFS client vnodes when calling
rwatson [Thu, 15 May 2003 21:12:08 +0000 (21:12 +0000)]
This change grabs the vnode lock for NFS client vnodes when calling
VOP_SETATTR() or VOP_GETATTR(); without these locks (a) VFS_DEBUG_LOCKS
will panic, and (b) it may be possible to corrupt entries in the cached
vnode attributes in the nfsnode, since nfsnode attribute cache data is
also protected by the vnode lock.

Approved by: re (jhb)
Pointed out by: VFS_DEBUG_LOCKS

21 years agoJeff added locking assertions that the VV_ flags on vnodes were modified
rwatson [Thu, 15 May 2003 21:07:33 +0000 (21:07 +0000)]
Jeff added locking assertions that the VV_ flags on vnodes were modified
only while holding appropriate vnode locks.  This patch slides the lock
release for ufs_extattr_enable() to continue to hold the active vnode lock
on a backing file until after the flag change; it also acquires a vnode
lock when disabling an attribute and hence clearing a flag on the backing
vnode.  This permits VFS_DEBUG_LOCKS to run UFS1 extended attributes
without panicking, as well as preventing a potential race and vnode flag
problem.

Approved by: re (jhb)
Pointed out by: DEBUG_VFS_LOCKS

21 years agoExplicitly set the sandbox directory (it defaults to ~/tinderbox which is
des [Thu, 15 May 2003 20:33:33 +0000 (20:33 +0000)]
Explicitly set the sandbox directory (it defaults to ~/tinderbox which is
wrong when running a release tinderbox as root)

Use the setup's COMMENT field in the subject of the failure report, instead
of just "$branch tinderbox".

Tweak the test setups.

21 years ago'make release' should run from src/release, not src.
des [Thu, 15 May 2003 20:30:21 +0000 (20:30 +0000)]
'make release' should run from src/release, not src.

21 years agoMake the mb_alloc low-watermark sysctl-tunable read-only and make
bmilekic [Thu, 15 May 2003 19:05:28 +0000 (19:05 +0000)]
Make the mb_alloc low-watermark sysctl-tunable read-only and make
netstat(1) not display it for now because its effects are not yet
completely implemented and we're about to cut 5.2-RELEASE.
This is temporary.

Approved by: re (scottl, rwatson)

21 years agofix a cut-n-paste error.
julian [Thu, 15 May 2003 18:51:28 +0000 (18:51 +0000)]
fix a cut-n-paste error.
in the case where the bridge node was closed down but a timeout
still applied to it, the final reference to the node was freeing the private
data structure using the wrong malloc type.

Approved by: re@

21 years agoDo some cleanup with respect to condition variables. The implementation
mtm [Thu, 15 May 2003 18:17:13 +0000 (18:17 +0000)]
Do some cleanup with respect to condition variables. The implementation
of pthread_cond_timedwait() is moved into cond_wait_common().
Pthread_cond_wait() and pthread_cond_timedwait() are now wrappers around
this function. Previously, the former called the latter with the abstime
pointing to 0 time. This violated Posix semantics should an application
have reason to call it with that argument because instead or returning
immediately it would have waited indefinitely for the cv to be signaled.

Approved by: markm/mentor, re/blanket libthr
Reviewed by: jeff

21 years agoUse the installed world's idea of OSRELDATE rather than the kernel.
ru [Thu, 15 May 2003 17:59:32 +0000 (17:59 +0000)]
Use the installed world's idea of OSRELDATE rather than the kernel.
This was the initial intent anyway, and it became clear that it is
really necessary to treat it this way, as many people happen to run
with kernel newer than the installed world.

Submitted by: imp, ru
Approved by: re (scottl)

21 years agoo Make the setting/checking of cancel state atomic with
mtm [Thu, 15 May 2003 17:56:18 +0000 (17:56 +0000)]
o Make the setting/checking of cancel state atomic with
  respect to other threads and signal handlers by moving to
  the _thread_critical_enter/exit functions.

o Introduce an static function, testcancel(), that is used by
  the other functions in this module. This allows it to make
  locking assumptions that the top-level functions can't.

o Rework the code flow a bit to reduce indentation levels.

Approved by: markm/mentor, re/blanket libthr
Reviewed by: jeff

21 years agoGeneralize a quirk for Asahi Optical-based cameras (i.e. Pentax). It appears
njl [Thu, 15 May 2003 17:36:22 +0000 (17:36 +0000)]
Generalize a quirk for Asahi Optical-based cameras (i.e. Pentax).  It appears
all of the Optio series have the same problems.  It might be a better
approach eventually to add wildcard support to USB quirks.

PR: kern/50271, kern/46369
Approved by: re (rwatson)

21 years agoAdd a quirk for OTi USB flash key.
njl [Thu, 15 May 2003 17:35:35 +0000 (17:35 +0000)]
Add a quirk for OTi USB flash key.

PR: kern/51825
Approved by: re (rwatson)

21 years agoMiscellaneous fixes:
tmm [Thu, 15 May 2003 16:57:55 +0000 (16:57 +0000)]
Miscellaneous fixes:
- Fix compilation without GEM_DEBUG.
- Do not #define GEM_DEBUG by default; it adds overhead (due to bzero()ing
  RX space) and is not needed any more, since the driver is quite stable
  now.
- Fix watchdog timeouts when failing to load TX packets.
- Do not forcibly limit the number of descriptors used for a packet to
  GEM_NTXSEGS, by passing this number to bus_dma_tag_create(). There is
  no requirement for a limit any lower than the total number of
  available descriptors, and the present limit caused network problems
  due to mbuf chains requiring more descriptors.
  GEM_NTXSEGS is still used to estimate the interrupt window size, for
  which we just need an estimate.

Approved by: re (rwatson)

21 years agoOnly use a SIA/SYM media info block if no MII block is detected.
mbr [Thu, 15 May 2003 16:53:29 +0000 (16:53 +0000)]
Only use a SIA/SYM media info block if no MII block is detected.
The submitter of PR 32118 told me that this patch also fixes autoselecting
for znyx 4 port cards (10baseT, 100baseTX did work already).

PR: 32118
Reviewed by: imp
Approved by: rwatson (re)

21 years agoMake 'clean' and 'update' commands rather than options. Invoke 'update'
des [Thu, 15 May 2003 13:12:57 +0000 (13:12 +0000)]
Make 'clean' and 'update' commands rather than options.  Invoke 'update'
(but not 'clean') in all setups.  Bump tinderbox.pl version to 2.1, mostly
for the 'release' command added in the previous commit.

21 years agoMake the ENV configuration variable a hash rather than an array.
des [Thu, 15 May 2003 12:33:46 +0000 (12:33 +0000)]
Make the ENV configuration variable a hash rather than an array.

Build LINT on -STABLE now that tinderbox.pl knows how.  Also try to build
LINT on powerpc and amd64 (this is a formality as they don't have NOTES
so nothing will be built)

Add two setups for release testing, with plenty of NO* to speed things up.

If the config key was not specified on the command line, try to guess it
from the hostname.

21 years agoAdd a 'release' command which builds a release. It currently sets
des [Thu, 15 May 2003 12:26:55 +0000 (12:26 +0000)]
Add a 'release' command which builds a release.  It currently sets
NOCDROM, NODOC and NOPORTS to save time and space, but I may remove
those at a later date so we can use the results to populate a snapshot
server.

Document the --machine option.

Make $arch and $machine default to the correct values for the current
system.  This shouldn't make any difference unless you run the
tinderbox on a pc98 machine, since for all other platforms, $arch and
$machine are the same.

Only set kernel-related variables if actually building a kernel or a
release.

Be paranoid and cd to the correct directory in each stage so we're
sure we invoke make(1) in the right place.

To support building LINT on -STABLE, don't try to 'make LINT' unless
NOTES exists, but build LINT if the config file exists even if there
is no NOTES.

21 years agouse 5.006_001 (for new open() syntax)
des [Thu, 15 May 2003 12:17:02 +0000 (12:17 +0000)]
use 5.006_001 (for new open() syntax)

21 years agoAdd a Makefile for the web bits.
des [Thu, 15 May 2003 10:48:50 +0000 (10:48 +0000)]
Add a Makefile for the web bits.

21 years agoUntabify string literals.
des [Thu, 15 May 2003 08:45:22 +0000 (08:45 +0000)]
Untabify string literals.

21 years agoDon't show platforms for which we have no logs.
des [Thu, 15 May 2003 08:44:18 +0000 (08:44 +0000)]
Don't show platforms for which we have no logs.

21 years agoCSS uses C-style comments, not C++-style.
des [Thu, 15 May 2003 08:39:00 +0000 (08:39 +0000)]
CSS uses C-style comments, not C++-style.

21 years agoThese are the sources for the tinderbox summary page.
des [Thu, 15 May 2003 08:36:26 +0000 (08:36 +0000)]
These are the sources for the tinderbox summary page.

21 years agoThis file creates register sets based on the runtime specification.
marcel [Thu, 15 May 2003 08:36:03 +0000 (08:36 +0000)]
This file creates register sets based on the runtime specification.
The advantage of using register sets is that you don't focus on each
register seperately, but instead instroduce a level of abstraction.
This reduces the chance of errors, and also simplifies the code.
The register sers form the basis of everything register.
The sets in this file are:

struct _special
contains all of the control related registers, such as instruction
pointer and stack pointer. It also contains interrupt specific registers
like the faulting address. The set is roughly split in 3 groups. The
first contains the registers that define a context or thread. This is
the only group that the kernel needs to switch threads.  The second group
contains registers needed in addition to the first group needed to switch
userland threads. This group contains the thread pointer and the FP control
register. The third group contains those registers we need for execption
handling and are used on top of the first two groups.

struct _callee_saved, struct _callee_saved_fp
These sets contain the preserved registers, including the NaT after
spilling. The general registers (including branch registers) are
seperated from the FP registers for ptrace(2).

struct _caller_saved, struct _caller_saved_fp
These sets contain the scratch registers based on SDM 2.1, This means that
both ar.csd and ar.ccd are included here, even though they contain ia32
segment register descriptions. We keep seperate NaT bits for scratch and
preserved registers, because they are never saved/restored at the same
time.

struct _high_fp
The upper 96 FP registers that can be enabled/disabled seperately on
the CPU from the lower 32 FP registers. Due to the size of this set,
we treat them specially, even though they are defined as scratch
registers.

CVS ----------------------------------------------------------------------

21 years agoThis file contains elementary context related functions used to
marcel [Thu, 15 May 2003 08:08:32 +0000 (08:08 +0000)]
This file contains elementary context related functions used to
save and restore "sets" of registers in various places.
The restorectx and swapctx functions are used by cpu_switch()
and deal with the special registers, as well as the preserved
registers.
The *callee_saved* functions are used to save and restore the
preserved registers (integer and floating-point). They are
useful for signal delivery and ptrace support.
The save_high_fp and restore_high_fp functions are used to
"load" and "unload" to and from the CPU as part of lazy context
switching.
The ia32 specific context functions have been kept with the ia32
code.

Approved by: re@ (blanket)

21 years agoThis file contains the code that implements the syscall path based
marcel [Thu, 15 May 2003 07:51:22 +0000 (07:51 +0000)]
This file contains the code that implements the syscall path based
on the epc instruction. The epc instruction, given the permissions
of the page in which the epc is located, allows the privilege level
to be increased with little or no overhead. The previous privilege
level is recorded in the current frame marker and is restored by
a regular (function) return.
Since the epc instruction has to live in a page with non-standard
properties, we hardwire a "gateway" page in the address space. The
address of the gateway page is exported to userland in ar.k7. This
allows us to rewire the page without breaking the ABI.
The syscall stubs in libc are regular function calls that slightly
differ from the normal runtime. The difference is mostly to simplify
the stubs themselves by by moving some of the logic to the kernel.
The libc stubs call into the gateway page (offset 0), from where the
kernel trampolines to the code that sets up a minimal trapframe and
arranges to execute from the kernel stack.
The way back is basicly the same. The kernel returns to the gateway
page, whereby privilege is dropped, and jumps back to the syscall
stub.
Only the special registers are saved in the trapframe. None of the
scratch registers are preserved and since the kernel follows the
same runtime model, none of the preserved registers are saved.
Future enhancements can include the implementation of lightweight
syscalls, where kernel functions are performed without setting up
a trapframe. Good candidates are the *context syscalls for example.

Now that there's a gateway page from which code can be executed in
a non-privileged context, we also have the ideal place to put the
signal trampolines. By moving the signal trampolines from the user
stack to the gateway page, we open up the doors to unexecutable
stacks. The gateway page contains signal trampolines for both the
"legacy" break-based syscall code and the new and improved epc-
based syscall code.

Approved: re@ (blanket)

21 years agoInitialize logical_cpus_mask when the logical CPUs are enumerated in
alc [Thu, 15 May 2003 05:12:24 +0000 (05:12 +0000)]
Initialize logical_cpus_mask when the logical CPUs are enumerated in
the mptable.  (Previously, logical_cpus_mask was only initialized if
the hyperthreading fixup was executed.)

Approved by: re (jhb)
Reviewed by: ps

21 years agoThis commit was generated by cvs2svn to compensate for changes in r115013,
marcel [Thu, 15 May 2003 05:04:44 +0000 (05:04 +0000)]
This commit was generated by cvs2svn to compensate for changes in r115013,
which included commits to RCS files with non-trunk default branches.

21 years agoThis is beta4 of libuwx; an ia64 stack unwinder. This code is made
marcel [Thu, 15 May 2003 05:04:44 +0000 (05:04 +0000)]
This is beta4 of libuwx; an ia64 stack unwinder. This code is made
available by Hewlett-Packard under the MIT license. The unwinder is
small, clean and fast and needed little adaptation for use in the
kernel.

This import has embedded in it the changes needed to make it build
in a kernel environment.

To optimize the common case, the kernel will minimize the number
of registers saved by not saving the preserved registers. In case
access to preserved registers is needed (signal handling, ptrace)
the kernel will unwind to the context of the syscall or exception.
For this we need an unwinder.

Approved by: re (blanket)

21 years agoWhen getting back an NLM DENIED response for a requested lock from the
rwatson [Thu, 15 May 2003 03:19:30 +0000 (03:19 +0000)]
When getting back an NLM DENIED response for a requested lock from the
server, map it to EAGAIN locally rather than EACCES.  The NLM spec
indicates the DENIED corresponds to lock contention, not a permission
failure.  This fixes O_EXLOCK/O_SHLOCK with O_NONBLOCK, which would
previously give a permission error, which in turn fixes things
like mailq(8) and lockf(1) over NFS.

Approved by: scottl (re)
Reviewed by: truckman, Andrew P Lentvorski, Jr. <bsder@allcaps.org>
Idea from: truckman

21 years agoAllow zero or more actions in an action list, rather than requiring
imp [Thu, 15 May 2003 02:23:32 +0000 (02:23 +0000)]
Allow zero or more actions in an action list, rather than requiring
one or more actions in the list.  This makes constructs like:

attach 10 {
// echo "Driver $device_name attached"
};

to be accepted by the parser.  It will be treated as if the user had
entered:

// attach 10 {
// echo "Driver $device_name attached"
// };

(eg totally ignored).

Approved by: re@ (rwatson)

21 years agoClear up that COMPAT_43 may not do the same thing on every architecture
jmallett [Thu, 15 May 2003 02:10:30 +0000 (02:10 +0000)]
Clear up that COMPAT_43 may not do the same thing on every architecture
and clear up that COMPAT_SUNOS is similarly MI, and does something
relatively similar.

Approved by: re/rwatson

21 years agoFix typo in rev 1.69. Also clarify a line.
obrien [Thu, 15 May 2003 01:28:39 +0000 (01:28 +0000)]
Fix typo in rev 1.69.  Also clarify a line.

Submitted by: ru

21 years agoCollect the nastiness for preserving the kernel MSR_GSBASE around the
peter [Thu, 15 May 2003 00:23:40 +0000 (00:23 +0000)]
Collect the nastiness for preserving the kernel MSR_GSBASE around the
load_gs() calls into a single place that is less likely to go wrong.

Eliminate the per-process context switching of MSR_GSBASE, because it
should be constant for a single cpu.  Instead, save/restore it during
the loading of the new %gs selector for the new process.

Approved by: re (amd64/* blanket)

21 years agoUse compile time constants for things like PTmap[] etc because they're
peter [Thu, 15 May 2003 00:20:17 +0000 (00:20 +0000)]
Use compile time constants for things like PTmap[] etc because they're
about to move outside of the +/- 2GB range

Suggested by: jake
Approved by: re (amd64/* blanket)

21 years agoAvoid registering for a lock on the server in the event the NFS client
rwatson [Wed, 14 May 2003 21:16:33 +0000 (21:16 +0000)]
Avoid registering for a lock on the server in the event the NFS client
has requested the lock in a non-blocking form, instead returning an
immediate failure.  This appears to help reduce one of my "locks get
lost" symptoms involving lockf(1), which attempts a non-blocking lock
attempt before actually blocking on the lock.  At this point the client
still gets back EACCES, which is an issue we're still working.

Approved by: re (scottl)
Submitted by: Andrew P. Lentvorski, Jr. <bsder@allcaps.org>

21 years agoGCC 3.3 complains about anonymous structures in unions, so
mux [Wed, 14 May 2003 20:33:41 +0000 (20:33 +0000)]
GCC 3.3 complains about anonymous structures in unions, so
give the fxp_ipcb structure a name in the fxp_rfa structure.

Submitted by: peter
Approved by: re (jhb)

21 years agoWhen giving examples of how to use extattrctl(8) to configure UFS1
rwatson [Wed, 14 May 2003 20:31:06 +0000 (20:31 +0000)]
When giving examples of how to use extattrctl(8) to configure UFS1
attributes, use the current convention for attribute directory names
so that UFS_EXTATTR_AUTOSTART will work with them.

Approved by: re (scottl)

21 years agoFix a typo that broke the pc98 kernel build.
jhb [Wed, 14 May 2003 20:21:42 +0000 (20:21 +0000)]
Fix a typo that broke the pc98 kernel build.

Reported by: des@'s tinderbox
Pointy hat to: jhb
Approved by: re (blanket/scottl)

21 years agoAccording to revision 1.6 of iir.c, the latest import should have resolved
trhodes [Wed, 14 May 2003 17:53:40 +0000 (17:53 +0000)]
According to revision 1.6 of iir.c, the latest import should have resolved
the issues listed in BUGS.  Remove the BUGS section.

Discussed with: bmah (awhile ago)
Approved by: re (blanket)

21 years agomdoc(7) police: fix more breakages from rev. 1.69.
ru [Wed, 14 May 2003 16:22:16 +0000 (16:22 +0000)]
mdoc(7) police: fix more breakages from rev. 1.69.

21 years agoRemove the Firewire driver from the install kernel.
obrien [Wed, 14 May 2003 16:01:02 +0000 (16:01 +0000)]
Remove the Firewire driver from the install kernel.

21 years agoPush tl(3) [TI ThunderLAN] from the mfsroot to the driver floppy.
obrien [Wed, 14 May 2003 15:38:44 +0000 (15:38 +0000)]
Push tl(3) [TI ThunderLAN] from the mfsroot to the driver floppy.

21 years agos/procsig/sigacts/ to catch up to procsig and sigacts changes in the kernel.
jhb [Wed, 14 May 2003 15:01:20 +0000 (15:01 +0000)]
s/procsig/sigacts/ to catch up to procsig and sigacts changes in the kernel.

Approved by: re (scottl)

21 years agoAdd <sys/queue.h> to unbreak world.
jhb [Wed, 14 May 2003 15:00:24 +0000 (15:00 +0000)]
Add <sys/queue.h> to unbreak world.

Approved by: re (scottl)

21 years agoIn atapi_cam_reinit_bus, only call reinit_bus if the ATAPI channel
thomas [Wed, 14 May 2003 14:20:22 +0000 (14:20 +0000)]
In atapi_cam_reinit_bus, only call reinit_bus if the ATAPI channel
has already been registered with ATAPI/CAM (else there is nothing
to do). atapi_cam_reinit_bus may be called before the bus is
registered if an ATAPI command times out during the boot sequence.

PR: i386/51421
Reviewed by: roberto
Approved by: re (rwatson)
MFC after: 1 week

21 years agoWhen receiving NLM_GRANTED_RES or NLM4_GRANTED_RES lock granted messages
rwatson [Wed, 14 May 2003 13:50:40 +0000 (13:50 +0000)]
When receiving NLM_GRANTED_RES or NLM4_GRANTED_RES lock granted messages
from the NFS server, following contention on a lock by this or another
client, immediately notify the waiting process that the lock has been
granted via a wakeup.  Without this change, the client rpc.lockd will
not wakeup the waiting process until it next re-polls the lock (sometime
in the next ten seconds), which can lead to marked latency across all
potential lockers, as the lock is held by the client for the duration.

Approved by: re (scottl)
Submitted by: truckman
Reviewed by: Andrew P. Lentvorski, Jr <bsder@allcaps.org>

21 years agoadd support for NetMos 4S0P PCI: 4S, 0P
wilko [Wed, 14 May 2003 09:37:46 +0000 (09:37 +0000)]
add support for NetMos 4S0P PCI: 4S, 0P

tested on -current: ceri
tested on -stable:  wilko

approved: re (scottl)

21 years agoBandaid for world. jhb gets the pointy hat here and he needs to look at
peter [Wed, 14 May 2003 07:28:43 +0000 (07:28 +0000)]
Bandaid for world.  jhb gets the pointy hat here and he needs to look at
this.

Approved by:   re (scottl)

21 years agoAdd new directories from the XFree86 4.3.0 update.
anholt [Wed, 14 May 2003 07:23:54 +0000 (07:23 +0000)]
Add new directories from the XFree86 4.3.0 update.

Approved by: re (murray)

21 years agoRegen
peter [Wed, 14 May 2003 04:11:25 +0000 (04:11 +0000)]
Regen

Approved by: re (amd64 blanket)

21 years agoAdd BASIC i386 binary support for the amd64 kernel. This is largely
peter [Wed, 14 May 2003 04:10:49 +0000 (04:10 +0000)]
Add BASIC i386 binary support for the amd64 kernel.  This is largely
stolen from the ia64/ia32 code (indeed there was a repocopy), but I've
redone the MD parts and added and fixed a few essential syscalls.  It
is sufficient to run i386 binaries like /bin/ls, /usr/bin/id (dynamic)
and p4.  The ia64 code has not implemented signal delivery, so I had
to do that.

Before you say it, yes, this does need to go in a common place.  But
we're in a freeze at the moment and I didn't want to risk breaking ia64.
I will sort this out after the freeze so that the common code is in a
common place.

On the AMD64 side, this required adding segment selector context switch
support and some other support infrastructure.  The %fs/%gs etc code
is hairy because loading %gs will clobber the kernel's current MSR_GSBASE
setting.  The segment selectors are not used by the kernel, so they're only
changed at context switch time or when changing modes.  This still needs
to be optimized.

Approved by: re (amd64/* blanket)

21 years agoFix some misunderstandings about 64 bit extension.
peter [Wed, 14 May 2003 03:38:13 +0000 (03:38 +0000)]
Fix some misunderstandings about 64 bit extension.
Fix fuword/suword - they're supposed to be 'long' - ie: point them
at fuword64/suword64 instead of the incorrect 32 bit versions.

21 years agop_sigignore moved into struct sigacts. move one which was missed.
ps [Wed, 14 May 2003 00:03:55 +0000 (00:03 +0000)]
p_sigignore moved into struct sigacts.  move one which was missed.

Approved by: re (scottl)

21 years ago- Merge struct procsig with struct sigacts.
jhb [Tue, 13 May 2003 20:36:02 +0000 (20:36 +0000)]
- Merge struct procsig with struct sigacts.
- Move struct sigacts out of the u-area and malloc() it using the
  M_SUBPROC malloc bucket.
- Add a small sigacts_*() API for managing sigacts structures: sigacts_alloc(),
  sigacts_free(), sigacts_copy(), sigacts_share(), and sigacts_shared().
- Remove the p_sigignore, p_sigacts, and p_sigcatch macros.
- Add a mutex to struct sigacts that protects all the members of the struct.
- Add sigacts locking.
- Remove Giant from nosys(), kill(), killpg(), and kern_sigaction() now
  that sigacts is locked.
- Several in-kernel functions such as psignal(), tdsignal(), trapsignal(),
  and thread_stopped() are now MP safe.

Reviewed by: arch@
Approved by: re (rwatson)

21 years agoAdd pc98 archtecture entry.
phk [Tue, 13 May 2003 19:42:52 +0000 (19:42 +0000)]
Add pc98 archtecture entry.

Approved by: re/rwatson

21 years agoIn setitimer(2), if the it_value of the new itimer value is clear, then
jhb [Tue, 13 May 2003 19:21:46 +0000 (19:21 +0000)]
In setitimer(2), if the it_value of the new itimer value is clear, then
don't add the current time to it, but leave it as clear so that when the
timer is disabled, the it_value is always clear.

Reviewed by: bde
Approved by: re (rwatson)

21 years agoReword the infamouse mouse dialog to ask if you have a PS/2, serial, or
jhb [Tue, 13 May 2003 19:16:00 +0000 (19:16 +0000)]
Reword the infamouse mouse dialog to ask if you have a PS/2, serial, or
bus mouse instead of if you have a non-USB mouse.

Requested by: many
Prodded by: dougb
Approved by: re (scottl)

21 years agoNew release/hardware notes: ips driver.
bmah [Tue, 13 May 2003 18:15:28 +0000 (18:15 +0000)]
New release/hardware notes:  ips driver.

Approved by: re (implicitly)

21 years agoAdd some extra #ifdef stubs so that this compiles on 4.8.
jhb [Tue, 13 May 2003 16:59:46 +0000 (16:59 +0000)]
Add some extra #ifdef stubs so that this compiles on 4.8.

Approved by: re (rwatson/bmah)

21 years agoMove the ips driver from ${MACHINE_ARCH} == "i386" to ${MACHINE} == "i386".
nyan [Tue, 13 May 2003 11:26:08 +0000 (11:26 +0000)]
Move the ips driver from ${MACHINE_ARCH} == "i386" to ${MACHINE} == "i386".

Approved by: re (scottl)

21 years agoRevert unnecessary part of previous commit.
des [Tue, 13 May 2003 10:18:49 +0000 (10:18 +0000)]
Revert unnecessary part of previous commit.

21 years agoFix broken comment line introduced in rev 1.69.
sheldonh [Tue, 13 May 2003 08:29:49 +0000 (08:29 +0000)]
Fix broken comment line introduced in rev 1.69.

Found with: nroff -mandoc ifconfig.8 > /dev/null

21 years ago* The copy of the stat struct in the man page has rotted, so remove it.
dougb [Tue, 13 May 2003 08:10:05 +0000 (08:10 +0000)]
* The copy of the stat struct in the man page has rotted, so remove it.
Those who really need this information can find it in the include file.

* Include a succinct description of the st_birthtime field.

Approved by: re (bmah)

21 years agoOptimize the use of splay in gbincore(). During a "make buildworld" the
alc [Tue, 13 May 2003 04:36:02 +0000 (04:36 +0000)]
Optimize the use of splay in gbincore().  During a "make buildworld" the
desired buffer is found at one of the roots more than 60% of the time.
Thus, checking both roots before performing either splay eliminates
unnecessary splays on the first tree splayed.

Approved by: re (jhb)

21 years agoFollowing MLINKS added, which point to host_access(3):
hmp [Mon, 12 May 2003 21:59:16 +0000 (21:59 +0000)]
Following MLINKS added, which point to host_access(3):

- hosts_ctl(3), hosts_access(3), request_init(3),
  request_set(3).

PR: docs/52000
Submitted by: Simon L. Nielsen <simon@nitro.dk>
Approved and Reviewed by: des (mentor), re (scottl)