summaryrefslogtreecommitdiffstats
path: root/sys/isa
Commit message (Collapse)AuthorAgeFilesLines
* Fixed printf format errors. Only one left in LINT on i386's.bde1998-08-241-3/+2
|
* Fixed printf format errors.bde1998-08-231-2/+2
|
* Added D_TTY to the cdevswitch flags for all tty drivers. This is requiredbde1998-08-231-4/+5
| | | | | | | | | for the Lite2 fix for always returning EIO in dead_read(). Cleaned up the cdevswitch initializers for all tty drivers. Removed explicit calls to ttsetwater() from all (tty) drivers. ttsetwater() is now called centrally for opens, not just for parameter changes.
* Fixed devfs initialization which I broke in the previous commit.bde1998-08-201-7/+7
|
* Enabled dynamically sized tty input buffers (with enough bufferingbde1998-08-191-9/+10
| | | | | | | | | | | | for 1 second's worth of input) and larger tty output buffers. The interrupt-level buffers are still too small for speeds above 115200 bps (only a little too small for 230400 bps if RTS flow control is enabled). Don't call ttsetwater() explicitly in open(). It is now called for the TTYDISC l_open() and should be static. Don't attempt to register the cdevsw more than once.
* Register tty software interrupt handlers at run time using register_swi()bde1998-08-111-15/+10
| | | | | | | instead of at compile time using ifdefs. Use _swi_null instead of dummycamisr. CAM and dpt should call register_swi() instead of hacking on ihandlers[] directly.
* Port syscons to the alpha. The driver itself has moved to sys/isa as it willdfr1998-08-066-113/+233
| | | | | | | | | hopefully become a portable driver usable by all architectures. The api support files have had to be copied to sys/alpha/include since userland programs expect to find them in <machine/*.h>. All the revision history of the i386 syscons has been retained by a repository copy.
* Support files for ISA bus.dfr1998-08-062-0/+260
|
* Major ppbus updates from the author.msmith1998-08-032-190/+609
| | | | | | | | | | | | | | | | | - ppbus now supports PLIP via the if_plip driver - ieee1284 infrastructure added, including parallel-port PnP - port microsequencer added, for scripting the sort of port I/O that is common with parallel devices without endless calls up and down through the driver structure. - improved bus ownership behaviour among the ppbus-using drivers. - improved I/O chipset feature detection The vpo driver is now implemented using the microsequencer, leading to some performance improvements as well as providing an extensive example of its use. Reviewed by: msmith Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
* 1. Reorganized screen saver related code so that both the LKM screenyokota1998-08-032-146/+300
| | | | | | | | | | | | | | | | | | | | | | | | | saver and splash screen can all work properly with syscons. Note that the splash screen option (SC_SPLASH_SCREEN) does not work yet, as it requires additional code from msmith. - Reorganized the splash screen code to match the latest development in this area. - Delay screen switch in `switch_scr()' until the screen saver is stopped, if one is running, - Start the screen saver immediately, if any, when the `saver' key is pressed. (There will be another commit for `kbdcontrol' to support this keyword in the keymap file.) - Do not always stop the screen saver when mouse-related ioctls are called. Stop it only if the mouse is moved or buttons are clicked; don't stop it if any other mouse ioctls are called. 2. Added provision to write userland screen savers. (Contact me if you are interested in writing one.) - Added CONS_IDLE, CONS_SAVERMODE, and CONS_SAVERSTART ioctls to support userland screen savers. 3. Some code clean-ups.
* - When the system is shut down, switch to the vty0 if possible.yokota1998-08-031-3/+17
| | | | | | - Don't try to ring bell when system is going down. Beacuse the clock code is about to be stopped, the timeout routine won't be called anymore.
* Fix the bug which always reallocated the cut buffer wheneveryokota1998-08-031-7/+18
| | | | | | the screen mode is changed even if another vty has larger size. Reallocate the buffer only when the new screen size is larger than the current cut buffer size.
* Don't accept the blank time value, if it is too big.yokota1998-08-031-2/+4
| | | | PR: bin/6188
* - Add new bell types: "quiet.normal" and "quiet.visual".yokota1998-08-032-4/+12
| | | | | | | | | | | | When bell is of "quiet" types, the console won't ring (or flush) if the ringing process is in a background vty. PR: i386/2853 - Modify the escape sequence 'ESC[=%d;%dB' so that bell pitch and duration are set in hertz and msecs by kbdcontrol(1). There will be a corresponding kbdcontrol patch. PR: bin/6037 Submitted by: Kouichi Hirabayashi (kh@eve.mogami-wire.co.jp)
* Fixed error handling:bde1998-07-292-57/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Call isa_dmadone() whenever necessary to stop DMA and/or free bounce buffers. Undead DMA corrupted the malloc freelist fairly consistently in the following configuration: SLICE kernel, 2 floppy drives, no disk in fd0, disk in fd1. - Don't call fdc_reset() from fd_timeout(). Doing so gave an "extra" interrupt which was usually misinterpreted as being for completion of the next FDC command; the interrupt for completion of the next FDC command was then usually misinterpreted... There were further complications for interrupts latched by the soft-spl mechanism so that they were delivered after all the h/w interrupts went away. This caused at least wrong head settle delays and may be why the FreeBSD floppy driver seems to munch floppies more than most floppy drivers. The reset was unnecessary anyway in cases that didn't have the bug described next, since is was repeated a little later for the IOTIMEDOUT state. The state machine has complications to handle resets correctly, so just use it. - Don't call retrier() from fd_timeout(). The IOTIMEDOUT state needs to be processed next, and it isn't valid to set to that state if retrier() has aborted the current transfer. Doing so caused null pointer panics after the previous bug was fixed. Improved error handling: - If an i/o is aborted, arrange to reset in the state machine before doing the next i/o. New fdc flag for this. This fixes spurious warnings and lengthy busy-waiting for the next i/o. - Split STARTRECAL into RESETCOMPLETE and STARTRECAL and only check for the results from reset if we actually reset. This fixes spurious warnings for other paths to STARTRECAL. [Oops, it may break reset handling for motor-off resets.] Cleanups in fd_timeout(): - Renamed to fd_iotimeout() to make it clearer that it is only used for i/o. - Don't handle the bp == 0 case. This case can't happen for i/o. - Don't check for controller-busy. We know it must be. - Don't print anything. retrier() already prints too much for normal errors. - Fudge the state differently so that the state machine advances fdc->retry and the status is invalid (perhaps this should fudge a valid state like the one for WP). - Style fixes.
* Fixed error handling after a seek error that can't happen. When thebde1998-07-181-1/+3
| | | | | | | | | | | | | | | | controller reports a successful seek, it is very unlikely to report seeking to a cylinder other than the one requested, but we check for this, and botched the error handling for the requested_cylinder != 0 case. This error happened when the bug fixed in rev.1.52 of <sys/buf.h> caused the head of buffer queue to change to one starting on a different cylnder - the requested cylinder was found, but it wasn't what we thought we requested. The fix is simply to arrange to reset the state machine. Corruption of the buffer queue seems to only have been a problem in the floppy driver. Other drivers dequeue the head of the queue before doing physical i/o on it, so the corruption at worse broke the elevator sort order. Dequeueing breaks it anyway.
* Changed %n to %r in devfs name format strings. %n has almost gone away.bde1998-07-152-9/+9
|
* The ioctl request arg is unsigned long, so don't attempt to pass itbde1998-07-151-2/+2
| | | | around as signed int.
* Don't pretend to support ix86's with 16-bit ints by using longsbde1998-07-141-8/+8
| | | | | just to ensure 32-bit variables. Doing so broke i386's with 64-bit longs.
* SLICE probing becomes asynchronous. It can now be triggered byjulian1998-07-131-6/+3
| | | | | | | | interupt level events. This needs a lot of cleanup, but has been working here for a month or two.. originally needed for CAM integration but that hasn't happenned yet. The probing state machines for each handler should be replaced by a more generic state-service. It's still quite messy in there..
* Improve a couple of comment.phk1998-07-111-6/+7
| | | | | | PR: 7242 Reviewed by: phk Submitted by: Peter Jeremy <peter.jeremyp@alcatel.com.au>
* Don't pretend to support ix86's with 7-bit ints by using longs just tobde1998-07-112-6/+6
| | | | ensure 8-bit variables. Doing so mainly bogotified some printf formats.
* Add the ability to suspend as well as hibernate to the system. Thisimp1998-07-061-2/+21
| | | | | | | is the kernel part of my commits, the userlevel stuff will be done in a separate commit. Add the ability to suspend as well as hibernate to syscons. Create a new virtual key like hibernate for suspend. Update apm_bios.h to define more apm bios goodies.
* There is no such thing any more as "struct bdevsw".julian1998-07-041-8/+27
| | | | | | | | | | | | | | | | | | There is only cdevsw (which should be renamed in a later edit to deventry or something). cdevsw contains the union of what were in both bdevsw an cdevsw entries. The bdevsw[] table stiff exists and is a second pointer to the cdevsw entry of the device. it's major is in d_bmaj rather than d_maj. some cleanup still to happen (e.g. dsopen now gets two pointers to the same cdevsw struct instead of one to a bdevsw and one to a cdevsw). rawread()/rawwrite() went away as part of this though it's not strictly the same patch, just that it involves all the same lines in the drivers. cdroms no longer have write() entries (they did have rawwrite (?)). tapes no longer have support for bdev operations. Reviewed by: Eivind Eklund and Mike Smith Changes suggested by eivind.
* Don't refer to mouse_info.u.datea.[xyz] while processing MOUSE_BUTTON_EVENTyokota1998-06-241-5/+2
| | | | | | ioctl. These fields don't have valid values for this ioctl. PR: kern/6928 Submitted by: Bill Fenner <fenner@parc.xerox.com>
* Avoid some panics in sio_unload which gets called with various dirtphk1998-06-241-1/+9
| | | | if the attach of a modem card failed.
* Don't log "unexpected" events on never-opened devices. Events leftbde1998-06-161-11/+4
| | | | | | | | over from the probe are now expected for incompatible UARTs that deliver IRQs as a strobe (low) instead of a level (high). Discard events on going-away devices too. Endless loops may have been possible when an active pccard was removed.
* Add a symlink from /dev/vga to /dev/ttyv0 when using DEVFSsteve1998-06-131-1/+3
| | | | | | | for programs like doscmd. PR: 6920 Submitted by: Luoqi Chen <luoqi@chen.ml.org>
* Add a tc_ prefix to struct timecounter members.phk1998-06-091-6/+6
| | | | Urged by: bde
* Add a member function more to the timecounters, this one is for usephk1998-06-071-1/+3
| | | | | with latch based PPS implementations. The client that uses it will be committed after more testing.
* Fix some more ioctls which I missed becausese they were hidden by optionsdfr1998-06-071-2/+2
| | | | which were not in LINT.
* This commit fixes various 64bit portability problems required fordfr1998-06-074-7/+7
| | | | | | | | | | FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change. The prototype FreeBSD/alpha machdep will follow in a couple of days time.
* Add a "this" style argument and a "void *private" so timecounters canphk1998-06-071-5/+5
| | | | figure out which instance to wount with.
* keymap -> key_map so that the kernel will compile withsteve1998-06-061-2/+2
| | | | | | | -DESKEYMAP. PR: 6864 Submitted by: Javier Rueda <jmrueda@diatel.upm.es>
* Force success of the probe (after doing it as before except in onebde1998-06-031-4/+5
| | | | | | | | | | | | | | miscconfigured case) if the port is the console. This fixes several bugs: - if all sioprobe()s failed, then the console driver followed null pointers in cdevsw[]. - if the sioprobe() for the console failed but another sioprobe() succeeded, then init hung early when the console couldn't be opened. - it was silly for the console to not be there after printing boot messages on it. Bugs introduced by this are hopefully no worse than old ones caused by forcing the success of the `cn' level probe.
* Fixed a printf() arg botch in the previous commit.bde1998-06-031-7/+6
| | | | | | | | | Only complain about an irq mismatch in the probe if the configured irq doesn't become active, and then print the bitmap of irqs that became active (including clock irqs) instead of just the first (not including clock irqs). Bugs reported by: msmith
* Converted the ICU-level interrupt tests (3, 5 and 8) in sioprobe() intobde1998-05-311-22/+27
| | | | | | | | | a test of the irq number, and made failure of this test non-fatal. Removed related unused complications for the APIC_IO case. Removed the no-test3 flag. Deverbosified the failure messages for the other tests. Removed the per-port verbose flag - just use the general verbose flag.
* Some cleanups related to timecounters and weird ifdefs in <sys/time.h>.phk1998-05-281-3/+3
| | | | | | | | | | | | | | | | | | | | Clean up (or if antipodic: down) some of the msgbuf stuff. Use an inline function rather than a macro for timecounter delta. Maintain process "on-cpu" time as 64 bits of microseconds to avoid needless second rollover overhead. Avoid calling microuptime the second time in mi_switch() if we do not pass through _idle in cpu_switch() This should reduce our context-switch overhead a bit, in particular on pre-P5 and SMP systems. WARNING: Programs which muck about with struct proc in userland will have to be fixed. Reviewed, but found imperfect by: bde
* LoadSoftModem() routine at sio.c does not trap general serial I/Os.phk1998-05-201-2/+2
| | | | | | | | It fauls to probe eather DSI Modem or others. PR: 4657 Reviewed by: phk Submitted by: Kenji Saito <marukun@mx2.nisiq.net>
* Change a data type internal to the timecounters, and remove the "delta"phk1998-05-191-18/+9
| | | | | | function. Reviewed, but not entirely approved by: bde
* s/nanoruntime/nanouptime/gphk1998-05-171-9/+9
| | | | | | s/microruntime/microuptime/g Reviewed by: bde
* The PnP code in 2.2.6 detects the Motorola ModemSurfer 56K,phk1998-05-131-1/+2
| | | | | | | | | but doesn't do much of anything with it. I added it to siopnp_ids[] and it was found and recognized as a serial port. PR: 6605 Reviewed by: phk Submitted by: Dave Marquardt <marquard@zilker.net>
* There is no dump routine for fd so give it an explicit NULL entryjulian1998-05-061-2/+3
| | | | in the SLICE table.
* Add dump support to the DEVFS/slice code.julian1998-05-061-3/+3
| | | | | | now we can actually catch our crashes :-) Submitted by: Luoqi Chen <luoqi@chen.ml.org> (the man who's everywhere)
* Detect USR PnP x2 modem.phk1998-05-041-1/+2
| | | | | | PR: 6496 Reviewed by: phk Submitted by: Kurt D. Zeilenga <Kurt@Boolean.NET>
* close() is no longer a SLICE method.julian1998-04-221-4/+10
| | | | | Close is simply an open with no-read and no-write once internal to SLICE (it still exports a close to the rest of the kernel)
* Add changes and code to implement a functional DEVFS.julian1998-04-191-17/+269
| | | | | | | | | | | | | | | | | | | | | This code will be turned on with the TWO options DEVFS and SLICE. (see LINT) Two labels PRE_DEVFS_SLICE and POST_DEVFS_SLICE will deliniate these changes. /dev will be automatically mounted by init (thanks phk) on bootup. See /sys/dev/slice/slice.4 for more info. All code should act the same without these options enabled. Mike Smith, Poul Henning Kamp, Soeren, and a few dozen others This code does not support the following: bad144 handling. Persistance. (My head is still hurting from the last time we discussed this) ATAPI flopies are not handled by the SLICE code yet. When this code is running, all major numbers are arbitrary and COULD be dynamically assigned. (this is not done, for POLA only) Minor numbers for disk slices ARE arbitray and dynamically assigned.
* Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108.des1998-04-172-4/+4
|
* Stop the screensaver before switching consoles.des1998-04-171-1/+7
|
* Swapped "should we just return" and "should we stop the screensaver"des1998-04-161-8/+11
| | | | in scrn_timer() to avoid deadlock with graphical screensavers.
OpenPOWER on IntegriCloud