Commit Graph

160 Commits

Author SHA1 Message Date
minoura f4b1b4cef9 Do not use constants, but macros. 2001-05-02 12:50:24 +00:00
minoura 47d22455b3 Disable array chain mode by default, since it is unused by any of
the current devices.
Add more flexibility in the API.
2001-05-02 12:48:24 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
minoura fc97cb8a94 Correct memory leak.
Use single block transfer when appropriate.
2001-04-30 05:47:31 +00:00
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
chs ac3bc537bd eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>
2001-03-15 06:10:32 +00:00
minoura daa78d567e Make this compile again. 2001-02-21 05:44:32 +00:00
thorpej 043e519d55 Adjust the way that media is initialized on DP8390-compatible
chips.  The dp8390_softc now has media_init and media_fini
function pointers that do the work.
2001-02-12 18:49:03 +00:00
itohy f3590c636b Make it compile with "options DIAGNOSTIC" (patch from minoura). 2001-01-15 07:04:41 +00:00
minoura b2bcd7ceb9 Use MI clock_subr.c. 2001-01-11 16:09:42 +00:00
minoura 8a3a316883 Do not range_test() unless DIAGNOSTIC.
Suggested by Tetsuya Isaki <isaki@v6.ipc.hiroshima-u.ac.jp>.
2001-01-09 11:38:32 +00:00
minoura cd4d6511c8 Correct `Year 2001 problem'.
Pointed out by Okamoto Kohichi <GHG03305@nifty.ne.jp> and
URA Hiroshi <ura@hiru.aoba.yokohama.jp>.
2001-01-04 06:45:18 +00:00
minoura e6a960146a Use MI md_root.c. 2000-11-24 06:55:22 +00:00
minoura 21e684b743 New line discipline. 2000-11-13 15:20:28 +00:00
eeh 8c3f6a0d10 Adapt to new line discipline scheme. 2000-11-02 00:37:56 +00:00
mrg 7e590c46fe remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:07:52 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
simonb 889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
minoura 238f799ff3 Print newline while attach. 2000-06-16 17:15:54 +00:00
minoura 04dbfaae5b G/C of unused interrupt stubs, and other cleanups. 2000-06-11 14:20:45 +00:00
itohy c72407329e Treat receiver overrun of MFP (clear the error).
Although the keyboard hardware seems to be designed to avoid
overrun, the errors sometimes occur.
2000-05-25 03:33:27 +00:00
itohy 61363bb1c6 Fix the problem where pressing a key at
scsibus0: waiting 2 seconds for devices to settle...
message during boot crashes the system.
This is because ite_filter() is called before init(8) opens the console.
2000-05-25 03:30:19 +00:00
minoura a8580db029 Revert 1.18 change.
Hopefully this is a temporary fix; something might be missing in
the SCSI negotiation.
2000-04-30 16:06:20 +00:00
minoura dd8c46b8be Explicitly include opt_m680x0.h. 2000-04-18 21:06:06 +00:00
thorpej 4044b5a41c Use separate callouts for motor-on and motor-off. Fixes a condition
where the floppy driver would wedge because a motor-on timeout would
be cancelled by another I/O operation cancelling a motor-off timeout.

From enami tsugutomo <enami@sm.sony.co.jp>.
2000-04-07 16:58:53 +00:00
minoura 87bc025f49 Move par under intio. 2000-03-27 15:53:04 +00:00
minoura f23d278c1d Make this compile (typo in callout change). 2000-03-27 15:49:34 +00:00
thorpej 7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +00:00
minoura 077b93be1a According to Takeshi Nakayama <tn@catvmics.ne.jp>,
POW_ALARMSW seems always 1 on some models (at least XVI).
2000-02-20 16:18:51 +00:00
thorpej fe551f0e64 Fix a bug in disksort_*() which caused non-optimal ordering when multiple
active partitions were on a single spindle.  Add a b_rawblkno member to
struct buf which contains the non-partition-relative block number to sort
by.
2000-02-07 20:16:47 +00:00
thorpej dc59bc1db3 Update for sys/buf.h/disksort_*() changes. 2000-01-21 23:39:55 +00:00
minoura 2a71e2c15e Minor cleanups & corrections. 2000-01-16 14:20:54 +00:00
itohy cf055ef630 Change the implementation of ms(4) polling to use timeout(9) software
interrupt in order to eliminate glitches on MPU interrupt levels.
I don't know whether this is a good solution, but it does work.
2000-01-14 08:22:42 +00:00
itohy 169af5c51b Add a dummy read just after enabling receiver interrupt.
If the receiver already has datum, no further arrival of
data is possible and no interrupts will occur.
This change fixes problem that pressing key during boot
may sometimes disable the keyboard.

Remove unreferenced variable "in" in kbdcngetc().
1999-12-03 00:14:06 +00:00
minoura bf013a4539 Remove ether+ driver. Requested by msaitoh. 1999-11-27 15:57:17 +00:00
sommerfeld 17d170b1ca defopt COM_DEBUG, COM_HAYESP, and COM16650 1999-11-22 03:53:38 +00:00
minoura e8a82e3d7e Do not reset SCSI bus. 1999-11-18 15:03:03 +00:00
thorpej e6c88a7686 Update for SCSIPI changes. 1999-09-30 22:59:52 +00:00
thorpej eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
thorpej 3ebbe095e0 Change the pmap_extract() interface to:
boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.
1999-07-08 18:05:21 +00:00
minoura 1330797741 Restore scroll registers after X server exits. 1999-06-27 14:14:30 +00:00
minoura c88662958f include sys/resourcevar.h to be compiled. 1999-06-27 14:13:14 +00:00
minoura b749d34eb9 I forgot to commit this. 1999-06-23 15:20:36 +00:00
thorpej 9e9f068f43 Add the guts of mlockall(MCL_FUTURE). This requires that a process's
"memlock" resource limit to uvm_mmap().  Update all calls accordingly.
1999-06-18 05:13:45 +00:00
minoura cd06c07723 Check file open mode at ioctl.
Add debug option SRAM_DEBUG_DONTDOIT.
1999-06-15 15:04:56 +00:00
thorpej f98d358a1f Rework layer 2 protocol input routines. Instead of calling e.g. ether_input()
directly, call the function pointer (*if_input)(ifp, m).  The input routine
expects the packet header to be at the head of the packet, and will adjust
as necessary.  Privatize the layer 2 input and output routines, allowing
*_ifattach() to set them up as appropriate.
1999-05-18 23:52:51 +00:00
minoura db3bdbe86c Shut up gcc -Wall. 1999-05-05 14:31:16 +00:00
minoura ad762a0b97 Use mvme68k-derived delay routine.
Now that we support various models, the old constant-loop delay routine
may cause problems.
1999-05-05 13:46:20 +00:00
minoura 3fe3e5261b Add missing ia_size argument. 1999-05-05 13:41:44 +00:00
minoura 7cebd447fb Move config_console to ensure that it is always called. 1999-05-05 13:41:19 +00:00