jhb [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 [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 [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.
msmith [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 [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.
jhb [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.
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.
jhb [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.
wpaul [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).
msmith [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.
msmith [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 [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
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.
alfred [Wed, 6 Dec 2000 21:52:23 +0000 (21:52 +0000)]
Really fix phys_pager:
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.
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.
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.
des [Wed, 6 Dec 2000 09:23:27 +0000 (09:23 +0000)]
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".
peter [Wed, 6 Dec 2000 06:59:38 +0000 (06:59 +0000)]
Simplify this a bit so that it doesn't have to generate silly redundant
__P() prototypes when an ansi-style static inline is a prototype already.
Since vnode_if.[ch] are generated on the fly, there are no CVS diffs to
mess up.
obrien [Wed, 6 Dec 2000 04:35:45 +0000 (04:35 +0000)]
Add back displaying the `world' start time when displaying the stop time.
However, don't prefix it with '>>>', so those greping for times will
not see it.
peter [Wed, 6 Dec 2000 03:47:14 +0000 (03:47 +0000)]
This is kind of a nasty hack, but it appears to solve the Compaq DL360
SMP problem. Compaq, in their infinite wisdom, forgot to put the IO apic
intpin #0 connection to the 8259 PIC into the mptable. This hack is to
look and see if intpin #0 has *no* table entry and adds a fake ExtInt
entry for the remap routines to use. isa/clock.c will still test the
interrupts. This entry is only ever used on an already broken system.
jhb [Wed, 6 Dec 2000 03:45:15 +0000 (03:45 +0000)]
Pass RFSTOPPED to fork1() in kthread_create() to avoid a race condition
where fork1() could put the process on the run queue where it could be
snatched up by another CPU before kthread_create() had set the proper
fork handler. Instead, we put the new kthread on the runqueue after its
fork handler has been sent.
deischen [Wed, 6 Dec 2000 03:15:49 +0000 (03:15 +0000)]
Cleanup XXXdir functions to eliminate global hash table of
telldir positions. This will allow (future) locking on a
per-DIR basis (for MT-safety). For now, this change does
the following:
o Remove the hash table from telldir.c. Recode to use queue
macros.
o Remove 'const' from 'telldir(const DIR *)'.
o Remove 'register' variables as suggested in a recent
thread.
deischen [Wed, 6 Dec 2000 03:14:28 +0000 (03:14 +0000)]
Add a LIST_HEAD to DIR for a queue of telldir positions.
Also add a location count (used as the magic for telldir)
to DIR. A future change will also add a mutex/lock.
jhb [Wed, 6 Dec 2000 02:01:56 +0000 (02:01 +0000)]
- Add in PROC_LOCK() and PROC_UNLOCK() macros. For now these do simple
mutex operations. In the future they may call functions that verify
correct locking order between processes in the INVARIANTS case.
- Lock the process in PHOLD() and PREL().
peter [Wed, 6 Dec 2000 01:04:02 +0000 (01:04 +0000)]
Move io_apic_{read,write} from apic_ipl.s (where they do not belong) into
mpapic.c. This gives us the benefit of C type checking. These functions
are not called in any critical paths and are not used by the interrupt
routines.
mjacob [Wed, 6 Dec 2000 00:52:28 +0000 (00:52 +0000)]
Restore a sense of cleanly supporting multiple platforms. That is,
place the LOCKing macros within the areas within if_wxvar.h that
is set aside for them. Put any platform specific data also in those
areas.
For ease of maintenance purposes, merge in the OpenBSD version codebase here.
alfred [Tue, 5 Dec 2000 22:22:24 +0000 (22:22 +0000)]
need to adjust allocation size to properly deal with non PAGE_SIZE
allocations, specifically with allocations < PAGE_SIZE when the code
doesn't work properly
jhb [Tue, 5 Dec 2000 20:23:43 +0000 (20:23 +0000)]
1. Several style cleanups:
- Whitespace fixes.
- Comment fixes (mostly capitalization and trailing periods).
- Reorderings to put variables all in the same place, function prototypes
sorted alphabetically, etc.
2. Removed unused and #ifdef'd out members from struct ithd.
3. Changed ESTCPULIM() to use an explicit (PRIO_MAX - PRIO_MIN) rather than
PRIO_TOTAL.
4. Remove <sys/lock.h> #include and resort #include's.
wilko [Tue, 5 Dec 2000 20:21:18 +0000 (20:21 +0000)]
Note that Symbios is the new owner of the NCR SCSI chip designs. And
that the document references to Symbios are ment to include NCR-stamped
chips as well.