"Implement -[n]fcb (formatting of block comments) and attempt to implement
no-space=after-sizeof (not optional) and no-space-after 'struct foo *'
(not optional). Without these, indent unKNFizes even more perfectly KNF code."
Mike Smith [Sat, 9 Dec 2000 09:15:38 +0000 (09:15 +0000)]
- Fix the device database parsing code so that it actually works.
- Improve the formatting for devices identified by the database.
- Fix the pcib_route_interrupt method definition, as an old version
snuck in here somehow 8(
- Remove a couple of the vendor/device IDs for PCI:ISA bridges which
correctly identify themselves.
Mike Smith [Fri, 8 Dec 2000 22:11:23 +0000 (22:11 +0000)]
Next phase in the PCI subsystem cleanup.
- Move PCI core code to dev/pci.
- Split bridge code out into separate modules.
- Remove the descriptive strings from the bridge drivers. If you
want to know what a device is, use pciconf. Add support for
broadly identifying devices based on class/subclass, and for
parsing a preloaded device identification database so that if
you want to waste the memory, you can identify *anything* we know
about.
- Remove machine-dependant code from the core PCI code. APIC interrupt
mapping is performed by shadowing the intline register in machine-
dependant code.
- Bring interrupt routing support to the Alpha
(although many platforms don't yet support routing or mapping
interrupts entirely correctly). This resulted in spamming
<sys/bus.h> into more places than it really should have gone.
- Put sys/dev on the kernel/modules include path. This avoids
having to change *all* the pci*.h includes.
Bill Paul [Fri, 8 Dec 2000 21:35:11 +0000 (21:35 +0000)]
Fix probe/attach a little. We don't have to call bpfattach() anymore
since ether_ifattach() does it for us. We do need to call ether_ifdetach()
instead of if_detach(). And we don't have to check for ifp->if_name
already being initialized because it never will be in FreeBSD 4.x and
above.
Jason Evans [Fri, 8 Dec 2000 20:36:32 +0000 (20:36 +0000)]
Do not check for existence of ${_dir}/kern/ , because for modules that set
.PATH to ${.CURDIR}/[...]/kern , the "exists" expression will fail for the
form exists(${.CURDIR}/[...]/kern/). This appears to be happening because
make is searching for the argument to "exists" by using .PATH rather than a
relative search, because .PATH and the argument match at the beginning.
Additionally, make appears to consider a path that starts with ${.CURDIR}
as relative, even though it expands to an absolute path.
The reason that most people aren't seeing this problem is that the absolute
paths of /usr/src/sys and /sys are also searched, so as long as the kernel
source can be found in at least one of those places, no problems surface.
This problem was inadvertently introduced on 1 December 2000, with the
addition of the sysvipc modules.
John Baldwin [Fri, 8 Dec 2000 18:21:06 +0000 (18:21 +0000)]
Argh, revert the clobber changes. Since %ecx and %edx aren't call safe,
calling the C functions mtx_enter_hard() and mtx_exit_hard() clobbers them.
Note that %eax is also not call safe, but it is already clobbered due to
cmpxchg. However, now we are back to not compiling again, so these macros
are still left disabled for now.
Jake Burkholder [Fri, 8 Dec 2000 09:51:13 +0000 (09:51 +0000)]
Whitespace. Make the indentation for MPASS and MPASS2 consistent and
slightly more sane. Make the arguments to the nop MPASS2 match those
of the functional one. Change 4 spaces to a tab. Don't indeent a
label so its easier to see.
Jake Burkholder [Fri, 8 Dec 2000 09:17:16 +0000 (09:17 +0000)]
Add macros MPASS3 and MPASS4, which take the file and line number
as parameters. Use them in the mutex inlines so that the file and
line numbers are those of the caller instead of always in this file.
Mike Smith [Fri, 8 Dec 2000 09:16:20 +0000 (09:16 +0000)]
- Convert a lot of homebrew debugging output to use the ACPI CA debugging
infrastructure. It's not perfect, but it's a lot better than what
we've been using so far. The following rules apply to this:
o BSD component names should be capitalised
o Layer names should be taken from the non-CA set for now. We
may elect to add some new BSD-specific layers later.
- Make it possible to turn off selective debugging flags or layers
by listing them in debug.acpi.layer or debug.acpi.level prefixed
with !.
- Fully implement support for avoiding nodes in the ACPI namespace.
Nodes may be listed in the debug.acpi.avoid environment variable;
these nodes and all their children will be ignored (although still
scanned over) by ACPI functions which scan the namespace. Multiple
nodes can be specified, separated by whitespace.
- Implement support for selectively disabling ACPI subsystem components
via the debug.acpi.disable environment variable. The following
components can be disabled:
o bus creation/scanning of the ACPI 'bus'
o children attachment of children to the ACPI 'bus'
o button the acpi_button control-method button driver
o ec the acpi_ec embedded-controller driver
o isa acpi replacement of PnP BIOS for ISA device discovery
o lid the control-method lid switch driver
o pci pci root-bus discovery
o processor CPU power/speed management
o thermal system temperature detection and control
o timer ACPI timecounter
Multiple components may be disabled by specifying their name(s)
separated by whitespace.
- Add support for ioctl registration. ACPI subsystem components may
register ioctl handlers with the /dev/acpi generic ioctl handler,
allowing us to avoid the need for a multitude of /dev/acpi* control
devices, etc.
Jake Burkholder [Fri, 8 Dec 2000 08:49:36 +0000 (08:49 +0000)]
Change the calling conventions of the MTX_ENTER macro to match
that of MTX_EXIT. Don't assume that the reg parameter to MTX_ENTER
holds curproc, load it explicitly. Put semi-colons at the end of
the macros to be more consistent and so its harder to forget them
when these change.
John Baldwin [Fri, 8 Dec 2000 05:03:34 +0000 (05:03 +0000)]
Well, the previous commit wasn't entirely correct either. For now, just
disable the optimized mutex micro-operations for the non-I386_CPU case
and fall back to the C stubs that call the atomic_foo() inlines.
Paul Saab [Fri, 8 Dec 2000 05:02:12 +0000 (05:02 +0000)]
When TFTP tries to open a file, it is expecting struct open_file
member f_devdata to be a pointer to a socket number. When currdev
is "pxe", that assumption is correct. When currdev is "disk*", that
assumption is incorrect.
John Baldwin [Fri, 8 Dec 2000 00:58:54 +0000 (00:58 +0000)]
Add comments to the proc structure to describe how each member will be
locked. This list is subject to change, but hopefully many changes will
not have to be made.
Bill Paul [Thu, 7 Dec 2000 23:30:51 +0000 (23:30 +0000)]
When I converted this driver, I neglected to deal with packet alignment.
We must force payload alignment to a longword boundary to make the
alpha happy. This should stop the driver from trapping on the alpha
when the interface is ifconfig'ed (actually, when the first frame is
received).
Mike Smith [Thu, 7 Dec 2000 10:56:29 +0000 (10:56 +0000)]
Add a PCI vendor/device database, used by pciconf (and available for use
by other tools as well).
Note that omissions and corrections for this file should be resolved
via http://www.yourvote.com/pci, as this is the master source for this
database, rather than by editing this file directly.
Mike Smith [Thu, 7 Dec 2000 10:52:59 +0000 (10:52 +0000)]
Update to improve handling of verbose PCI vendor/device information.
- Read the database from /usr/share/misc (or wherever else we're pointed)
rather than compiling it in.
- Decode the class/subclass fields if requested.
- Print things in a slightly longer but more readable format.
Roger Hardiman [Thu, 7 Dec 2000 10:28:25 +0000 (10:28 +0000)]
Add Isochronus transfer mode support required by
USB WebCams, using a patch from Peter Housel.
With this change ugen, and with Peter's 'vid' program
in ports/graphics/vid, we can capture single images from USB Cameras
using the OmniVision OV511 chipset (including some models of the
Creative WebCam 3)
NetBSD merged in Peter's patch to their ugen.c file
several months ago, so this brings us back in line.
Submitted by: Peter Housel <housel@acm.org>
http://members.home.com/housel/
Approved by: Nick Hibma
Andrew Gallatin [Thu, 7 Dec 2000 01:06:19 +0000 (01:06 +0000)]
Partially re-write T2 chipset support based on Tru64 platform support
files which Compaq open-sourced (with a BSD license).
This commit adds support for proper PCI interrupt mapping and much
better support for swizzling between "standard" isa IRQs and the stdio
irqs used by the t2. This also adds enabling/disabling/eoi support
for AlphaServer 2100A machines. The 2100A (or lynx) interrupt
hardware is is very different (and much nicer) than the 2100.
Previously, only AS2100 and AS2000 machines worked.
This commits also lays the groundwork for supporting ExtIO modules.
These modules are essentially a second hose. This work is left
unfinished pending testing on real hardware. Wilko tells me that
ExtIO modules are quite rare, and may not actually exist in the wild.
Backout the previous delta (rev 1.4), it didn't make any difference.
If the requested handle is NULL then don't add it to the list of
objects, to be found by handle.
The problem is that when asking for a NULL handle you are implying
you want a new object. Because objects with NULL handles were
being added to the list, any further requests for phys backed
objects with NULL handles would return a reference to the initial
NULL handle object after finding it on the list.
Basically one couldn't have more than one phys backed object without
a handle in the entire system without this fix. If you did more
than one shared memory allocation using the phys pager it would
give you your initial allocation again.
Matthew Dillon [Wed, 6 Dec 2000 20:55:09 +0000 (20:55 +0000)]
Add necessary bwillwrite() in writev() entry point.
Deal with excessive dirty buffers when msync() syncs non-contiguous
dirty buffers by checking for the case in UFS *before* checking for
clusterability.
Ruslan Ermilov [Wed, 6 Dec 2000 17:02:33 +0000 (17:02 +0000)]
Install the stock (as supplied by groff(1) distribution) tmac.an
and tmac.andoc files. The man(1), catman(1) and bsd.man.mk have
been modified to call groff(1) with -mandoc argument.
Somewhere along the line, I misunderstood the whole FTP_PASSIVE_MODE debate
and had libfetch selecting passive mode even when FTP_PASSIVE_MODE was not
set at all, which is really quite surprising unless you know about it. So
change it to the agreed default behaviour of selecting passive mode if
FTP_PASSIVE_MODE is set, but not "no".