Semen Ustimenko [Fri, 3 Dec 1999 20:37:40 +0000 (20:37 +0000)]
Merged NetBSD version, as they have done improvements:
1. ntfs_read*attr*() functions now accept
uio structure to eliminate one data copying.
2. found and removed deadlock caused
by 6 concurent ls -lR.
3. started implementation of nromal
Unicode<->unix recodeing.
Avoid hardcoding any paths and variables. The include directory must
now be specified on the command line. Accept a '-s' option which
controls whether a switch-statement is to be used instead of a series
of if-statements.
Matthew N. Dodd [Fri, 3 Dec 1999 08:41:24 +0000 (08:41 +0000)]
Remove the 'ivars' arguement to device_add_child() and
device_add_child_ordered(). 'ivars' may now be set using the
device_set_ivars() function.
This makes it easier for us to change how arbitrary data structures are
associated with a device_t. Eventually we won't be modifying device_t
to add additional pointers for ivars, softc data etc.
Despite my best efforts I've probably forgotten something so let me know
if this breaks anything. I've been running with this change for months
and its been quite involved actually isolating all the changes from
the rest of the local changes in my tree.
Brian Somers [Fri, 3 Dec 1999 06:33:10 +0000 (06:33 +0000)]
Be careful not to re-initialise `struct stat' while it still has
a running timer. This fixes a problem where a dial is manually
aborted, the hangup script kicks in and the chat timer ends up
on the timer queue twice (tick tick tick tick *boom*)
Nick Hibma [Fri, 3 Dec 1999 01:34:42 +0000 (01:34 +0000)]
Fix the 'usb0: USB revision unknown, not supported' people have been seeing
by identifying the version in the PCI drivers.
The OHCI driver just presets this to 1.0 as it is not specified in the
PCI registers anywhere. This should be revisited once USB 2.0 is in
wide spread use.
Archie Cobbs [Fri, 3 Dec 1999 00:28:06 +0000 (00:28 +0000)]
A better version of the previous checkin. If the user specifies
a custom file that could override a FreeBSD file under a different
configuration, but doesn't under this one, give a different warning.
Archie Cobbs [Thu, 2 Dec 1999 23:43:08 +0000 (23:43 +0000)]
When specifying additiona user-specified kernel compilation source
files in a 'files.XXX' file, config allows non-FreeBSD source files
with the same name as a FreeBSD source file to override the latter,
and in this situation it issues a warning.
However, if one of the user-specified files is actually a FreeBSD
source file (perhaps your kernel has some custom option that requires
that file), config mistakenly thinks it's a completely new file
and goes ahead and overrides all previous information for that file
(and issues the warning).
Sheldon Hearn [Thu, 2 Dec 1999 17:46:17 +0000 (17:46 +0000)]
Reserve #137 for nCipher's nFast PCI hardware cryptographic
accelerator, for which open source drivers are under development,
for John Hartley <john@ncipher.com>.
Nick Hibma [Thu, 2 Dec 1999 16:43:18 +0000 (16:43 +0000)]
In one queue all the TDs (transfer descriptor, packets) for one transfer
are queued. Traverse the queues vertically and then horizontally.
This means that TDs for one xfer are transmitted back to back until the
first NAK or error condition. Up to now we transmitted a TD per frame
and transmitted the next TD in the next frame.
The old approach is more fair if you have the end of the queue point at
the beginning of the control transfer queue, but also a lot more overhead
due to the fact that the QHs have to be read more often.
The new approach squirts the packets down the line as fast as possible
for one transfer and then does the next one. In the current situation,
with fairly empty USB buses, this is a more sensible approach. We might
have to revisit the scheduler later however.
It speeds up large transfers (Zip drive, Host-To-Host adapters) on UHCI
by a factor of 5 and makes it as fast as OHCI on the bus.
The next problem to solve is the question why the limit is 300kb/s and
not 1000/kb/s (kb == kilobyte).
Sheldon Hearn [Thu, 2 Dec 1999 16:39:15 +0000 (16:39 +0000)]
Replace the -q option to pwd_mkdb with a test for PW_SCAN_BIG_IDS in
the environment. This allows big ID warnings to be suppressed for
vipw and chpass as well.
Since the environment variable test is only performed for callers
of pw_scan() that do not set pw_big_ids_warning, the test can still
be overriden. Currently, chpass and pwd_mkdb are the only users
of pw_scan() and neither of them overrides the environment variable
test.
Make sure DESTDIR is set in the environment of mkioctls. This fixes
the breakage people have encountered at certain times (for example
when the altq_*.h files were removed).
Mike Smith [Thu, 2 Dec 1999 09:16:02 +0000 (09:16 +0000)]
Updates for 4.x:
- Add AMI and Mylex RAID controllers
- Reflect the demise of the 'eg' and 'ft' drivers
- Various minor cleanups
- Add some initial Microchannel information (this could do with some
fleshing out)
Warner Losh [Thu, 2 Dec 1999 05:57:50 +0000 (05:57 +0000)]
[[ First attempt used -m /tmp/msg rather than -F /tmp/msg ]]
Kernel portion of pccardc power virtual power interface (it helps me
test). Patch was originally from mihira-san in message to
freebsd-mobile. I reworked it a little and tested it here. He ported
the code originally from PAO.
Warner Losh [Thu, 2 Dec 1999 05:52:58 +0000 (05:52 +0000)]
Implement pccardc power command. This allows one to power off
individual slots at one's whim. Useful for turning the slots into
card carrying cases, etc. Patch was originally from mihira-san in
message to freebsd-mobile. He ported the code originally from PAO.
Jonathan Lemon [Thu, 2 Dec 1999 03:25:19 +0000 (03:25 +0000)]
Change the delayed ack time from 200ms to 100ms.
This results in closer behavior to earlier versions, where the fixed
200ms timer actually resulted in a delay anywhere from 1..200ms, with
the average delay being 100ms.
Mike Smith [Thu, 2 Dec 1999 02:53:08 +0000 (02:53 +0000)]
Add the AMI MegaRAID and Mylex DAC960 drivers. Installation to arrays
on these controllers is now no different to the process for any other
supported disk controller.
Archie Cobbs [Wed, 1 Dec 1999 23:11:58 +0000 (23:11 +0000)]
Use m_dup() instead of m_copypacket() to duplicate the mbuf chain.
This fixes a bug where if the original packet was modified downstream
of the tee node, then the copy could get modified too.
Archie Cobbs [Wed, 1 Dec 1999 22:31:32 +0000 (22:31 +0000)]
The functions m_copym() and m_copypacket() return read-only copies,
because in the case of mbuf clusters they only increment the reference
count rather than actually copying the data.
Add comments to this effect, and add a new routine called m_dup() that
returns a real, writable copy of an mbuf chain.
This is preliminary work required for implementing 'ipfw tee'.
Kirk McKusick [Wed, 1 Dec 1999 19:33:12 +0000 (19:33 +0000)]
Preferentially allocate the first indirect block in the same
cylinder group as the inode. This makes a 15% difference in
read speed for files in the 96K to 500K size range.
Sheldon Hearn [Wed, 1 Dec 1999 16:25:24 +0000 (16:25 +0000)]
Cosmetic changes to comments:
* Bring source file references in line with the style used in
GENERIC (i.e. src/sys/...).
* Update outdated source file references.
* Use proper URL syntax for URLs.
* Update outdated URLs.
PR: 15194
Submitted by: jedgar@fxp.org (Chris D. Faulhaber)
Warner Losh [Wed, 1 Dec 1999 07:38:54 +0000 (07:38 +0000)]
Fix the hang on card eject problem and maybe the hang on suspend
problem.
o Create new timeout routine so we don't detach the card inside a ISR
but instead drop back to spl0 via a timeout of 0.
o Actually delete the child of the pccard device rather than just faking
it badly.
o Fix sio, ed and ep to have pccard detach routines that are int rather
than void.
o Fix ep and ed pccard detach routines to use if_detach rather than just
if_down. if_detach destroys the device, while if_down just marks it
down. In this incarnation of the pccard things, we map the disable
the slot action to detach the driver, which removes the driver from the
device tree. When that is done, a panic would soon follow as the
ifconfig tried to down the device.
Didn't fix:
o Should cache the pccard dev child's pointer in struct slot
o remove now unused parts of struct slot
o Any driver using softc after detach has been called. sio's softc used
to be statically allocated, so you could check sc->gone, but that is
now gone.
o Didn't remove gone from softc of drivers that use the old pccard method.
Didn't test:
o ed driver changes
o sio driver changes on pccards
o suspend (no laptop or apm support on my desktop)
Brian Feldman [Wed, 1 Dec 1999 02:25:19 +0000 (02:25 +0000)]
Separate some common sysctl code into sysctl_find_oid() and calling
thereof. Also, make the errno returns _correct_, and add a new one
which is more appropriate.
Kirk McKusick [Wed, 1 Dec 1999 02:09:30 +0000 (02:09 +0000)]
Collect read and write counts for filesystems. This new code
drops the counting in bwrite and puts it all in spec_strategy.
I did some tests and verified that the counts collected for writes
in spec_strategy is identical to the counts that we previously
collected in bwrite. We now also get read counts (async reads
come from requests for read-ahead blocks). Note that you need
to compile a new version of mount to get the read counts printed
out. The old mount binary is completely compatible, the only
reason to install a new mount is to get the read counts printed.
Brian Somers [Tue, 30 Nov 1999 23:52:37 +0000 (23:52 +0000)]
Change the way we transfer links (again). The previous
method avoided all race conditions, but suffered from
sometimes running out of buffer space if enough clients
were piled up at the same time.
Now, the client pushes the link descriptor, one end of a
socketpair() and the ppp version via sendmsg() at the
server. The server replies with a pid. The client then
transfers any link lock with uu_lock_txfr() and writev()s
the actual link contents. The socketpair is now the only
place we need to have large socket buffers and the bind()ed
socket can keep the default 4k buffer while still handling
around 90 racing clients.