+ * qd.c
+ *
+ * Modification history
+ *
+ * QDSS workstation driver
+ *
+ *
+ * 1-Dec-87 - Tim Burke
+ *
+ * Added support for both System V termio(7) and POSIX termios(7). These
+ * changes also include support for 8-bit canonical processing. Changes
+ * involve:
+ *
+ * - Default settings on first open depend on mode of open. For termio
+ * opens the defaults are "RAW" style, while non-termio opens default
+ * to the traditional "cooked" style.
+ * - The driver now represents its terminal attributes and special
+ * characters in the POSIX termios data structure. This contrasts the
+ * original approach of storing attributes and special chars in the
+ * t_flags, ltchars and tchars.
+ * - Addition of LPASS8 to local mode word for 8-bit canonical support.
+ *
+ * 28-Sep-87 - Ali Rafieymehr
+ * Fixed a bug in qddint() routine. The bug was discovered on CVAX.
+ * Incorrect logic was used when taking an entry from the request queue.
+ *
+ * 12-Oct-87 - Tim Burke
+ * Modified driver to provide 8-bit support to the console port. To do
+ * this characters are defined in the remainder of the first 15 rows of
+ * off screen memory as well as in next 15 rows.
+ *
+ * 2-Aug-87 - Fred Canter
+ * Use TANDEM mode on qconsole for flow control of writes to
+ * /dev/console.
+ *
+ * 12-Jun-87 - Tim Burke
+ *
+ * Added full TERMIO functionality to terminal subsystem.
+ * Changed open routine to setup propper default settings if the line
+ * is not being used as a graphics device. Added defines of defaults.
+ *
+ *
+ * 14-May-87 - Fred Canter
+ * Changed default state of kernel_loop to on.
+ *
+ * 21-Apr-87 - Brian Stevens
+ * Xos support
+ *
+ * 16-Apr-87 - Fred Canter (for Brian Stevens)
+ * Multi-head GPX changes.
+ *
+ * 19-Mar-87 - Fred Canter (for Brian Stevens)
+ * Added X in the kernel support.
+ *
+ * 16-Dec-86 - Brian Stevens
+ *
+ * added support so "select" could be called on tty type device
+ * fixed rlogin bug
+ *
+ * 30-Oct-86 - Brian Stevens
+ *
+ * Removed the mprintf for "unexpected interrupts"
+ *
+ * 26-Aug-86 - rsp (Ricky Palmer)
+ *
+ * Cleaned up devioctl code to (1) zero out devget structure
+ * upon entry and (2) use strlen instead of fixed storage
+ * for bcopy's.
+ *
+ * 21-Jul-86 - Ram Rao
+ * allowed cursor rectangle to hang (partially) off the
+ * top and left of screen
+ *
+ * 11-Jul-86 - ricky palmer
+ *
+ * Added adpt and nexus fields to DEVIOCGET code.
+ *
+ * 02-July-86 - Brian Stevens
+ *
+ * added support for console writing to second QDSS display
+ *
+ * 20-May-86 - ricky palmer
+ *
+ * Added new DEVIOCGET ioctl request code. V2.0
+ *
+ * 16-Apr-86 -- darrell
+ * badaddr is now called via the macro BADADDR
+ *
+ * 14-Apr-86 -- afd
+ * Changed UMEMmap to QVmap and umem to qvmem.
+ *
+ * v_console() is now refered to as v_consputc, and there is a
+ * corresponding v_consgetc() (defined in /sys/vax/conf.c).
+ *
+ * Added "qdgetc()" routine for console read. Needed to read
+ * user's answer to the "root device?" prompt with a generic kernel.
+ *
+ * 19-Mar-86 -- pmk
+ * Change DELAY to 20000, because microdelay now in real microsec.
+ *
+ * 18-mar-86 -- jaw br/cvec changed to NOT use registers.
+ *
+ * 11 mar 86 darrell replaced percpu with cpusw, and removed all but
+ * one global reference
+ * 19 feb 86 bstevens no report of motion event on puck/stylus button action
+ * 18 feb 86 bstevens put in cursor box support for tablets
+ * 18-Mar-86 -- jaw add routines to cpu switch for nexus/unibus addreses
+ * also got rid of some globals like nexnum.
+ * ka8800 cleanup.
+ * 06 dec 85 longo added LK-201 error reporting for graphics device ops
+ * 03 dec 85 longo made qddint() clear active bit on error
+ * 02 dec 85 longo fixed up some crocks in the error messages
+ * 25 nov 85 longo added error handling to DMA ISR and single user locking
+ * 19 nov 85 longo eliminated "set_defaults()" by breaking out sub-calls.
+ * Changed init_shared to do real init of scroll struct
+ * 12 nov 85 longo fixed bug in open that broke alternate console re-direct
+ * 11 nov 85 longo changed "_vs_eventqueue" references to "qdinput"
+ * 08 nov 85 longo improved select service for read/write select wakeup.
+ * Also set ISR's to ipl4 to allow the interval timer in.
+ * 04 nov 85 longo fixed bugs in mouse button reporting and dma request stuff
+ * 30 oct 85 longo DMA to/from user space is in place
+ * 14 oct 85 longo added kernel msg redirect and QD_RDCURSOR ioctl
+ * 03 oct 85 longo added support for multiple QDSS's
+ * 02 oct 85 longo added color map loading services in qdioctl() & qdaint()
+ * 30 sep 85 longo added DMA interrupt services
+ * 18 sep 85 longo added scroll services to "qdaint()" adder intrpt service
+ * and put in supporting ioctl's
+ * 04 sep 85 longo initial implementation of DMA is working
+ * 17 aug 85 longo added support for the QDSS to be system console
+ * 05 aug 85 longo now using qfont (QVSS & QDSS) as linked object
+ * 12 jun 85 longo added mouse event loading to "qdiint()"
+ * 31 may 85 longo put live interrupts into the probe() routine
+ * 30 may 85 longo event queue shared memory implementation is now alive
+ * 29 may 85 longo LK-201 input is now interrupt driven
+ * 25 apr 85 longo MAPDEVICE works
+ * 14 mar 85 longo created
+ *
+ * todo: fix rlogin bug in console stuff
+ * cat -u console redirection
+ * check error return from strategy routine
+ * verify TOY time stuff (what format?)
+ * look at system based macro implementation of VTOP
+ *