Commit Graph

32893 Commits

Author SHA1 Message Date
David Greenman
9fcfb650d1 Oops, revert part of last fix. vm_pager_dealloc() can't be called until
after the pages are removed from the object...so fix the problem by
not printing the diagnostic for wired fictitious pages (which is normal).
1998-10-23 05:43:13 +00:00
David Greenman
356863eb01 Fixed two bugs in recent commit: in vm_object_terminate, vm_pager_dealloc
needs to be called prior to freeing remaining pages in the object so that
the device pager has an opportunity to grab its "fake" pages. Also, in
the case of wired pages, the page must be made busy prior to calling
vm_page_remove. This is a difference from 2.2.x that I overlooked when
I brought these changes forward.
1998-10-23 05:25:49 +00:00
Kenneth D. Merry
ee9c90c75c Fix a problem with the way we handled device invalidation when attaching
to a device failed.

In theory, the same steps that happen when we get an AC_LOST_DEVICE async
notification should have been taken when a driver fails to attach.  In
practice, that wasn't the case.

This only affected the da, cd and ch drivers, but the fix affects all
peripheral drivers.

There were several possible problems:
 - In the da driver, we didn't remove the peripheral's softc from the da
   driver's linked list of softcs.  Once the peripheral and softc got
   removed, we'd get a kernel panic the next time the timeout routine
   called dasendorderedtag().
 - In the da, cd and possibly ch drivers, we didn't remove the
   peripheral's devstat structure from the devstat queue.  Once the
   peripheral and softc were removed, this could cause a panic if anyone
   tried to access device statistics.  (one component of the linked list
   wouldn't exist anymore)
 - In the cd driver, we didn't take the peripheral off the changer run
   queue if it was scheduled to run.  In practice, it's highly unlikely,
   and maybe impossible that the peripheral would have been on the
   changer run queue at that stage of the probe process.

The fix is:
 - Add a new peripheral callback function (the "oninvalidate" function)
   that is called the first time cam_periph_invalidate() is called for a
   peripheral.

 - Create new foooninvalidate() routines for each peripheral driver.  This
   routine is always called at splsoftcam(), and contains all the stuff
   that used to be in the AC_LOST_DEVICE case of the async callback
   handler.

 - Move the devstat cleanup call to the destructor/cleanup routines, since
   some of the drivers do I/O in their close routines.

 - Make sure that when we're flushing the buffer queue, we traverse it at
   splbio().

 - Add a check for the invalid flag in the pt driver's open routine.

Reviewed by:	gibbs
1998-10-22 22:16:56 +00:00
Mike Smith
16c0b5195c Honour the spirit rather than the implementation of the previous changes;
if we are invoked with -m, use chmod() on the final directory component
in order to ensure the mode is correctly set.
1998-10-22 21:42:20 +00:00
Mike Smith
8d35fb65a0 PnP BIOS enumerator; mostly useful for hunting PnP devices that are supported
by the system BIOS rather than supporting ISA PnP.
1998-10-22 20:25:06 +00:00
Mike Smith
051837da04 Add a dependancy on the BTX crt0 object
Add the biospnp handler to the pnp handler array
Drop some old debugging code
1998-10-22 20:23:58 +00:00
Mike Smith
13aedae3d7 Add biospnp.c 1998-10-22 20:23:15 +00:00
Mike Smith
f41c619d3d Pop the return address off the stack before making a V86_CALLF call;
this allows us to implement what look like C function calls from user
space "directly" to v86 mode code.  (Used for calling the PnP BIOS)
1998-10-22 20:22:07 +00:00
Mike Smith
60edbabff6 Export an interface for presetting the ISA PnP read port address.
Make the EISA ID formatter generally available
1998-10-22 20:20:51 +00:00
Bruce Evans
ee99f351b1 Fixed gratuitous unformatting in rev.1.8. 1998-10-22 18:17:30 +00:00
Bill Paul
c044afa986 Close PR #8409:
Fix syntax errors inside #ifdef FORCE_AUTONEG_TFOUR.
1998-10-22 16:46:26 +00:00
Bruce Evans
d0644dfc47 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Don't quote port names that don't have a digit in them.
1998-10-22 16:16:02 +00:00
Bruce Evans
c8e6b34794 FIxed a bogus comment. 1998-10-22 16:12:16 +00:00
Bruce Evans
64b2faf8a4 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Attempted to update the generated interrupt handler attachment to the
current "temporary" method.  Not tested.  To test it, someone would first
have to fix the bitrot in the ioctl command arg type.
1998-10-22 16:10:29 +00:00
Bruce Evans
17d1bf4260 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.
1998-10-22 15:53:06 +00:00
Bill Paul
447c20659b Close PR #8384:
Revert the transmission packet queueing strategy changes. Clearly I missed
something while debugging this, although I never encountered any problems
on my test machines.

Also make one other minor change: jack up the TX reclaim threshold for
3c90xB adapters in order to stave off 'transmission error: 82' errors.

Document the existence of the tx reclaim register (for inspecting the
current reclaim threshold) in register window 5 (if_xlreg.h).
1998-10-22 15:52:25 +00:00
Bruce Evans
43a2c34c47 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.
1998-10-22 15:39:35 +00:00
Bruce Evans
291adf9b21 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.
1998-10-22 15:31:33 +00:00
Bruce Evans
f94635b179 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Fixed some missing closing quotes.
1998-10-22 14:51:19 +00:00
Bruce Evans
14a7c8e1c4 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Quote the last few args to form 1 arg.  Quoting them in pairs almost
defeated the point of quoting them, which is to reduce the arg count
to <= 9.
1998-10-22 14:49:00 +00:00
Bruce Evans
6ba4894bca Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Don't quote IO_KBD.
1998-10-22 14:36:55 +00:00
Bruce Evans
f022d6d636 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Format "irq ?" the same as in other man pages.
1998-10-22 14:32:20 +00:00
Bruce Evans
9325e354ce Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Use .Cd instead of a a home made format.

Don't quote IO_KBD.
1998-10-22 14:29:03 +00:00
Bruce Evans
c1affd9f6c Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Fixed the port name, and don't quote it.  IO_NPX0 never existed.
1998-10-22 14:22:13 +00:00
Bruce Evans
7111303d00 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Fixed quoting of IO_ASC1.
1998-10-22 14:17:44 +00:00
Bruce Evans
f462839903 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.
1998-10-22 14:12:55 +00:00
Bruce Evans
4a04f6f613 Quote port names that have a digit in them. IO_TIMER1 was lexed as
{ port_name = "IO_TIMER", port_number = 1 } and only worked because
it was reassembled to "IO_TIMER1".  Trailing digits always work, but
this is too magic to depend on.

Don't quote port names that don't have a digit in them.
1998-10-22 13:49:51 +00:00
Bruce Evans
5985d44e83 Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.

Use the correct macro in configuration declarations.  .Cm somehow gave
the same results as .Cm.
1998-10-22 13:01:19 +00:00
Bruce Evans
78e33712bb Removed all `vector xxxintr' specifications. Interrupt handlers are now
configured in drivers.
1998-10-22 12:23:04 +00:00
Bruce Evans
fdf69a1788 Fixed the ifdef for `uart' driver being present. The sound-driver-specific
ifdef used in uart6850.c is bogus.

Reported by:	Paul Allenby <pallenby@mikom.csir.co.za>
1998-10-22 11:41:22 +00:00
KATO Takenori
b494420086 Added rl driver. 1998-10-22 11:29:58 +00:00
Luigi Rizzo
824f5b2e35 Fix behaviour of the driver with small files -- due to a stupid
bug sound was not played if the total amount of data written to
the device was less than one blocksize

Noticed by: NABETANI Masaki and FreeBSD-users-jp
1998-10-22 11:20:33 +00:00
Andrzej Bialecki
4d65f11c4c This is a copyrighted software. I forgot to include the license here.
Apologies to all parties involved -  it wasn't intended...

Reminded by:	bde
1998-10-22 11:16:41 +00:00
Bruce Evans
2d5e4a9b94 The previous change was much too simple to actually compensate for
braindamage in sound driver confiruration.  Attempt to only reference
interrupt handlers if their driver is configured.
1998-10-22 10:34:11 +00:00
Torsten Blum
ecc9d4571f oops, forgot to add his birthday 1998-10-22 07:56:22 +00:00
Torsten Blum
5990cc7824 Add Jon Postel's birth/death
PR: 8402
1998-10-22 07:40:05 +00:00
Bruce Evans
fe310de802 Initialize isa_devtab entries for interrupt handlers in individual
device drivers, not in ioconf.c.  Use a different hack in isa_device.h
so that a new config(8) is not required yet.

pc98 parts approved by: kato
1998-10-22 05:58:45 +00:00
Gary Palmer
a782a31edc s/boot2/loader/ on the alpha 1998-10-22 04:58:38 +00:00
Warner Losh
ad180a3533 Added Microsoft's PE formatted executables for mips, i386 and Alpha.
Also added entry for the debugger files as well.  The PE format is
used for all Win32 platforms (Win95, Win98, WinNT and WinCE), so it is
nice to be able to tell what kind of thing the foo.dll....  Don't have
any data for powerpc formats, however...
1998-10-22 04:41:34 +00:00
John Polstra
283c2d5af4 When the "-s" option is given, try to ensure that we restart the
target process even if we are killed or die due to an error.
1998-10-22 04:02:37 +00:00
Brian Somers
8fa6ebe47d Solve the ``first connection'' problem that occurs on
demand-dial links with dynamic IP numbers where the program
that causes the dial bind()s to an interface address that is
subsequently changed after ppp negotiation.

The problem is defeated by adding negotiated addresses to the
tun interface as additional alias addresses and providing a set
of ``iface'' commands for managing the interface.  Libalias is
also required (and what a name clash!) - it happily IP-aliases
the address so that the source is that of the primary (negotiated)
interface and un-IP-aliases it on the way back.

An ``enable iface-alias'' is done implicitly by the -alias command
line switch.  If -alias isn't given, iface-aliasing is disabled by
default and can't be enabled 'till an ``alias enable yes'' is done.
``alias enable no'' silently disables iface-alias.

So, for dynamic-IP-type-connections, running ``ppp -alias -auto blah''
will work for the first connection, although existing bindings will
not survive a disconnect/connect as the TCP peer will be trying to
send to the old IP address - the packets won't route.

It's now a lot easier to add IPXCP to ppp with minor updates to
the new iface.[ch] (if anyone ever gets 'round to it).

It's also now possible to manually add interface aliases with
something like ``iface add 1.2.3.4/24 5.6.7.8''.  This allows
multi-homed ppp links :-)
1998-10-22 02:32:50 +00:00
David Greenman
0b10ba9822 Make the VM system handle the case where a terminating object contains
legitimately wired pages. Currently we print a diagnostic when this
happens, but this will be removed soon when it will be common for this
to occur with zero-copy TCP/IP buffers.
1998-10-22 02:16:53 +00:00
David Greenman
c8cc6fca3c Defer rundown (m_freem) of completed transmit buffers for no longer
than 1 second.
1998-10-22 02:00:49 +00:00
David Greenman
24166bb84b Convert fake page allocs to use the zone allocator, thus eliminating the
private pool management code in here.
1998-10-22 01:45:29 +00:00
David Greenman
bb7db2c011 Set m->object to NULL in dev_pager_getfake(). 1998-10-21 23:06:50 +00:00
Mike Smith
b259863db2 Bye-bye setdefs. 1998-10-21 20:11:03 +00:00
Mike Smith
d8ef941c2f - Enable PnP and ISA PnP code.
- Use the ISA PnP enumerator.
 - Use the new linker set code, throw out the gensetdefs stuff.
 - Produce an intermediate loader image that has symbols stripped, to aid
 - in debugging.
 - Supply ISA port access functions required for ISA PnP
1998-10-21 20:10:33 +00:00
Mike Smith
c90625d230 Don't depend on being part of the kernel tree. If we are, use the kernel's
<machine> includes rather than the system's.
1998-10-21 20:07:57 +00:00
Mike Smith
eddbe21def Make ISA PnP work. This successfully enumerates as many ISA devices as I
can fit into my test machine.

 - Move to using STAILQs rather than ad-hoc singly-linked lists.
 - Use a mostly procedural interface to the PnP information.  This
   improves data-hiding.

Implement a new linker-set technique (currently on i386 only but should work
on Alpha as well).  This is a good candidate for replacing the current
gensetdefs cruft completely.
1998-10-21 20:07:05 +00:00
Andrzej Bialecki
7a3f627463 Added two new utilities, both ported from Minix: mined (editor), and
msh (largely compatible Bourne shell).
1998-10-21 17:36:28 +00:00