18 years agoAdd devices da4-da15 and ad4-ad7 to MAKEDEVs 'all' for convenience. Plug-in
Matthew Dillon [Fri, 15 Oct 2004 02:38:35 +0000 (02:38 +0000)]
Add devices da4-da15 and ad4-ad7 to MAKEDEVs 'all' for convenience.  Plug-in
and built-in USB attached storage uses the CAM layer and is visible starting
at device 'da8'.  Such storage is now quite common.  SATA controllers are also
becoming quite common and look like IDE drives, with numbering beginning
at ad4 (the legacy IDE controller usually eats ad0-ad3).

18 years ago*** empty log message ***
Matthew Dillon [Thu, 14 Oct 2004 20:57:41 +0000 (20:57 +0000)]
*** empty log message ***

18 years agoAugment vnodeinfo to retrieve and display the number of resident pages in
Matthew Dillon [Thu, 14 Oct 2004 20:54:11 +0000 (20:54 +0000)]
Augment vnodeinfo to retrieve and display the number of resident pages in
attached VM objects.

18 years agoThe forth code is a real mess, things are repeated all over the place.
Matthew Dillon [Thu, 14 Oct 2004 18:36:00 +0000 (18:36 +0000)]
The forth code is a real mess, things are repeated all over the place.
Add another missing conditional for loader-bootp.conf.

18 years agoAdd the "nv" interface, and enable it in the bootp case since the netif/nv
Matthew Dillon [Thu, 14 Oct 2004 18:33:29 +0000 (18:33 +0000)]
Add the "nv" interface, and enable it in the bootp case since the netif/nv
module cannot be directly compiled into a kernel.

18 years agoRemove the 'ether' module dependancy, it is not defined anywhere and will
Matthew Dillon [Thu, 14 Oct 2004 18:31:02 +0000 (18:31 +0000)]
Remove the 'ether' module dependancy, it is not defined anywhere and will
prevent the loader from pre-loading the modules in question.

Do not partially initialize the related struct sockaddr_in when a
non-existant or "" pxe related kenv is found.  In particular, if
the gateway is not specified by the DHCP server we avoid attempting to add
a bad default route (which results in a panic) later on.

18 years agoUpdate the BSD Family tree chart to include DragonFly.
Scott Ullrich [Thu, 14 Oct 2004 15:04:47 +0000 (15:04 +0000)]
Update the BSD Family tree chart to include DragonFly.

Submitted-by: andre_AT_digirati.com.br (Andre Nathan)

18 years agoCorrect non-matching comment.
Jeroen Ruigrok/asmodai [Thu, 14 Oct 2004 11:50:24 +0000 (11:50 +0000)]
Correct non-matching comment.

This is not root's crontab, which is actually /var/cron/tabs/root, but it is
the systemwide crontab.

18 years agoFinal cleanup. After giving up on trying to avoid having two loader*.conf
Matthew Dillon [Thu, 14 Oct 2004 09:47:47 +0000 (09:47 +0000)]
Final cleanup.  After giving up on trying to avoid having two loader*.conf
files, move the kernel= variable back into the (now separate) files for
bootp and normal boots.

18 years agoAdd /boot/defaults/loader-bootp.conf, a separate default configuration
Matthew Dillon [Thu, 14 Oct 2004 09:41:01 +0000 (09:41 +0000)]
Add /boot/defaults/loader-bootp.conf, a separate default configuration
file for bootp boots.  It's basically the same as defaults/loader.conf
but with auxillary config file names extended with -bootp.  Changes are
as follows:

loader_conf_files="/boot/device.hints /boot/loader-bootp.conf /boot/loader-bootp.conf.local"

18 years agoWhen pxebooted loader is detected not only change the kernel name, but
Matthew Dillon [Thu, 14 Oct 2004 09:06:21 +0000 (09:06 +0000)]
When pxebooted loader is detected not only change the kernel name, but
also use loader-bootp.conf instead of loader.conf, so a different set
of kernel options can be specified foor pxe booted kernels.

18 years agoInitialize the 'kernel' environment variable from loader.4th
Matthew Dillon [Thu, 14 Oct 2004 08:44:34 +0000 (08:44 +0000)]
Initialize the 'kernel' environment variable from loader.4th
instead of loader.conf.  loader.4th will set the kernel name to
'kernel' for normal boots, 'kernel.BOOTP' for PXE boots.  This allows
us to distinguish between BOOTP kernels and normal kernels and,
in particular, this will allow both to be shipped on the CD.

18 years agoDo not use non-blocking malloc()'s in the busdma support code. A lot of
Matthew Dillon [Thu, 14 Oct 2004 03:05:54 +0000 (03:05 +0000)]
Do not use non-blocking malloc()'s in the busdma support code.  A lot of
drivers basically expect these functions to work, so they must work.   It
was originally believed that the ATA code might be effected but it turns out
our ATA code does not (yet) use busdma.  However, other disk drivers such
as TWE *do* use it.  Note that most drivers appear to use the busdma
allocation functions at driver initialization rather then at run time.

18 years agoAvoid redefined symbol warning when libcaps uses thread.h with its own
Matthew Dillon [Wed, 13 Oct 2004 19:51:31 +0000 (19:51 +0000)]
Avoid redefined symbol warning when libcaps uses thread.h with its own
stack specification.

Submitted-by: Eirik Nygaard <eirikn@kerneled.com>
18 years agoForgot to add for last commit:
Matthew Dillon [Wed, 13 Oct 2004 19:48:12 +0000 (19:48 +0000)]
Forgot to add for last commit:

Taken-from: OpenBSD ar_io.c/1.36.

18 years agoMake a chdir failure fatal rather then just a warning, otherwise pax could
Matthew Dillon [Wed, 13 Oct 2004 19:47:38 +0000 (19:47 +0000)]
Make a chdir failure fatal rather then just a warning, otherwise pax could
end up overwriting files unexpectedly.

Submitted-by: Robert Nagy <robert@bsd.hu>
18 years agotest commit@ list 2/2
Matthew Dillon [Wed, 13 Oct 2004 19:43:07 +0000 (19:43 +0000)]
test commit@ list 2/2

18 years agotest commits@ list 1/2
Matthew Dillon [Wed, 13 Oct 2004 19:41:20 +0000 (19:41 +0000)]
test commits@ list 1/2

18 years agoAdd two more header in the !_KERNEL case so libcaps knows about
Eirik Nygaard [Wed, 13 Oct 2004 18:42:34 +0000 (18:42 +0000)]
Add two more header in the !_KERNEL case so libcaps knows about

18 years agoTry to close an occassional VM page related panic that is believed to occur
Matthew Dillon [Tue, 12 Oct 2004 19:29:34 +0000 (19:29 +0000)]
Try to close an occassional VM page related panic that is believed to occur
due to the VM page queues or free lists being indirectly manipulated by
interrupts that are not protected by splvm().  Do this by replacing splvm()'s
with critical sections in a number of places.

Note: some of this work bled over into the "VFS messaging/interfacing work
stage 8/99" commit.

18 years agoVFS messaging/interfacing work stage 8/99: Major reworking of the vnode
Matthew Dillon [Tue, 12 Oct 2004 19:21:16 +0000 (19:21 +0000)]
VFS messaging/interfacing work stage 8/99: Major reworking of the vnode
interlock and other miscellanious things.  This patch also fixes FS
corruption due to prior vfs work in head.  In particular, prior to this
patch the namecache locking could introduce blocking conditions that
confuse the old vnode deactivation and reclamation code paths.  With
this patch there appear to be no serious problems even after two days
of continuous testing.

* VX lock all VOP_CLOSE operations.
* Fix two NFS issues.  There was an incorrect assertion (found by
  David Rhodus), and the nfs_rename() code was not properly
  purging the target file from the cache, resulting in Stale file
  handle errors during, e.g. a buildworld with an NFS-mounted /usr/obj.
* Fix a TTY session issue.  Programs which open("/dev/tty" ,...) and
  then run the TIOCNOTTY ioctl were causing the system to lose track
  of the open count, preventing the tty from properly detaching.
  This is actually a very old BSD bug, but it came out of the woodwork
  in DragonFly because I am now attempting to track device opens
* Gets rid of the vnode interlock.  The lockmgr interlock remains.
* Introduced VX locks, which are mandatory vp->v_lock based locks.
* Rewrites the locking semantics for deactivation and reclamation.
  (A ref'd VX lock'd vnode is now required for vgone(), VOP_INACTIVE,
  and VOP_RECLAIM).  New guarentees emplaced with regard to vnode
* Recodes the mountlist scanning routines to close timing races.
* Recodes getnewvnode to close timing races (it now returns a
  VX locked and refd vnode rather then a refd but unlocked vnode).
* Recodes VOP_REVOKE- a locked vnode is now mandatory.
* Recodes all VFS inode hash routines to close timing holes.
* Removes cache_leaf_test() - vnodes representing intermediate
  directories are now held so the leaf test should no longer be
* Splits the over-large vfs_subr.c into three additional source
  files, broken down by major function (locking, mount related,
  filesystem syncer).

* Changes splvm() protection to a critical-section in a number of
  places (bleedover from another patch set which is also about to be

Known issues not yet resolved:

* Possible vnode/namecache deadlocks.
* While most filesystems now use vp->v_lock, I haven't done a final
  pass to make vp->v_lock mandatory and to clean up the few remaining
  inode based locks (nwfs I think and other obscure filesystems).
* NullFS gets confused when you hit a mount point in the underlying
* Only UFS and NFS have been well tested
* NFS is not properly timing out namecache entries, causing changes made
  on the server to not be properly detected on the client if the client
  already has a negative-cache hit for the filename in question.

Testing-by: David Rhodus <sdrhodus@gmail.com>,
    Peter Kadau <peter.kadau@tuebingen.mpg.de>,
    walt <wa1ter@myrealbox.com>,

18 years agoMake a DFly buildworld work on a FreeBSD-4.x system again by fixing
Matthew Dillon [Mon, 11 Oct 2004 21:36:48 +0000 (21:36 +0000)]
Make a DFly buildworld work on a FreeBSD-4.x system again by fixing
assumptions made by the new patch code during the buildworld/bootstrap
build stage.  + slip the DragonFly_Stable tag for the fix.

Work-by: Joerg Sonnenberger and Matt Dillon
18 years agoAdd a missing agp_generic_detach() call if a bad initial aperture size
Matthew Dillon [Sun, 10 Oct 2004 18:59:02 +0000 (18:59 +0000)]
Add a missing agp_generic_detach() call if a bad initial aperture size
is detected.

Submitted-by: "Markie" <mark.cullen@dsl.pipex.com>
18 years agoFix a USB stuttering key issue.
Matthew Dillon [Sun, 10 Oct 2004 18:34:44 +0000 (18:34 +0000)]
Fix a USB stuttering key issue.

Dragonfly-Sleuthing-by: Roland Hammerle <romendo@yahoo.com>
FreeBSD-PR: kern/57273 [ plasma <plasma@freebsd.sinica.edu.tw> ]
    kern/63171 [ Brian Candler <B.Candler@pobox.com> ]

18 years agoBring in a fix from NetBSD for hid_report_size(). This fixes a detection
Matthew Dillon [Fri, 8 Oct 2004 21:14:45 +0000 (21:14 +0000)]
Bring in a fix from NetBSD for hid_report_size().  This fixes a detection
issue with the Logitech USB Keyboard/Mouse.

Reported-by: Roland Hammerle <romendo@yahoo.com>
FreeBSD-PR: kern/63837

18 years agoAdd the standard DragonFly copyright.
Matthew Dillon [Fri, 8 Oct 2004 18:32:58 +0000 (18:32 +0000)]
Add the standard DragonFly copyright.

18 years agoAdd conditionals so vnodeinfo compiles for both old and new api kernels.
Matthew Dillon [Fri, 8 Oct 2004 18:31:24 +0000 (18:31 +0000)]
Add conditionals so vnodeinfo compiles for both old and new api kernels.

18 years agoConditionalize the flag->string conversions so pstat compiles for both the
Matthew Dillon [Fri, 8 Oct 2004 09:53:02 +0000 (09:53 +0000)]
Conditionalize the flag->string conversions so pstat compiles for both the
stable and head kernels, and for upcoming work as well.

18 years agoVFS messaging/interfacing work stage 7h/99: More firming up of stage 7.
Matthew Dillon [Thu, 7 Oct 2004 20:18:33 +0000 (20:18 +0000)]
VFS messaging/interfacing work stage 7h/99: More firming up of stage 7.

Fix a vnode leak due to a missed change when the cache_lookup() semantics
were modified.  Hold the parent namecache record in naccess() when checking
for write perms on a directory.

Reported-by: walt <wa1ter@myrealbox.com>
18 years agoAdd sr_YU.ISO8859-2/5.
Jeroen Ruigrok/asmodai [Thu, 7 Oct 2004 13:32:37 +0000 (13:32 +0000)]
Add sr_YU.ISO8859-2/5.

Taken from: Toni Andjelkovic / FreeBSD

18 years agoFix the -N and M options for ncptrace.
Matthew Dillon [Thu, 7 Oct 2004 10:15:06 +0000 (10:15 +0000)]
Fix the -N and M options for ncptrace.

18 years agoVFS messaging/interfacing work stage 7g/99: More firming up of stage 7.
Matthew Dillon [Thu, 7 Oct 2004 10:03:06 +0000 (10:03 +0000)]
VFS messaging/interfacing work stage 7g/99: More firming up of stage 7.

Fix a serious bug in cache_lookup().  The original lookup code could get
away with returning an unreferenced vnode but the new code's cache_hold()/
cache_drop() and related functions can interact badly with an unreferenced
vnode.  So make cache_lookup() return a referenced vnode.

Detect and handle locking races in cache_nlookup() and cache_lookup().

Change cache_zap() to require a locked namecache record so it doesn't
rip data out from under cache_lookup()/cache_nlookup()/cache_resolve().

18 years agoVFS messaging/interfacing work stage 7f/99: More firming up of stage 7.
Matthew Dillon [Thu, 7 Oct 2004 04:20:28 +0000 (04:20 +0000)]
VFS messaging/interfacing work stage 7f/99: More firming up of stage 7.

unlink, rmdir, rename, and whiteout removal functions use NAMEI_DELETE
namei() lookups.  With the old API this zap'd the namecache entry before
the system actually runs the operation.  If the operation fails we can be
left with a broken namecache hierarchy which is not allowed in the new API.

Change old API cache_lookup() semantics to *NOT* zap the namecache entry and
add explicit zaps after calls to VOP_UNLINK(), VOP_RMDIR(), etc. to replace
the functionality.

rename() attempts to issue a NAMEI_RENAME lookup which zaps the target, but
the same problem occurs if the target is preexisting and being overwritten.
A similar solution is employed for renames.

18 years agoThe last commit was improperly documented as being VFS related. It was
Matthew Dillon [Thu, 7 Oct 2004 01:33:31 +0000 (01:33 +0000)]
The last commit was improperly documented as being VFS related.  It was
in related to the tty/clist fixes for USB keyboards.

18 years agoFix a bug in the tty clist code. The clist code was only protecting itself
Matthew Dillon [Thu, 7 Oct 2004 01:32:04 +0000 (01:32 +0000)]
Fix a bug in the tty clist code.  The clist code was only protecting itself
with spltty() but the keyboard code uses clists too, and USB interrupts
(for USB keyboards) aren't protected by spltty().   Generally convert the
spl's to critical sections to solve the problem.

18 years agoVFS messaging/interfacing work stage 8a/99: Sync other filesystems to stage 7
Matthew Dillon [Thu, 7 Oct 2004 01:13:21 +0000 (01:13 +0000)]
VFS messaging/interfacing work stage 8a/99: Sync other filesystems to stage 7

Make vop_noresolve() a global rather then static function.

Make NULLFS work again (fix some vnode leaks and make it compatible with
the new vop_resolve API function).

18 years agoAdd vnodeinfo - a program which scans each mount's vnode list and dumps
Matthew Dillon [Thu, 7 Oct 2004 00:05:03 +0000 (00:05 +0000)]
Add vnodeinfo - a program which scans each mount's vnode list and dumps
mount and vnode information, plus scans the vnode_free_list and dumps it
as well.

Give ncptrace the ability to specify a kernel and core file.

18 years agoVFS messaging/interfacing work stage 7e/99: More firming up of stage 7.
Matthew Dillon [Wed, 6 Oct 2004 23:03:50 +0000 (23:03 +0000)]
VFS messaging/interfacing work stage 7e/99: More firming up of stage 7.
[commit files missed in the last vfs commit]

18 years agoFix locations of PF helpers.
Joerg Sonnenberger [Wed, 6 Oct 2004 17:03:49 +0000 (17:03 +0000)]
Fix locations of PF helpers.

Submitted-by: Aggelos Economopoulos <aoiko@cc.ece.ntua.gr>
18 years agoIf we get an EOF in check2(), terminate the yes/no question loop rather
Matthew Dillon [Wed, 6 Oct 2004 06:58:53 +0000 (06:58 +0000)]
If we get an EOF in check2(), terminate the yes/no question loop rather
then looping forever.

18 years agoLast commit inspired by: Giorgos Keramidas <keramida@freebsd.org>, who
Matthew Dillon [Wed, 6 Oct 2004 06:45:04 +0000 (06:45 +0000)]
Last commit inspired by: Giorgos Keramidas <keramida@freebsd.org>, who
correctly identified a generic and serious problem that occurs when one
introduces a newbie user to UNIX for the first time and that user tries
to user 'rm'.  It's been a problem for, oh, 22+ years, it's about time
it got fixed!

18 years agoalias rm to rm -I by default in interactive shells. rm -I is a safer, more
Matthew Dillon [Wed, 6 Oct 2004 06:31:39 +0000 (06:31 +0000)]
alias rm to rm -I by default in interactive shells.  rm -I is a safer, more
friendly rm that will not let you shoot yourself in the foot yet which is
not as annoying as rm -i. [ Experienced sysops can always remove the aliases ].

This only effects fresh installs.

18 years agoDo not run getty on ttyd0 by default. The installer's version of ttys already
Matthew Dillon [Wed, 6 Oct 2004 06:24:11 +0000 (06:24 +0000)]
Do not run getty on ttyd0 by default.  The installer's version of ttys already
turns this off but we might as well do it in the master copy too.

18 years agoAdd the -I option to rm. This option asks for confirmation just once if
Matthew Dillon [Wed, 6 Oct 2004 06:16:43 +0000 (06:16 +0000)]
Add the -I option to rm.  This option asks for confirmation just once if
recursively removing directories or if more then 3 files are listed in the
command line.  It is designed as a better safety net for new users then
the far more annoying -i.

After: reading the bikeshed on the freebsd groups and thinking up a better way.

18 years agoUpdate ncptrace.c to handle DragonFly_Stable and HEAD.
Matthew Dillon [Wed, 6 Oct 2004 05:13:20 +0000 (05:13 +0000)]
Update ncptrace.c to handle DragonFly_Stable and HEAD.
Add ttyinfo.c (does a sanity check on the kernel's clist data)

18 years agoRegister ips device with devstat subsystem so that {io,sys,vm}stat
YONETANI Tomokazu [Wed, 6 Oct 2004 02:12:31 +0000 (02:12 +0000)]
Register ips device with devstat subsystem so that {io,sys,vm}stat
show statistics for ServeRAID device.

Requested-by: Toma Bor¹ônar
18 years agoVFS messaging/interfacing work stage 7e/99: More firming up of stage 7.
Matthew Dillon [Tue, 5 Oct 2004 07:57:41 +0000 (07:57 +0000)]
VFS messaging/interfacing work stage 7e/99: More firming up of stage 7.

Fix the linux emulation code for [l]stat(), it was not properly
disposing of the nlookupdata structure.

Fix chroot()'s use of the new api, it was horribly broken.

Cleanup cache_alloc().  Rewrite __getcwd() and vn_fullpath() to use newapi
namecache data.  Cleanup nlookup().  Fix bugs in nlookup() related to
stacked mount points.  Fix a bug related to VFS_ROOT() mount errors.

Linux-bugs-reported-by: Bartek Stalewski, walt
18 years agoVFS messaging/interfacing work stage 7d/99: More firming up of stage 7.
Matthew Dillon [Tue, 5 Oct 2004 03:24:35 +0000 (03:24 +0000)]
VFS messaging/interfacing work stage 7d/99: More firming up of stage 7.

Additional work to deal with old-api/new-api issues.  Cut more stuff
out of the old-api's cache_enter() routine to deal with deadlocks, at
the cost of some performance loss (temporary until the VFS's start using
the new APIs).  Change UFS and NFS to not purge whole directories in
*_rename() and *_rmdir().

Add some minor breakage to the API which will not be fixed until the VFS's
get new rename implementations - renaming a directory in which a process
has chdir'd will create problems for that process.  This doesn't happen
normally anyway so this temporary breakage should not cause any significant

Bug-reports-by: walt, Sascha Wildner, others
18 years agoVFS messaging/interfacing work stage 7c/99: More firming up of stage 7.
Matthew Dillon [Mon, 4 Oct 2004 09:20:43 +0000 (09:20 +0000)]
VFS messaging/interfacing work stage 7c/99: More firming up of stage 7.

Make a minor change to cache_alloc()'s semantics by having it returned a
ref'd locked ncp.  Make the same change to cache_allocroot().

Fix a bug in the resolver that could deadlock a namecache and vnode lock by
unlocking the namecache node before locking the vnode.  This hack is only
needed until the old API has been removed.

Get rid of the old API compat code that tried to create dummy ncp's for
directory vnodes that did not have one and then merge old and new, it got
too messy.  The idea was to be able to cache things in the middle of the
topology and then hook the topology up later when we knew the path.

Instead, the old API simply does not enter things into the namecache
if the parent directory vnode has not namecache structure associated
with it.  This maintains the unbroken topology that we want to guarentee
at the cost of the old API functions potentially not caching as much
information.  [ since kern_open(), [f]chdir(), and [f]stat() execute the
new API the loss of efficiency in the old API should not be noticeable ].

When cache_enter() re-enters the same vnode, it was zaping the old namecache
structure unnecessarily and causing problems with directories.  It no longer
does this.

NFS CHANGE: get rid of the va_ctime vs n_ctime test.  This test was supposed
to detect server-side directory changes and purge the directory, but half the
time it purged the directory anyway.  The new API requires that the directory
topology remain intact so only purge if the directory is found not to exist.
This change may have to be revisited later.

NOTE: cache_nlookup() is sensitive to the directory topology when traversing
".." directories.  If a directory in the middle of the topology is purged
it can cause the new API lookup to fail with EXDEV.

Bug-reports-by: drhodus, various other people.
18 years agoOnly include opt_vmpage.h if _KERNEL is defined.
Matthew Dillon [Mon, 4 Oct 2004 09:05:26 +0000 (09:05 +0000)]
Only include opt_vmpage.h if _KERNEL is defined.

18 years agoAdd a debugging utility which dumps that kernel's namecache topology.
Matthew Dillon [Sun, 3 Oct 2004 06:12:34 +0000 (06:12 +0000)]
Add a debugging utility which dumps that kernel's namecache topology.

18 years agoMake patch's -b option match the old patch's -b option, at least for now,
Matthew Dillon [Sat, 2 Oct 2004 05:52:06 +0000 (05:52 +0000)]
Make patch's -b option match the old patch's -b option, at least for now,
so ports don't break so badly.

Patch-by: Sascha Wildner <saw@online.de>
18 years agoVFS messaging/interfacing work stage 7b/99: More firming up of stage 7.
Matthew Dillon [Sat, 2 Oct 2004 03:18:28 +0000 (03:18 +0000)]
VFS messaging/interfacing work stage 7b/99: More firming up of stage 7.

(1) Enhance cache_resolve() to go up the directory chain as far as necessary
    to resolve the chain.  Previously I wimped out and returned an error.

(2) Be sure not to use the parent of a mount point to obtain the vnode
    operations vector for a child of a mount point (which resides on a
    different filesystem!).

Generally speaking the namecache directory chain should contain resolved
vnodes due to the fact that the vnode associated with a namecache entry is
held if any children exist, preventing the vnode from being recycled.
However, the NFS client code as originally written wimps out and does
wholesale namecache flushing of directories when it isn't sure about the
state of things (which is quite often, especially when you are rm'ing
files), and this breaks that assumption and causes some intermediate NFS
directory nodes to revert back into an 'unresolved' state.  This will
eventually be fixed, but not right now.

Add a nc_mount pointer to the namecache structure.  For the moment this is
only used to get at the mount point associated with a NCF_MOUNTPT namecache
node (whether resolved or unresolved), making it easier for us to resolve
the vnode.  But eventually it will be used as the basis for obtaining the
v_ops for (new stlye) VOP calls on an unresolved namecache node, saving us
a few indirections so I don't consider it a hack.

Bugs-and-cores-by: drhodus
18 years agoEnforce directory creation ordering for subdirectories to fix a make -j
Matthew Dillon [Sat, 2 Oct 2004 03:08:07 +0000 (03:08 +0000)]
Enforce directory creation ordering for subdirectories to fix a make -j

18 years agoUnsetting an undefined variable or function is not an error.
Matthew Dillon [Fri, 1 Oct 2004 20:38:40 +0000 (20:38 +0000)]
Unsetting an undefined variable or function is not an error.

Submitted-by: "Simon 'corecode' Schubert" <corecode@fs.ei.tum.de>
Take-from: FreeBSD

18 years agoRemove ATTY.
Matthew Dillon [Fri, 1 Oct 2004 20:30:25 +0000 (20:30 +0000)]
Remove ATTY.

Taken-from: FreeBSD

18 years agoVFS messaging/interfacing work stage 7a/99: Firm up stage 7 a bit by
Matthew Dillon [Fri, 1 Oct 2004 07:08:23 +0000 (07:08 +0000)]
VFS messaging/interfacing work stage 7a/99:  Firm up stage 7 a bit by
automatically vhold()ing any vnodes associated with a locked namecache
record.  This will prevent the vnode from being recycled (which would
unexpectedly cause the namecache entry to revert to an unresolved state
even while it is locked).

Previously only vnodes associated with namecache records with children
were being held (in order to guarentee that the vnode associated with the
parent directory of a locked leaf namecache record would stick around without
having to lock the parent directory's namecache record).

The point here being that we want to have to only lock and pass a single
namecache record to definitively identify an object in the namespace,
rather then the combination of directory and leaf nodes (and other junk)
that the old API required.  For example, the old RENAME API required 6
arguments (fdvp, fvp, fcnp, tdvp, tvp, tcnp) while the new one will only
require two arguments (fncp, tncp).

18 years agoVFS messaging/interfacing work stage 7/99. BEGIN DESTABILIZATION!
Matthew Dillon [Thu, 30 Sep 2004 19:00:29 +0000 (19:00 +0000)]
VFS messaging/interfacing work stage 7/99.  BEGIN DESTABILIZATION!

Implement the infrastructure required to allow us to begin switching to the
new nlookup() VFS API.

filedesc->fd_ncdir, fd_nrdir, fd_njdir

    File descriptors (associated with processes) now record the
    namecache pointer related to the current directory, root directory,
    and jail directory, in addition to the vnode pointers.  These
    pointers are used as the basis for the new path lookup code
    (nlookup() and friends).


    File pointers may now have a referenced+unlocked namecache
    pointer associated with them.  All fp's representing directories
    have this attached.  This allows fchdir() to properly record
    the ncp in fdp->fd_ncdir and friends.


    The namecache topology for crossing a mount point works as
    follows: when looking up a path element which is a mount point,
    cache_nlookup() will locate the ncp for the vnode-under the
    mount point.  mount->mnt_ncp represents the root of the mount,
    that is the vnode-over.  nlookup() detects the mount point and
    accesses mount->mnt_ncp to skip past the vnode-under.  When going
    backwards (..), nlookup() detects the case and skips backwards.

    The ncp linkages are: ncp->ncp->ncp[vnode_under]->ncp[vnode_over].
    That is, when going forwards or backwards nlookup must explicitly
    skip over the double-ncp when crossing a mount point.  This allows
    us to keep the namecache topology intact across mount points.

NEW CACHE level API functions:

cache_get() Reference and lock a namecache entry
cache_put() Dereference and unlock a namecache entry
cache_lock() lock an already-referenced namecache entry
cache_unlock() unlock a lockednamecache entry

    NOTE: namecache locks are exclusive and recursive.  These are
    the 'namespace' locks that we will be using to guarentee namespace
    operations such as in a CREATE, RENAME, or REMOVE.

vfs_cache_setroot()  Set the new system-wide root directory
cache_allocroot()    System bootstrap helper function to allocate
      the root namecache node.

cache_resolve() Resolve a NCF_UNRESOLVED namecache node.  The
namecache node should be locked on call.

cache_setvp() (resolver) associate a VP or create a negative
cache entry representation for a namecache
pointer and clear NCF_UNRESOLVED.  The
namecache node should be locked on call.

cache_setunresolved() Revert a resolved namecache entry back to an
unresolved state, disassociating any vnode
but leaving the topology intact.  The
namecache node should be locked on call.

cache_vget() Obtain the locked+refd vnode related to
a namecache entry, resolving the entry if
necessary.  Return ENOENT if the entry
represents a negative cache hit.

cache_vref() Obtained a refd (not locked) vnode related to
a namecache entry, as above.

cache_nlookup() The new namecache lookup routine.  This routine
does a lookup and allocates a new namecache
node (into an unresolved state) if necessary.
Returns a namecache record whether or not
the item can be found and whether or not it
represents a positive or negative hit.

cache_lookup() OLD API CODE DEPRECATED, but must be maintained
until everything has been converted over.
cache_enter() OLD API CODE DEPRECATED, but must be maintained
until everything has been converted over.

NEW default VOPs

vop_noresolve() Implements a namecache resolver for VFSs
which are still using the old VOP_LOOKUP/
VOP_CACHEDLOOKUP API (which is all of them

VOP_LOOKUP OLD API CODE DEPRECATED, but must be maintained
until everything has been converted over.
until everything has been converted over.


nlookup_init() Similar to NDINIT, initialize a nlookupdata
structure for nlookup() and nlookup_done().

nlookup() Lookup a path.  Unlike the old namei/lookup
code the new lookup code does not do any
fancy pre-disposition of the cache for
create/delete, it simply looks up the requested
path and returns the appropriate locked
namecache pointer.  The caller can obtain the
vnode and directory vnode, as applicable, from
the one namecache structure that is returned.

Access checks are done on directories leading
up to the result but not done on the returned
namecache node.

nlookup_done() Mandatory routine to cleanup a nlookupdata
structure after it has been initialized and
all operations have been completed on it.

nlookup_simple() (in progress) all-in-one wrapped new lookup.

nlookup_mp() helper call for resolving a mount point's
glue NCP.  hackish, will be cleaned up later.

nreadsymlink() helper call to resolve a symlink.  Note that
the namecache does not yet cache symlink data
but the intention is to eventually do so to
avoid having to do VFS ops to get the data.

naccess() Perform access checks on a namecache node
given a mode and cred.

naccess_va() Perform access cheks on a vattr given a
mode and cred.

Begin switching VFS operations from using namei to using nlookup.
In this batch:

* mount  (install mnt_ncp for cross-mount-point handling in
nlookup, simplify the vfs_mount() API to no longer
pass a nameidata structure)
* [l]stat (use nlookup)
* [f]chdir (use nlookup, use recorded f_ncp)
* [f]chroot (use nlookup, use recorded f_ncp)

18 years agoAttempt to make the boot code operate in a more deterministic fashion.
Matthew Dillon [Thu, 30 Sep 2004 18:32:00 +0000 (18:32 +0000)]
Attempt to make the boot code operate in a more deterministic fashion.
Have it always try EDD (linear block number) mode first, and only fall back
to cylinder/head/sector if EDD fails.  Before it would always try CHS
mode for cylinders < 1024.

18 years agoCorrect the Polish locales per the submission of Bodek <bodek@blurp.org>
Jeroen Ruigrok/asmodai [Thu, 30 Sep 2004 12:46:03 +0000 (12:46 +0000)]
Correct the Polish locales per the submission of Bodek <bodek@blurp.org>
to FreeBSD.

- Month and weekday names should begin with lowercase letter.
- First part of long month names should use genitive.
- Use more proper shortcuts, leaving the first 3 letters is not always

18 years agoFix the code for the nxt != 0 case and use the assembler backend.
Joerg Sonnenberger [Thu, 30 Sep 2004 10:21:07 +0000 (10:21 +0000)]
Fix the code for the nxt != 0 case and use the assembler backend.

18 years agoAdd CTASSERT, a facility for simple compile time assertions. This is useful
Joerg Sonnenberger [Thu, 30 Sep 2004 10:18:07 +0000 (10:18 +0000)]
Add CTASSERT, a facility for simple compile time assertions. This is useful
to ensure that certain structures keep there size.

Obtained-from: FreeBSD

18 years agoFix the setup for initial processing. Always use argv[0] and correctly
Joerg Sonnenberger [Thu, 30 Sep 2004 10:08:46 +0000 (10:08 +0000)]
Fix the setup for initial processing. Always use argv[0] and correctly
decrement argc for the argc!=1 case first.

Reported-by: Andreas Hauser <andy@splashground.de>
18 years agoSwitch patch(1) from GNU to BSD version.
Joerg Sonnenberger [Tue, 28 Sep 2004 20:56:38 +0000 (20:56 +0000)]
Switch patch(1) from GNU to BSD version.

18 years agoDon't use patch -b, the flag has different meanings for BSD and GNU patch.
Joerg Sonnenberger [Tue, 28 Sep 2004 19:34:18 +0000 (19:34 +0000)]
Don't use patch -b, the flag has different meanings for BSD and GNU patch.
Instead use --suffix=, which is the same for both.

In-discussion-with: Sascha Wildner

18 years agoMake the BSD patch WARNS=6 clean
Joerg Sonnenberger [Tue, 28 Sep 2004 19:09:50 +0000 (19:09 +0000)]
Make the BSD patch WARNS=6 clean
- constify string operations if possible
- rename some variables to avoid namespace clashes
- don't cast the signal functions to sig_t), it's unnecessary

Submitted-by: Sascha Wildner <saw@online.de>
Instead of i_ptr[++iline][0] = '\0', I've used a special empty char array
instead. I'm not sure if i_ptr[++iline] points to a valid memory location
under all circumstances and this is a safer bet.

18 years agoWe now have pidfile in libutil, update kerberos5 accordingly.
Joerg Sonnenberger [Tue, 28 Sep 2004 18:17:37 +0000 (18:17 +0000)]
We now have pidfile in libutil, update kerberos5 accordingly.

Submitted-by: Pete Carah <pete@altadena.net>
18 years agoCorrect BASE_LOCALEDIR to ..
Jeroen Ruigrok/asmodai [Tue, 28 Sep 2004 16:30:13 +0000 (16:30 +0000)]
Correct BASE_LOCALEDIR to ..

Reminded by: YONETANI Tomoka

18 years agoEVENTHANDLER_REGISTER uses the name of the event as string and therefore
Joerg Sonnenberger [Tue, 28 Sep 2004 16:22:41 +0000 (16:22 +0000)]
EVENTHANDLER_REGISTER uses the name of the event as string and therefore
the compiler couldn't detect the wrong event names. I used
ifnet_attach_event and ifnet_detach_event instead of ifnet_arrival_event
and ifnet_departure_event. This seemed to work for PF as module because
all existing interfaces are added by hand first.

Problem-reported-by: Aggelos Economopoulos <aoiko@cc.ece.ntua.gr>
18 years agoIncorporate Hye-Shik's work for numeric UTF-8 definitions.
Jeroen Ruigrok/asmodai [Tue, 28 Sep 2004 09:18:55 +0000 (09:18 +0000)]
Incorporate Hye-Shik's work for numeric UTF-8 definitions.

Provided by: Hye-Shik Chang <perky@FreeBSD.org>

18 years agoAdd Hye-Shik's UTF-8 message definitions.
Jeroen Ruigrok/asmodai [Tue, 28 Sep 2004 08:53:32 +0000 (08:53 +0000)]
Add Hye-Shik's UTF-8 message definitions.

Provided by: Hye-Shik Chang <perky@FreeBSD.org>

18 years agoVFS messaging/interfacing work stage 6/99. Populate and maintain the
Matthew Dillon [Tue, 28 Sep 2004 00:25:34 +0000 (00:25 +0000)]
VFS messaging/interfacing work stage 6/99.  Populate and maintain the
namecache pointers previously attached to struct filedesc, giving the new
lookup code a base from which to work.

Implement the new lookup API (it is not yet being used by anything) and
augment the namecache API to handle the new functions, in particular
adding cache_setvp() to resolve an unresolved namecache entry into a
positive or negative hit and set various flags.  Note that we do not yet
cache symlink data but we could very easily.

The new API is greatly simplified.  Basically nlookups need only returned
a locked namecache pointer (guarenteeing namespace atomicy).  Related
vnodes are not locked.  Both the leaf and governing directory vnodes can
be extracted from the returned namecache pointer.  namecache pointers may
also represent negative hits, which means that their namespace locking
feature serves to reserve a filename that has not yet been created (e.g.
open+create, rename).

The kernel is still using the old API as of this commit.  This commit is
primarily introducing the management infrastructure required to actually
start writing code to use the new API.

VOP_RESOLVE() has been added, along with a default function which falls back
to VOP_LOOKUP()/VOP_CACHEDLOOKUP().  This VOP function is not yet being used
as of this commit.  This VOP will be responsible for taking an unresolved
but locked namecache structure (hence the namespace is locked), and actually
does the directory lookup.  But unlike the far more complex
attach a vnode (or NULL if the entry does not exist) to the passed-in
namecache structure.  It is likely that timeouts, e.g. for NFS, will also
be attached via this API.

This commit does not implement any of the cache-coherency infrastructure
but keeps this future requirement in mind in its design.

18 years agoAdd Hye-Shik's UTF monetary defitions.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 20:02:21 +0000 (20:02 +0000)]
Add Hye-Shik's UTF monetary defitions.

This requires some reworking which will follow.

Provided by: Hye-Shik Chang <perky@FreeBSD.org>

18 years agoAdd zh_CN.GBK.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 19:39:33 +0000 (19:39 +0000)]
Add zh_CN.GBK.

18 years agoFix consistent mistake: CP1252 -> CP1251.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 19:37:31 +0000 (19:37 +0000)]
Fix consistent mistake: CP1252 -> CP1251.

18 years agoAdd collation definition for UTF-8.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 19:30:50 +0000 (19:30 +0000)]
Add collation definition for UTF-8.

Synchronised partially with FreeBSD.
Decided upon following Hye-Shik's original plan with a separate la_LN.UTF-8
even though it duplicates US-ASCII's contents, it is, however, much more
clear this way.

Provided by: Hye-Shik Chang <perky@FreeBSD.org>

18 years agoAdd la_LN.UTF-8.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 19:27:03 +0000 (19:27 +0000)]
Add la_LN.UTF-8.

18 years agoBe a coward and add ja_JP.EUC back in for now.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 18:43:58 +0000 (18:43 +0000)]
Be a coward and add ja_JP.EUC back in for now.

18 years agoAdd UTF-8 time definitions.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 14:44:33 +0000 (14:44 +0000)]
Add UTF-8 time definitions.

Synchronise Makefile with some FreeBSD changes made by Tim J. Robbins.

Provided by: Hye-Shik Chang <perky@FreeBSD.org>

18 years agoAdd en_GB.UTF-8.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 14:26:14 +0000 (14:26 +0000)]
Add en_GB.UTF-8.

18 years agoPrepare for the locale additions.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 12:54:03 +0000 (12:54 +0000)]
Prepare for the locale additions.

18 years agoAdd the Unicode 3.2 ctypes table.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 06:03:48 +0000 (06:03 +0000)]
Add the Unicode 3.2 ctypes table.

Provided by: Hye-Shik Chang <perky@FreeBSD.org>

18 years agoChange to use USB_PRODUCT_LINKSYS2_USB200M.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 05:57:58 +0000 (05:57 +0000)]

18 years agoChange SYNOPSYS to SYNOPSYS2 and regenerate.
Jeroen Ruigrok/asmodai [Mon, 27 Sep 2004 05:30:16 +0000 (05:30 +0000)]
Change SYNOPSYS to SYNOPSYS2 and regenerate.

18 years agoMinor cleanups to TIMER_USE_1 (no real fixes or anything).
Matthew Dillon [Mon, 27 Sep 2004 04:04:09 +0000 (04:04 +0000)]
Minor cleanups to TIMER_USE_1 (no real fixes or anything).

18 years agoVFS messaging/interfacing work stage 5b/99. More cleanups, remove the
Matthew Dillon [Sun, 26 Sep 2004 20:14:21 +0000 (20:14 +0000)]
VFS messaging/interfacing work stage 5b/99.  More cleanups, remove the
(unused) ni_ncp and ni_dncp from struct nameidata.  A new structure will
be used for the new API.

18 years agoClarify an element in the BUGS section related to the sticky bit.
Matthew Dillon [Sun, 26 Sep 2004 19:16:41 +0000 (19:16 +0000)]
Clarify an element in the BUGS section related to the sticky bit.

Brought-to-attention-by: =?ISO-8859-1?Q?Jonas_Sundstr=F6m?= <jonas@kirilla.com>
18 years agoRegenerate.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 18:18:54 +0000 (18:18 +0000)]

18 years agoAdd some more vendors and some HP devices.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 18:18:13 +0000 (18:18 +0000)]
Add some more vendors and some HP devices.

18 years agoBe consistent in the white space usage.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 17:58:02 +0000 (17:58 +0000)]
Be consistent in the white space usage.

18 years agoBump to WARNS 6.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 17:40:17 +0000 (17:40 +0000)]
Bump to WARNS 6.

Reminded by: Sascha Wildner

18 years agoRegenerate.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 17:03:27 +0000 (17:03 +0000)]

18 years agoAdd Wacom Graphire 3.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 17:02:37 +0000 (17:02 +0000)]
Add Wacom Graphire 3.

18 years agoForced commit:
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 16:32:47 +0000 (16:32 +0000)]
Forced commit:

Submitted by: Sascha Wildner

18 years agoBump WARNS to 6.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 16:32:12 +0000 (16:32 +0000)]
Bump WARNS to 6.

Put external declarations where they are supposed to go.

18 years agoBump to WARNS 6.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 16:29:49 +0000 (16:29 +0000)]
Bump to WARNS 6.
Use tmpsin instead of sin to avoid conflicts.

Submitted by: Sascha Wildner

18 years agoFix author name with .An macro. Add missing period.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 16:25:42 +0000 (16:25 +0000)]
Fix author name with .An macro.  Add missing period.

Submitted by: Sascha Wildner

18 years agoRegenerate.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 16:14:17 +0000 (16:14 +0000)]

18 years agotsptype is an array of character constants, declare it as such.
Joerg Sonnenberger [Sun, 26 Sep 2004 16:09:48 +0000 (16:09 +0000)]
tsptype is an array of character constants, declare it as such.

Submitted-by: Sascha Wildner
18 years agoBump WARNS to 6.
Jeroen Ruigrok/asmodai [Sun, 26 Sep 2004 16:09:13 +0000 (16:09 +0000)]
Bump WARNS to 6.
Move WARNS under PROG in test.
Remove commented MLINKS in varsym, it is automatically handled through PROG.