lots of data, e.g. ~18k on a PCI system with few add-in devices; use
with MSGBUFSIZE=...). Useful to have here so that people who want as
much data about the PCI configuration in a machine can get it without
having to craft their own code. Also, clean up a few of the other
#if 0'd printfs.
* print all configuration space registers. Then, where possible,
interpret them. (That is, PRESENT ALL THE DATA, then interpret it --
don't hide data behind interpretation. Also, when interpreting
fields, try to print out the specific value that's being interpreted.)
* handle different header types.
* allow caller to specify a function which can interpret the
device-dependent header and is responsible for pretty-printing it.
It spews (use 'options MSGBUFSIZE=...' 8-), but when you want the data,
you really want _all_ of it.
Still needs some cleanup and additional code (e.g. interepretation
of PCI-PCI (type 1) and PCI-Cardbus (type 2(?)) bridge headers).
pci_mapreg_info() call. pci_mapreg_map() implies this check,
but code which calls pci_mapreg_info() has to check it explicitly.
Otherwise, if memory space is disabled, the driver does the wrong
thing, and tries to use memory space anyway, potentially resulting
incorrect driver operation and no useful error message.
* we already have the vnode interlock, so vref() should not ask for it again.
* we call VOP_RECLAIM/VOP_INACTIVE(), which shouldn't be duplicated in vrele().
The graphics device driver passes a "default attribute" for normal text
output to the wscons framework. If the emulation module needs more
attributes (for different "renditions") it can allocate them via a
callback.
For now, only the "sun" emulation makes use of it.
-initialize errno to 0 before receiving
-minimal allowed packet size is 4 (empty data packet)
-Be nice to the TFTP server - tell it that the transfer is finished
(additinal ACK at EOF, ERROR otherwise). Otherwise, it will linger
around and retransmit. This can be left out (TFTP_NOTERMINATE) if we
are really short on space.
fixes problem reported by Ken Nakata <kenn@synap.ne.jp> on the mac68k
where the stack amap chunking caused entry->end to wrap around to zero,
thus corrupting the map entry list and causing kmem_map to fill.
interrupt routing directly, use the interrupt routing information provided
in the PCI "line" register. The previous scheme did not work properly on
AlphaPC 164SXs. Also, be silent about the fact that 0/8/x does not
have its interrupt mapped; this is to be expected on the 164SX (this is
the Cypress PCI-ISA bridge, which has IDE wired to compat mode on functions
1 and 2; the 164SX does _not_ have PCI IDE on device 11 like other AlphaPCs).
write protection. this stops data corruption where it was possible
to change the in-memory copy of an append-only file (but not the on-disk
copy). this is documented in NetBSD security advisory 1998-003. thanks
to darrenr, lukem, cgd, mycroft and mrg for this.
problem was. A collision between a select and reselect would leave TC
non-zero from the command-out DMA count, which could later be considered
a fatal condition, causing a reboot. The message for that error was
only displayed with DEBUG. Fixed by clearing TC on a reselect. The
non-zero TC detection won't occur in this case, so unconditionally
display the message if it occurs.
Workaround for another problem that resulted from an "Illegal Command"
status from the 53c94 which would get ignored and result in a timeout
(which also reboots the system). Added the missing check for the
illegal command status, and add the workaround of resending the "accept
message" command to the 53c94. Correct fix will be to determine why the
message wasn't sent in the first place. Abort if the resending the
command doesn't work.
Correctly detect a spurious interrupt and ignore it. This was taken
from a newer Mach driver, but did not get the check converted for the
design difference between the current NetBSD driver and the Mach driver.
controllers (including SCSI id 7 on the 2100/3100).
- On the pmax (2100,3100) set the host SCSI id to 6.
- Move disk and tape config for the second ASC controller from the GENERIC
config file to scsi.pmax so all configurations can use the second
controller.
member to the DMA tag, and calling the direct-mapped back-ends directly,
rather than through chipset-specific front-ends which pass the window
base as an additional argument.
are recognized but not supported (yet). (HP-UX and Solaris extension)
* Const'ify the `shmaddr' pointer arguments to shmat() and shmdt().
* Change the `size' argument to shmget() from int to size_t.
* Move MAX_SOPS inside _KERNEL protection; it's not portable and has a
meaning within semop() only.
* semop(): change the `nsops' argument type from int to size_t.
* Add _XOPEN_SOURCE protection around semconfig().
- Don't use home-grown queue manipulation. Use <sys/queue.h> instead. The
data structures are a little larger, but we are otherwise wasting the
memory chunk anyway (we're already a 64-byte malloc bucket).
- Fix a bug in the cache-is-full case: if the oldest element removed from
the first non-empty bucket was the only element in the bucket, the
bucket wouldn't be removed from the bucket cache, causing queue corruption
later.
- Optimize the syn cache timers by using PRT timers rather than home-grown
decrement-and-propagate timers.
This code is now a fair bit smaller, and significantly easier to read
and understand.
there is one. The Mach VM system seems to take care of this, so it
hasn't knowingly caused a problem. UVM does change mappings without
removing the current mapping, and will pmap_page_protect() hangs
if pmap_enter() doesn't remove the previous mapping.
* Require either _KERNEL or _LKM being defined in addition to COMPAT_SUNOS
to make SA_USERTRAMP visible, since COMPAT_* isn't a reserved name outside
the NetBSD kernel world.
using separate flag bits for mappings that were requested to be not
cacheable and uncacheable pages due to incongruent aliases.
This avoids inadvertently turning on the cache-enable bits when removing
one of multiple virtual address mappings to the same page. Reading
from /dev/mem could do this to arbitrary pages.
the protocol dispatch layer for TCP timers. This saves having to
modify a potentially large number of timer values (which were shorts,
and expanded to ... a lot of code on the Alpha).
* pull in <sys/types.h>, since the synopsises of several functions declared
here state that it's safe to assume the presence of several types,
* since the timespec-based variant of struct stat is only used in absence
of _POSIX_SOURCE or _XOPEN_SOURCE, pull in <sys/time.h> for struct timespec
only if neither is defined, and
* reorganize and finish name space protection.
and i/o enabled) should be passed to the primary PCI bus's autconfiguration
node. Use this function to detect broken PCI-Host bridges, which have
problems with memory-mapped access. Add the SIS 85C496 to this list.
it implemented under the label `shortcut:' and only use it in these
cases: (1) after successful re-relection, (2) after receiving command-complete
status, and (3) during message-in handshake.
for front-ends to override the allocation to avoid alignment
handling in their DMA engines. Note that that ncr53c9x_msgout()
can request a 1 byte DMA transfer that would be difficult to break up.
- kern/5381 (Dennis Ferguson): check IP header checksum in fast forward
code.
- In ipflow_slowtimo(), if no IP flows are in use, don't bother checking
all of the hash buckets.
as console input. (Previously, it did always succeed.)
(closes PR kern/5372 by Jason R Thorpe)
Make error messages cleaner and add some "#ifdef DEBUG" to reduce noise.
needs some testing, but it seems to produce sound. The driver was written
by me, but since I don't have the hardware the debugging and testing was
done by Andreas Gustafsson <gson@araneus.fi>, Chuck Cranor
<chuck@maria.wustl.edu>, and Phil Nelson <phil@cs.wwu.edu>. Thanks.
a change marked XXX, where gcc -Wall pointed out a bit of the original
code that looked wrong. The jury's still out on whether or not it was
really wrong, but it looked _very_ suspicious.)
Reference Design NetBSD source code, obtained from the pages under
http://www.research.digital.com/SRC/iag . Some of this code (badly)
needs to be cleaned up, and as-is it doesn't compile. However, getting
it in the tree is a start.
or not rather than orring in a USER bit into the fault code variable.
This simplifies the fault switch statement and some of the addition
checks that are made of the fault code.
Move the printing of data abort information out into a separate function
rather then duplicating a lot of similar printf() statements.
Removed the fault_code variables from the prefetch abort handler as it
is not actually used for anything.
flow, by setting the "can fast forward" flag in the packet header, and
giving a chance for filters to clear the flag. If the flag is still
set after the filters have given it a chance, the packet will be used
to create a fast-forward flow entry.
later incremented correctedly, causing the wrong data to be paged out, which
then caused general lossage later when the data was paged in and the process
tried to use it. found by pk.
Page tables no longer occupy space in the processes vm_map. This
means that page tables can now be allocated from pmap_enter() when the
first entry is made in the page table rather than relying on taking
a section fault and faulting in a page table. This also lowers
the overheads in creating and deleting page tables and simplfies
cpu_fork().
A result of this change is that problems with mapping zero page and
an associated pagetable when execing from a shared vm_map disappear
fixing PR5178.
the burst size allowed, but rather a fixed number of packets, as
described in the Internet Draft. Default allowed burst is 4 packets,
per the Draft.
Make the use of CWM and the allowed burst size tunable via sysctl.
the "header already complete" flag. This allows BPF writers to spoof
layer 2 source addresses (providing the layer 2 in use supports it) in
applications where this is necessary. From Greg Smith <greg@nas.nasa.gov>.
use the Ethernet source address speficied in the sockaddr rather than
the interface's Ethernet address, and then fall through to the AF_UNSPEC
case. From Greg Smith <greg@nas.nasa.gov>.
if_fddisubr.c to fastpath IP forwarding. If ip_forward successfully
forwards a packet, it will create a cache (ipflow) entry. ether_input
and fddi_input will first call ipflow_fastforward with the received
packet and if the packet passes enough tests, it will be forwarded (the
ttl is decremented and the cksum is adjusted incrementally).
conditional (tcp_compat_42). The kernel config option TCP_COMPAT_42
will still enable this by default, or disable this by default if the
option is not included (i.e. current behavior). This will be made a
sysctl soon.
Cute buglet: you can end up with zero CCBs if there were no targets
seen by the adapter. Always leave a minimum so the adapter can
finish attaching- it may be there w/o targets for a reason.
rule was to update the timestamp if the sequence numbers are in range. New
rule adds a check that the timestamp is advancing, thus preventing our notion
of the most recent timestamp from incorrectly moving backwards.
function is meant to glue the new pckbd driver to the old console code
on ports which use the old PC-style console code. This will eventually
be purged when all of the old legacy consoles have gone away.
all of the fragments. Use the mtu of route in preference of the MTU of the
interface when doing fragmentation decisions. (ie. Fragment to the path
mtu if it is available).
function is intended to process any deferred pmap operations, and is not
meant as a general means of flushing the TLB. Since this pmap module does
not defer any operations, make pmap_update() do nothing.
caller to pass an optional 3rd argument, which is the previous level
PTE corresponding the virtual address. If this argument is non-NULL,
the table walk otherwise necessary will be bypassed.