Commit Graph

481 Commits

Author SHA1 Message Date
Bruce Evans
11d2504079 Actually, 97 out of 304 devsw functions had benignly mismatched types. 1995-09-08 19:57:13 +00:00
Julian Elischer
8af5d536ff devfs changes..
changes to allow devices that don't probe (e.g. /dev/mem)
to create devfs entries
this required giving 'configure' its own SYSINIT entry
so we could duck in just before it with a DEVFS init
and some device inits..
my devfs now looks like:
./misc
./misc/speaker
./misc/mem
./misc/kmem
./misc/null
./misc/zero
./misc/io
./misc/console
./misc/pcaudio
./misc/pcaudioctl
./disks
./disks/rfloppy
./disks/rfloppy/fd0.1440
./disks/rfloppy/fd1.1200
./disks/floppy
./disks/floppy/fd0.1440
./disks/floppy/fd1.1200
also some sligt cleanups.. DEVFS needs a lot of work
but I'm getting back to it..
1995-09-03 05:43:50 +00:00
Bruce Evans
b2c4393679 Remove extra args from the calls to getit(). The bug was benign with the
default function call convention.
1995-08-25 19:24:56 +00:00
Poul-Henning Kamp
0d2966d3f2 Andrew McRae's pcmcia/pccard code, the kernel part.
This is still very green, but I have managed to get my modem working.
Lots of work still to do, but now at least we can commit it. /phk

Reviewed by:	phk
Submitted by:	Andrew McRae <andrew@mega.com.au>
1995-08-24 08:56:20 +00:00
Nate Williams
a42b8f1321 Added missing semi-colon in the XT_KEYBOARD code. W/out it the code
would not compile.
1995-08-16 22:36:43 +00:00
Bruce Evans
6097a1e94f Disable fifos in sioclose(). Closes PR 576. 1995-08-13 07:49:35 +00:00
John Dyson
302cf5869a Fixed a problem that malloc(..,..,M_NOWAIT) was being called without checking
for return values.  It just so happens that in the cases where it is likely
to fail, it is okay to change the M_NOWAIT to M_WAITOK -- and all will
be well.  This problem was manfest as a panic very regularly on a 4MB
system right after bootup.
1995-08-08 05:14:40 +00:00
Bruce Evans
1856afe955 Sleep on a better address to wait for output to drain out of the
hardware.  Set the sleep-on flag for the address so there is more
than a small chance that the sleep address is actually used (this
used to work by timing out).  Don't bother clearing the sleep-on
flag after a timeout here or elsewhere since leaving it set just
generates a few null calls to wakeup().
1995-07-31 21:10:36 +00:00
Bruce Evans
9fa18570a2 Obtained from: partly from ancient patches of mine via 1.1.5
Introduce TS_CONNECTED and TS_ZOMBIE states.  TS_CONNECTED is set
while a connection is established.  It is set while (TS_CARR_ON or
CLOCAL is set) and TS_ZOMBIE is clear.  TS_ZOMBIE is set for on to
off transitions of TS_CARR_ON that occur when CLOCAL is clear and
is cleared for off to on transitions of CLOCAL.  I/o can only occur
while TS_CONNECTED is set.  TS_ZOMBIE prevents further i/o.

Split the input-event sleep address TSA_CARR_ON(tp) into TSA_CARR_ON(tp)
and TSA_HUP_OR_INPUT(tp).  The former address is now used only for
off to on carrier transitions and equivalent CLOCAL transitions.
The latter is used for all input events, all carrier transitions
and certain CLOCAL transitions.  There are some harmless extra
wakeups for rare connection- related events.  Previously there were
too many extra wakeups for non-rare input events.

Drivers now call l_modem() instead of setting TS_CARR_ON directly
to handle even the initial off to on transition of carrier.  They
should always have done this.  l_modem() now handles TS_CONNECTED
and TS_ZOMBIE as well as TS_CARR_ON.

gnu/isdn/iitty.c:
Set TS_CONNECTED for first open ourself to go with bogusly setting
CLOCAL.

i386/isa/syscons.c, i386/isa/pcvt/pcvt_drv.c:
We fake carrier, so don't also fake CLOCAL.

kern/tty.c:
Testing TS_CONNECTED instead of TS_CARR_ON fixes TIOCCONS forgetting to
test CLOCAL.  TS_ISOPEN was tested instead, but that broke when we disabled
the clearing of TS_ISOPEN for certain transitions of CLOCAL.

Testing TS_CONNECTED fixes ttyselect() returning false success for output
to devices in state !TS_CARR_ON && !CLOCAL.

Optimize the other selwakeup() call (this is not related to the other
changes).

kern/tty_pty.c:
ptcopen() can be declared in traditional C now that dev_t isn't short.
1995-07-31 21:02:00 +00:00
Bruce Evans
f3b37f91c1 Improve input flow control.
Use input buffer watermarks of TTYHOG-512 (high) and (high)*7/8
(low) instead of TTYHOG/2 (high) and TTYHOG/5 (low) to agree with
some drivers.  512 is magic and some things depended on TTYHOG/2
>= TTYHOG-512 to work; now they depend on the 512 magic not changing
and TTYHOG-512 being significantly larger than 0.  This should be
handled in ttsetwater().

Separate the decision about whether to do input flow control from
doing it.  ttyblock() now just starts input flow control (hardware
and/or software) and there is a new function ttyunblock() to stop
it.  The decisions are the same except for the watermark changes
and allowing for input expansion for PARMRK.

When flushing input, try harder at first to send a start character
if required, but give up if the first attempt fails.

cy.c, rc.c, sio.c:
Simplify: let ttyinput() handle input flow control if it is not
being bypassed.  Use ttyblock() to start flow control otherwise.

rc.c:
Use same input flow control test as elsewhere: test in a more
efficient order and start flow control at >= highwater instead of
at > highwater.
1995-07-31 18:29:51 +00:00
Bruce Evans
611c22c117 Don't let IXOFF or ECHONL stop the setting of TS_CAN_BYPASS_L_RINT. IXOFF
is handled at a low level, and ECHONL only applies if ICANON is set,
although tty.c sometimes bogusly applies it when ICANON isn't set.
1995-07-29 08:33:13 +00:00
Bruce Evans
4ce7d32178 Always wake up writers after clearing TS_BUSY. This will soon be
essential when I fix excessive wakeups for output-below-low-water.
In cy.c and sio.c, wake up via the driver start routine to also
eliminate duplicated code involving the clearing of TS_TTSTOP.

Always (except in code to be replaced soon) call driver start
routine directly instead of going through ttstart().
1995-07-29 04:05:57 +00:00
Bruce Evans
abe8bea470 Obtained from: partly from ancient patches of mine via 1.1.5
Give names to the magic tty i/o sleep addresses and use them.  This makes
it easier to remember what the addresses are for and to keep them unique.
1995-07-22 16:45:22 +00:00
Bruce Evans
a16721a13a Move the inline code for waking up writers to a new function
ttwwakeup().  The conditions for doing the wakeup will soon become
more complicated and I don't want them duplicated in all drivers.

It's probably not worth making ttwwakeup() a macro or an inline
function.  The cost of the function call is relatively small when
there is a process to wake up.  There is usually a process to wake
up for large writes and the system call overhead dwarfs the function
call overhead for small writes.
1995-07-22 01:30:45 +00:00
Bruce Evans
2ce42987d3 Obtained from: partly from ancient patches of mine via 1.1.5
Move static termioschars() from a couple of drivers to tty.c.  Now there
is only one copy of ttydefchars[].
1995-07-21 22:52:01 +00:00
Bruce Evans
d800e06858 Fix races in scstart(). q_to_b() wasn't called at spltty(), so there
were two races:
- q_to_b() might unexpectedly return 0 (e.g, after a keyboard signal
  flushes the output queue and isn't echoed).  ansi_put() interprets
  0 bytes as 4GB...
- more output (e.g. for echoes) might arrive afer q_to_b() returns 0.
  Then scstart() returns presumably and the new output might not be
  handled for a long time.

Remove unused function scxint().

Fix prototypes (foo() isn't a prototype).
1995-07-11 18:34:30 +00:00
Bruce Evans
f2fb20ef41 Speed up the inner loop of ansi_put() by a few percent.
syscons' output is now only about 4-5 times slower than I want.
It loses a factor of 2 for scrolling output by unnecessarily copying
the screen buffer, a factor of 4/3 for dumb OPOST processing, and
a factor of 3/2 for clist processing.
1995-07-11 17:59:22 +00:00
Bruce Evans
aa96081f8b Fix error logging:
- get the timeout countdown right
- report everything before turning timeouts off.
1995-07-05 14:30:07 +00:00
Andrey A. Chernov
5575abefeb Fight with hanging modems continued:
return EIO after t_timeout expired instead infinite looping in "siotx"
in comparam, consuming CPU time.
1995-06-28 17:58:14 +00:00
Bruce Evans
33dc7e1b84 Reduce timeout frequency from `hz' to 0 if no ports are open or to 1 if
no ports are active, provided there are no polled ports and no
`LOSESOUTINTS' ports.  Do a little more in the interrupt handler instead.
This is a little less efficient if there are are many active ports but
a little more efficient otherwise.  Polled ports are ones with no irq
specified (as before).  `LOSESOUTINTS' ports are ones with 0x08 set in
their config flags.  Unless this flag is set, it will now take up to one
second to recover from lost output interrupts, if any.  Some 8250s and
16450s lose output interrupts.

Improve output buffering: copy the clist buffer to 2 linear buffers if
necessary and possible instead of to 1.  Handle an arbitrary queue of
buffers in the interrupt handler.  Check for waking up sleepers after
copying characters out of the clist buffer instead of before.

Delay translation of TIOCM_DTR to MCR_DTR etc. so that the top level
routines are more machine independent.

Fix bogus device register in unused code.
1995-06-25 04:51:01 +00:00
Bruce Evans
5dce8a63fc Don't convert \n to \r\n in pccnputc(). This is the responsibility of
cnputc().
1995-06-14 05:16:12 +00:00
Rodney W. Grimes
d3628763db Merge RELENG_2_0_5 into HEAD 1995-06-11 19:33:05 +00:00
Rodney W. Grimes
9b2e535452 Remove trailing whitespace. 1995-05-30 08:16:23 +00:00
Søren Schmidt
ad828abe4b Fixed problem with "char" cursor..
Submitted by:	ache
1995-05-21 18:30:05 +00:00
Rodney W. Grimes
b2b795f07c Fix -Wformat warnings from LINT kernel. 1995-05-11 19:26:53 +00:00
Bruce Evans
d81fba0cda Add variable `idelayed' and macros setdelayed() and schedsofttty()
to access it.  setdelayed() actually ORs the bits in `idelayed' into
`ipending' and clears `idelayed'.

Call setdelayed() every (normal) clock tick to convert delayed
interrupts into pending ones.

Drivers can set bits in `idelayed' at any time to schedule an interrupt
at the next clock tick.  This is more efficient than calling timeout().
Currently only software interrupts can be scheduled.
1995-05-11 07:44:40 +00:00
Rodney W. Grimes
2d9d0204f7 Fix -Wformat warnings, still need to do something about %b and pointer
type args.
1995-05-09 12:26:00 +00:00
Andrey A. Chernov
e73e1e3715 Add hook for pstat -t 1995-05-07 23:00:02 +00:00
Joerg Wunsch
85827d9c13 Restructured the floppy tape probe.
The ``flags 1'' in the fdc line is now only needed for owners of an
Insight tape (perhaps there aren't any?  Mine is disfunctional).  All
other probes are safe wrt. to the motor-control line of floppy disk
drives.  Document the flag in LINT finally.
1995-05-06 19:34:28 +00:00
Søren Schmidt
e5c5c58924 Added nsccons variable for use by pstat
Submitted by:	 ache
1995-04-28 09:10:56 +00:00
Søren Schmidt
5130ec746f Added mark_all() call so that screen is proberly updated
when scroll-lock history is disengaged.
1995-04-25 10:22:28 +00:00
Bruce Evans
8d98ed564c Move declarations of console functions to cons.h (they should be
config(8)ed).

Update other misplaced prototypes.
1995-04-23 12:41:57 +00:00
Bruce Evans
38994061cf Correct the type of the `c' arg to pccnputc().
Move declarations of console functions to cons.h so that they can't be
defined inconsistently in several places.  They should be config(8)ed.
1995-04-23 10:15:42 +00:00
Julian Elischer
999422d707 Reviewed by: no-one yet, but non-intrusive
Submitted by:	julian@tfs.com
Obtained from:	written from scratch

slight changes to make space for devfs..
(also conditional test code in i386/isa/fd.c)

===================================================================
RCS file: /home/ncvs/src/sys/sys/malloc.h,v
retrieving revision 1.7
diff -r1.7 malloc.h
113a114,117
> #define M_DEVFSMNT    62      /* DEVFS mount structure */
> #define M_DEVFSBACK   63      /* DEVFS Back node */
> #define M_DEVFSFRONT  64      /* DEVFS Front node */
> #define M_DEVFSNODE   65      /* DEVFS node */
184c188,192
<       NULL, NULL, NULL, NULL, NULL, \
---
>       "DEVFS mount",  /* 62 M_DEVFSMNT */ \
>       "DEVFS back",   /* 63 M_DEVFSBACK */ \
>       "DEVFS front",  /* 64 M_DEVFSFRONT */ \
>       "DEVFS node",   /* 65 M_DEVFSNODE */ \
>       NULL, \
Index: sys/mount.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/mount.h,v
retrieving revision 1.16
diff -r1.16 mount.h
100c100,101
< #define       MOUNT_MAXTYPE   15
---
> #define MOUNT_DEVFS   16      /* existing device Filesystem */
> #define       MOUNT_MAXTYPE   16
118a120
>       "devfs",        /* 15 MOUNT_DEVFS */ \
Index: sys/vnode.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/vnode.h,v
retrieving revision 1.19
diff -r1.19 vnode.h
61c61
<       VT_UNION, VT_MSDOSFS
---
>       VT_UNION, VT_MSDOSFS, VT_DEVFS
1995-04-20 03:18:19 +00:00
Bruce Evans
33242876a4 Fix initializations of kdc_state for serial consoles.
Change order of RTS flow control tests so that less tests are required
in the usual case.

Clean up parts of previous commits.  Cosmetic.
1995-04-15 21:45:16 +00:00
Garrett Wollman
ae60406da6 Forgot two things in yesterday's massive devconf update:
initialized class for sio
don't bogusly re-initialize it in sio_registerdev()
1995-04-13 15:03:29 +00:00
Andrey A. Chernov
3cf91c530d Move setcompat code to another place, initial/locked devices
not supposed to work with old style ioctls
1995-04-13 11:11:11 +00:00
Andrey A. Chernov
d17ad80fda Comment out ttcompat via COMPAT_SUNOS too
Fix error handling initial/callout devices
1995-04-13 09:22:40 +00:00
Poul-Henning Kamp
04a6a5a9ac ttsetcompat is a '#ifdef COMPAT_43' feature.
Dropping into the debugger when a break comes down the serial line is a
>MISFEATURE (1st class)< and has been put under it's own #ifdef.  This
should be a magic sequence of chars instead.
1995-04-12 22:00:41 +00:00
Garrett Wollman
6c0081e92b Add a class field to devconf and mst drivers.
For those where it was easy, drivers were also fixed to call
dev_attach() during probe rather than attach (in keeping with the
new design articulated in a mail message five months ago).  For
a few that were really easy, correct state tracking was added as well.
The `fd' driver was fixed to correctly fill in the description.
The CPU identify code was fixed to attach a `cpu' device.  The code
was also massively reordered to fill in cpu_model with somethingremotely
resembling what identifycpu() prints out.  A few bytes saved by using
%b to format the features list rather than lots of ifs.
1995-04-12 20:48:13 +00:00
Andrey A. Chernov
2178b9bb49 Call new ttsetcompat() function for proper working
old v7 ioctls with locking bits.
1995-04-11 17:58:09 +00:00
Rodney W. Grimes
74fa89f4f5 Correct recalibrate/seek code at attach time so that we do not get
all the ``fdc0: ready for output in input'' messages when probing
for ft devices.

Submitted by:	Steve Gerakines <steve2@genesis.tiac.net>
1995-04-06 07:20:16 +00:00
Søren Schmidt
8c4344bebd Fixes to the hardware cursor emulation.
Submitted by:	ache
1995-04-04 20:06:26 +00:00
Andrey A. Chernov
a65a3dd65a Move unit structure member down to optimize com->state per Bruce
suggestion. Move hotchar setting to set_bypass routine and rename it
to disc_optim
1995-04-04 16:26:04 +00:00
Andrey A. Chernov
021ad37586 Allow serial console BREAK to DDB
Use com->unit in several places
1995-04-03 10:29:14 +00:00
Andrey A. Chernov
bedbd95393 Back out changes related to locked bits until more elegant
solution will be found. Remove some unused variables sneaked in.
1995-04-02 19:28:58 +00:00
Andrey A. Chernov
890bf1b00d Fix error:
old type (stty) ioctls can easily bypass locking bits.
It involves manual conversion from old ioctls to new ones,
large piece of code duplicated from tty_compat.c
1995-04-02 04:21:09 +00:00
Andrey A. Chernov
5fba2bf3bd Move SET_BYPASS macro to function per Bruce suggestion.
Add set_bypass() call after l_close.
Move ttioctl()/set_bypass() pair under spltty() protection
1995-04-02 01:47:06 +00:00
Andrey A. Chernov
5daae55cdf Move setting BYPASS state to macro, use it in several times,
after ttioctl too, because it can change t_line.
Remove (TS_CNTTB | TS_LNCH) test, it is always inherits from
old tty mode and can't be reach in currently setted mode.
1995-04-01 23:56:08 +00:00
Andrey A. Chernov
6a5f6acc8d Adjust TS_CAN_BYPASS_L_RINT state after l_open(), t_line
can be changed there.
1995-04-01 22:57:43 +00:00
Bruce Evans
65202423ff Fix count in mark_for_update() for insert-char(s) and delete-char(s).
Everything from the cursor to the end of the line must be updated.

Fix comment about erase-char(s).
1995-04-01 19:57:36 +00:00
Andrey A. Chernov
c6e19ceaa0 Use new TS_CAN_BYPASS_L_RINT state to avoid complex test
each time.
Remove unefficient loop of zeroing error chars in siopoll(),
now done at interrupt level.
1995-04-01 12:01:13 +00:00
Andrey A. Chernov
3d0b7a8e9f Check for never opened or closed device before testing
terminal flags at interrupt level
1995-04-01 06:55:24 +00:00
Søren Schmidt
085db34497 Emulate hw cursor closely, and get start&end scanlines from BIOS. 1995-03-30 14:32:31 +00:00
Søren Schmidt
736277a951 Optimized the way physical screen updates are done. Now only
update what has actually been touched. This should speed up
screen access on slow hardware.
Introduced setting of "destructive" cursor size, much like
the old hardware cursor.
1995-03-29 20:55:03 +00:00
Andrey A. Chernov
29a75ef5be Fix serial error recording using new TTY_BI & TTY_OE 1995-03-29 20:20:01 +00:00
Andrey A. Chernov
9bbcea9480 Remove TTY_OE & TTY_BI definitions to allow translation,
more work required and will follow
1995-03-29 19:05:13 +00:00
Søren Schmidt
d23c175f9d Change fkey 63 from ^[[K to ^[[~.
Submitted by:		ache
1995-03-28 21:30:13 +00:00
Andrey A. Chernov
0e933b8841 Move discard check up and do it only for error status
(per Bruce suggestion). It speedup things for a little.
Remove l_start optimization, call l_start always (per Bruce suggestion)
1995-03-28 19:22:11 +00:00
Andrey A. Chernov
4e0df42774 Don't use
if (tp->t_line != 0)
test when CS_ODONE, it fails for NTTYDISC, use
		       if (linesw[tp->t_line].l_start != ttstart)
instead.

Reviewed by:
Submitted by:
Obtained from:
CVS:
1995-03-28 12:26:40 +00:00
Andrey A. Chernov
8eefd80d06 Forget to add LSR_FE to discard (see prev commit)
Reviewed by:
Submitted by:
Obtained from:
CVS:
1995-03-28 11:13:44 +00:00
Andrey A. Chernov
2cad35d11b Several fixes to help "raw" tty mode work correctly with
BREAK/parity/framing errors.
Term "correctly" assumes POSIX spec. and 4.4 ttyinput() behaviour.
1) Discard BREAK/parity at interrupt level when apropriate IGN*
is set in iflag. It helps "raw" mode works even IGN* is set.
2) Zero parity (if INPCK) and framing directly in buffer
before passing it to b_to_q() in "raw" mode.
Efficency:
interrupt level: if no error occurse, only two "test" commands added
"raw" mode: buf scan incc times for parity/framing added

Reviewed by:
Submitted by:
Obtained from:
CVS:
1995-03-28 10:51:59 +00:00
Bruce Evans
3aa12267a5 Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
(except in netccitt, netiso and netns) that I didn't notice when I fixed
"all" such warnings before.
1995-03-28 07:58:53 +00:00
Andrey A. Chernov
243823db69 Raw ttyinput test was incomplete,
add !(IGNBRK | BRKINT | PARMRK) now.
1995-03-28 06:15:44 +00:00
Andrey A. Chernov
339b90b333 Fix break recording for ttyinput 1995-03-28 05:39:53 +00:00
Søren Schmidt
19c66761c7 Give backspace to the people (again)
Now the keymaps are as follows:

"backspace / <-"	^H
"grey del"		^? (0x7f)
"numpad , del"		^? (, if numlocked)
1995-03-27 19:41:11 +00:00
Rodney W. Grimes
6a0e6f4266 Terminate all probe/diagnostic/error messages correctly with a \n.
Report floppy/tape units on seperate lines as fdX:/ftX: to correct lots of
ways the current scheme failed to end the output with \n.

Add controller and/or drive designator to the fron of several messages
that come from this drive.  [It's not fun to track down driver messages
using grep over the source tree.]
Reviewed by:	joerg
1995-03-26 19:28:22 +00:00
Bruce Evans
b5e8ce9f12 Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
(except in netccitt, netiso and netns) and most of the warnings from
`gcc -Wnested-externs'.  Fix all the bugs found.  There were no serious
ones.
1995-03-16 18:17:34 +00:00
Joerg Wunsch
82f5379bc5 Finally get rid of this bothering ``biodone: buffer already done''
warning.  The buffer needs only to be `biodone()' again if the format
operation timed out; otherwise fdstate() did already do the job.
1995-03-12 22:40:56 +00:00
Andrey A. Chernov
537907d280 Fix flag bugs with RUKEYMAP 1995-03-03 23:12:20 +00:00
Søren Schmidt
dc463a367e Minor update to syscons.
Let "grey delete" be a function key (default is 0x7f)
Fix the xor cursor again..
Made the backspace key generate del as default
Made CTRL-space generate nul as default.
1995-03-03 08:37:52 +00:00
Andrey A. Chernov
5d8619d1f2 Workaround IXOFF bug when output queue is full && RTS control is on 1995-02-28 23:21:33 +00:00
Paul Traina
8c5c37cd75 Incorporate bde's code-review comments.
(a) bring back ttselect, now that we have xxxdevtotty() it isn't dangerous.
(b) remove all of the wrappers that have been replaced by ttselect
(c) fix formatting in syscons.c and definition in syscons.h
(d) add cxdevtotty

NOT DONE:
(e) make pcvt work... it was already broken...when someone fixes pcvt to
	link properly, just rename get_pccons to xxxdevtotty and we're done
1995-02-28 00:21:11 +00:00
Bruce Evans
550f8550ec Replace all remaining instances of i386/include' by machine' and fix
nearby #include inconsistencies.
1995-02-26 05:14:53 +00:00
Bruce Evans
eecd3071a6 Don't confuse the frequency with the wavelength in DELAY() args. 960 cps
is close to 1000000 / 960 usec so the confusion probably didn't matter.

Test for COMCONSOLE before testing for RB_SERIAL so that the RB_SERIAL
test can be optimized away if COMCONSOLE is 1.

Simplify and Uniformize style of previous commit.
1995-02-26 02:30:18 +00:00
Bruce Evans
671e2cee97 Declare all the args of Fdopen() and fdclose().
Initialize dk_wpms[] less bogusly.

Clean up includes.

Remove some obsolete comments.
1995-02-26 01:37:51 +00:00
Paul Traina
77f77631e7 (a) remove the pointer to each driver's tty structure array from cdevsw
(b) add a function callback vector to tty drivers that will return a pointer
    to a valid tty structure based upon a dev_t
(c) make syscons structures the same size whether or not APM is enabled so
    utilities don't crash if NAPM changes (and make the damn kernel compile!)
(d) rewrite /dev/snp ioctl interface so that it is device driver and i386
    independant
1995-02-25 20:09:44 +00:00
Andrey A. Chernov
838dadc476 Revive input flow control, some ideas from iverson@leonheart.com
Get rid of TS_RTS_IFLOW, all kinds of input flow control handled
by only one flag now: TS_TBLOCK
Add missing put(VSTOP) when IXOFF control is active.
1995-02-24 00:11:01 +00:00
Jean-Marc Zucconi
95344a43ed Put the joystick status in a struct {int x, y, b1, b2;} rather than in a
dummy array of 4 integers. Declare the struct in the header file and update
the man page.
1995-02-22 23:34:58 +00:00
Søren Schmidt
17ee9d00bc Next syscons update (given up on numbering :)
Removed screensavers from syscons, they are now LKM's. This makes it
possible to do some really "interesting" screensavers...
Fixed bug that sometimes caused garbage to appear when leaving
"scroll-lock" history.
Reformattet indentation, it got too deep for a normal 80 pos screen.
Split up in syscons.c & syscons.h for use with the saver-lkm's.
Temporarily removed -s option from vidcontrol, savers should now
be loaded with modload.
1995-02-22 13:48:07 +00:00
Poul-Henning Kamp
648c711bb4 This is the latest version of the APM stuff from HOSOKAWA, I have looked
briefly over it, and see some serious architectural issues in this stuff.

On the other hand, I doubt that we will have any solution to these issues
before 2.1, so we might as well leave this in.

Most of the stuff is bracketed by #ifdef's so it shouldn't matter too much
in the normal case.

Reviewed by:	phk
Submitted by:	HOSOKAWA, Tatsumi <hosokawa@mt.cs.keio.ac.jp>
1995-02-17 02:22:57 +00:00
Søren Schmidt
314908fae3 Fixed cursor xor problem... 1995-02-14 14:37:53 +00:00
Søren Schmidt
719d3245ae Fixed the bug that caused the cursor to disappear under
boot with -c option
1995-02-07 11:53:27 +00:00
Søren Schmidt
768483b761 Fixed the annoing bug that caused writes to /dev/console to go to
the active virtual terminal (Boy, do I have little hair left).
Misc other fixes, try to enable cursor earlier in the game.
1995-02-05 23:44:25 +00:00
Søren Schmidt
130c74bbe7 Allow all characters except "real" control chars.
Fix NULL reference when serial console (thanks bruce).
1995-02-03 21:09:44 +00:00
Søren Schmidt
786f122175 Syscons bug fix: tab now right (thanks bruce!)
Mouse arrow support almost finished.
1995-02-01 21:56:32 +00:00
Søren Schmidt
6de1193d13 Reviewed by:
Submitted by:
Obtained from:
1995-01-30 21:36:32 +00:00
Jean-Marc Zucconi
2429906c75 Add parentheses around macros! 1995-01-29 01:00:14 +00:00
Søren Schmidt
a926a37b0a Third round in syscons update.
Display update method changed, now allways write in memory buffer,
  then periodically update physical display.
Speed improvements (now > 5 times faster than the old syscons).
History now circular buffer, with changeable size.
History scroll by up/down line, up/down page, home and end.
Backtab proberly implemented.
Now space for 96 function keys, 63 allocated standard, default now
  SCO/SYSV compat again as in the old days.
New keyboard definition files ~share/syscons/keymaps/*
Misc fixes for old "hacks" that broke SCO/SYSV compat.
More that I forgot before writing this...
1995-01-28 22:18:05 +00:00
Jean-Marc Zucconi
7c5329fd30 Do not recompute TIMER0's maximum count, since it is in timer0_max_count.
Use a simpler formula to convert usecs to ticks.
Output is in microseconds instead of ticks, so that values do not depend
on the timer frequency.
1995-01-28 21:54:37 +00:00
Jordan K. Hubbard
ae099941e3 Back out my previous change and disable the floppy tape controller again
by default.  It's hosing up my test machine's floppy pretty good.
1995-01-27 20:03:07 +00:00
Andrey A. Chernov
fd4a3c0b42 Use NUM_FKEYS instead of hardcoded 65 for fkey_tab size 1995-01-26 10:16:51 +00:00
Andrey A. Chernov
f42e354117 Get rid of overloaded Keypad 5, now F(65) 1995-01-26 10:08:39 +00:00
Andrey A. Chernov
b99c427733 Get rid of overloaded Back tab, now F(64) 1995-01-26 10:02:21 +00:00
Andrey A. Chernov
325e89b668 Rewrite fkey_tab to produce unique sequences for all fkeys
Get rid of overloaded fkeys
1995-01-26 09:58:37 +00:00
Andrey A. Chernov
14ed6a7595 Implement Delete key properly, needed by ncurses 1995-01-26 08:43:24 +00:00
Andrey A. Chernov
5ddda58b2e o Restore removed hardware cursor support and make it _default_
case, software cursor now optional case. Driver must provide
  raw things (what hardware do for us, exactly) as default case,
  all driver features must be _optional_. Modern VGAs have internal
  configuration utilities to set cursor shape/blinking which stored
  into cards ROM, and syscons nuke out such features completely
  by forcing software cursor. Moreover, software cursor is hard
  to distinguish on standouted (or near standouted) fields and
  tends to disappearse from the screen.
  Set "flags 0x4" to enable software cursor now.

o Cleanup screen savers.

o Don't draw cursor if saver or blinker is active.

o Duplicated code moved to functons.

o Add more checks for blinker in progress, character lost otherwise
  when blinker restore old contents.

o Reduce blinking counter to 3, too slow in old variant.

o Fix timeout code in scrn_timer(), old variant can reenter iself,
  if action takes too long time.

o Disable visual bell for scroll lock mode, saved screen
  becomes overwritted otherwise.
1995-01-26 04:56:25 +00:00
Jean-Marc Zucconi
3bc6bf1734 Changed address of the game controller to 0x201 (was 0x200)
joy.c: joystick driver
1995-01-25 20:11:51 +00:00
Søren Schmidt
02fb646de1 Second round in syscons update:
Support for pseudo graphic mouse cursor (not complete yet)
Some cheap speed fixes.
More cleanups.
Call ourselves scxxxx finally.
1995-01-20 08:35:32 +00:00
Bill Paul
2b237b4058 Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
sio.c and sioreg.c changed to allow autodetecting the RB_SERIAL flag
passed by the boot blocks so that the kernel can switch to 'serial
console' mode automagically. 'options COMCONSOLE' can still be specified
to force the kernel to always use the serial port as a console.
CONUNIT and CONADDR can also be specified in the kernel config file
if the user wants to shift the console to a different port.
1995-01-20 07:34:18 +00:00
Andreas Schulz
c82762a9c3 Submitted by: Bruce Evans
Put in the much shorter and cleaner version for the calibrate_cycle_counter
for the Pentium that Bruce suggested. Tested here on my Pentium  and
it works okay.
1995-01-19 22:05:27 +00:00
Jordan K. Hubbard
0b3782714e Enable floppy-tape controller by default again. Flags no longer has any
special meaning.
1995-01-17 17:32:33 +00:00
Søren Schmidt
2a13b58b61 Oops, forgot one change when DDB is defined. 1995-01-13 17:13:13 +00:00
Andrey A. Chernov
b9937fcc84 Use (n - 1) in ESC [ xxx d and ESC [ xxx ` 1995-01-13 03:19:22 +00:00
Andrey A. Chernov
9db2473d62 Back out cursor wrap (restore original thing)
Submitted by: Bill Paul
1995-01-12 20:14:28 +00:00
Joerg Wunsch
dac0f2dbc1 Argl!, finally found this bummer. The code testing for a write-
protected drive at open() time has been *totally bogus*!  The guy who
submitted it didn't understand all the implications of calling
set_motor(), and the `who' who included the patch into the tree did it
blindly...  Pleeeeze, don't commit code to this driver unless you are
really going to understand what it does!  This one caused me to pull
out even more hears, and those who know me do know that i ain't got
too many o'them. :-)
1995-01-12 19:20:28 +00:00
Søren Schmidt
6378775666 First round in syscons update. Several new features has been added:
No kernel config options anymore besides keyboard language layout.
Virtual consoles are now dynamically allocated, no NCONS anymore.
Software cursor blinking/nonblinking.
Visual bell for laptops (don't beep at meetings :-).
Cursor/bell default type setable via config "flags" instead of as defines.
Cursor/bell type setable via ioctl's.
New video modes 80x30 80x60 for some laptops, and those with multisync monitors.
Scroll-lock history (length currently fixed at 100 lines).
Lots of cleanups, some only commented out for now (will goaway soon).
Support for new features in vidcontrol/kbdcontrol.
Updated manpages.
1995-01-12 11:47:05 +00:00
Joerg Wunsch
dc16046f96 Finally implement support for the `lsdev' program. The controller is
now marked busy as long as it's being in non-reset state, and the
drives are busy as long as at least one instance is open.

Also reformat everything to fit into 80 columns again.

Changed my mind wrt. error reporting for a write-protected drive and
an open() with write intent; ENXIO has been too weird, now return EIO.
Some portions of the code need to be rewritten to use tprintf()
instead of simple printf()'s, so the messages will also appear on the
session terminal, however.
1995-01-11 16:13:01 +00:00
Andreas Schulz
a9700525d8 Work around a compiler bug in gcc2.6.3 in handling (long long) variables and
shifting. Also correct the original code as Garrett noticed it in mail.
Leave the mishandled code in to use it later if future versions of gcc
are correct. The code was part of the calibrate_cyclecounter routine to
get the speed of the pentium chip.
1995-01-07 17:26:35 +00:00
Joerg Wunsch
dc5df763e4 Peter's work to work around one of the most annoying bugs in the
floppy driver (or in the hardware?).  It turned out to be caused by
spurious interrupts, right after an FDC reset.

Also major cleanup in the low-level structure, there are now functions
performing error-checks for the FDC I/O.

Submitted by:	(mostly) Peter Dufault <dufault@FreeBSD.org>
1995-01-06 15:20:00 +00:00
Bruce Evans
123bcf5fda Fix scaling for TIOCM[SG]DTRWAIT to work when hz != 100.
Bruce
1995-01-06 15:03:41 +00:00
Andrey A. Chernov
33c38bd574 Fight against hanging modems: add timeout to ttywait.
Reviewed by: Bruce
1995-01-05 00:01:07 +00:00
Bruce Evans
f73f117cf0 Don't allow negative console numbers for the VT_WAITACTIVE ioctl. Use the
correct console number for the VT_WAITACTIVE ioctl.  Invalid console numbers
caused waiting on an invalid pointer.

Use bcopyw() instead of move_up() and move_down().  bcopyw() handles
overlapped copies and should be faster.  Actually use bcopy().  bcopy()
is slightly faster if video memory is 16-bit and about twice as fast if
it is 32-bit.  bcopy() is said to fail on someGA's, but syscons already
depends on it working for other accesses to video memory.
1995-01-03 16:56:05 +00:00
Andreas Schulz
d3287e7c11 Change the errors in the XT_KEYBOARD patch. red in the face. Thanks Bruce. 1994-12-31 20:34:19 +00:00
Jordan K. Hubbard
63c5d14d1b Miscellaneous changes from Bill Paul:
- /sys/i386/isa/if_ed.c doesn't quite know how to deal with SMC EtherEZ
  ethernet cards. The EtherEZ looks just like the Elite Ultra, except it
  has only 8K of shared memory. The only way to have it properly detected
  is to zero and test a few bytes of memory just about the first 8K region.
  If it clears properly, it's an Elite Ultra, otherwise it's an EtherEZ.

  I've also got an EtherEZ patch for netboot (Makefile, ether.c and ether.h).

- /sys/i386/isa/syscons.c wraps at the next to the last column rather than
  the last column, like it should. You don't really notice this unless you
  use certain programs that write all the way out to, say, the 80th column,
  like VMSmail. Along with a one-line fix for this are some changes to
  implement a non-blinking cursor. Put 'options "NOBLINK_CURSOR"' in your
  config file and give it a try. :)

Submitted by:	wpaul
1994-12-31 17:09:58 +00:00
Andrey A. Chernov
1af33e5a7a Changes to allow keypad 5 produce \E[E like SCO/ANSI term does 1994-12-31 11:38:39 +00:00
Bruce Evans
43469be308 icu.s:
Move definition of `stat_imask' to clock.c.

clock.c:
Rename `rtcmask' to `stat_imask' and export it.  Rename `clkmask' to
`clk_imask' for consistency.

Only calculate TIMER_DIV(hz) once.

Merge debugging and "garbage" code to produce debugging code and format the
output better.

Make writertc() static inline and use it everywhere.  Now all accesses to
the clock registers go through rtcin() and writertc().

Move rtc initialization to cpu_initclocks().

Merge enablertclock() with cpu_initclocks() and remove enablertclock().
The extra entry point was just a leftover from 1.1.5.
1994-12-30 12:43:35 +00:00
Bruce Evans
0c4fe20e8a Keep track of the devconf state. 1994-12-27 13:07:07 +00:00
David Greenman
2048dd682c Fixed two security holes in the pcmmap() function.
Submitted by:	Bruce Evans
1994-12-27 08:43:06 +00:00
Andreas Schulz
3c8f8257cd Add a patch that someone on the net has used to run on his IBM Thinkpad.
Sorry, lost the name and mail of the original author. The whole patch
is ifdefed, so it should not disturb someone else in the moment.
1994-12-26 17:50:18 +00:00
Joerg Wunsch
0246a9d813 Initialize syscons also in cases where it ain't the system's console
(i.e., there's a comconsole).
1994-12-18 19:45:53 +00:00
Joerg Wunsch
00e82d39d7 Move the code providing the equivalent of ICRNL for console input from
the device driver(s) to cons.c.
1994-12-18 19:35:59 +00:00
Søren Schmidt
05d7c5e73e Changed the behavior of KDMKTONE to comply with svr4, default to
old behavior if no argument present.
1994-12-06 19:32:00 +00:00
Joerg Wunsch
290dd077ef Here is a minor patch for FreeBSD 2.0R to allow it to recognize
2.88MB floppy drives.  All it does is set the type to 1.44MB if
it finds the 2.88MB drive.

Submitted by:	Andrew Gillham <gillham@andrews.edu>
1994-12-04 20:22:20 +00:00
Andrey A. Chernov
92915f5044 Change wakeup to endtsleep, because wakeup don't produce timeout
state, cause infinite wakeups loop in ttywait
1994-12-01 23:48:09 +00:00
Jordan K. Hubbard
1ca6f46d56 Reverse the meaning of previous change.
Now floppy tape support is *disabled* unless you specifically
request otherwise.  Poul wanted it this way, and I guess I'm not going to argue
though it may seem counter-intuitive.  We can always change it back, later.
1994-11-30 12:04:28 +00:00
Jordan K. Hubbard
8580379053 Experimental change to floppy driver to NOT probe the floppy tape if
flags & 0x1.  Somebody should build a kernel with this and see if
the floppy-tape damaged people can turn it off properly with userconfig.
I can't reproduce the original problem here.
1994-11-29 15:46:20 +00:00
Andrey A. Chernov
326d35c650 Fix wrong size check for scroll forward/backward ('S'/'T') 1994-11-21 17:59:29 +00:00
Andrey A. Chernov
22651317ac Attempt to fix scroll forward/ scroll backward bug bringed by vi,
'S' and 'T' use count 1 in fillw() instead of count == n.
1994-11-21 14:36:02 +00:00
Andrey A. Chernov
1afec25476 More intelligent BackTab fix using BTAB special key (unused before) 1994-11-19 23:17:48 +00:00
Andrey A. Chernov
db69647720 Fix all keymaps to bring BackTab to life. 1994-11-19 22:58:56 +00:00
Poul-Henning Kamp
04b734cf24 Extended the SEEKWAIT and RECALWAIT somewhat to avoid annoying messages. 1994-11-18 10:18:36 +00:00
Søren Schmidt
5e146a0129 Added support for the MicroSoft Natural keyboard
Add support for ws_xpixel & ws_ypixel in winsize.
Submitted by:	Natural support suggested by Kaleb Keithley (kaleb@x.org)
1994-11-17 22:03:18 +00:00
Andrey A. Chernov
b27a526947 Revision 1.6 fix was lost: don't write 0 to RTC_DIAG 1994-11-12 16:24:54 +00:00
Andrey A. Chernov
3b8f1cfc05 Use adjkerntz into inittodr too (for APM stuff) 1994-11-10 12:53:13 +00:00
Andrey A. Chernov
4b69fb52f4 Change "fdx: Floppy not writeable" to less confusing
"fdx: write protected". Not writeable maybe means bad, etc.
1994-11-08 06:34:04 +00:00
Jordan K. Hubbard
6febd9aaf5 From: Lars Fredriksen <fredriks@mcs.com>
Here is a patch to fd.c that will check to make sure the floppy
is not writeprotected when you try to open the device RW.
Submitted by:	lars
1994-11-08 05:42:10 +00:00
Bruce Evans
4a7472ce04 The style in my patch011 is inconsistent and out of date. It should
have been changed _before_ committing the patch.
1994-11-06 00:30:16 +00:00
Bruce Evans
2f31d30b01 Work around microtime() enabling interrupts. 1994-11-06 00:23:45 +00:00
Bruce Evans
a3b33372b9 Maintain a new variable `timer0_overflow_threshold' so that microtime()
doesn't have to calculate it every call.

Rename `timer0_prescale' to `timer0_prescaler_count' and maintain it
correctly.  Previously we lost a few 8253 cycles for every "prescaled"
clock interrupt, and the lossage grows rapidly at 16 KHz.  Now we
only lose a few cycles for every standard clock interrupt.

Rename `*_divisor' to `*_max_count'.

Do the calculation of TIMER_DIV(rate) only once instead of 3 times each
time the rate is changed.

Don't allow preposterously large interrupt rates.  Bug fixes elsewhere
should allow the system to survive rates that saturate the system, however.

Clean up declarations.

Include <machine/clock.h> to check our own declarations.
1994-11-05 23:55:07 +00:00
Andrey A. Chernov
5a3391bf7f Fix for 'pstat -t' works on vtys
Submitted by: jhay@mikom.csir.co.za
1994-11-03 11:41:34 +00:00
Jordan K. Hubbard
5e235068bc Back out Joerg's latest commit. Sorry, Joerg, but this breaks the install
floppies now.  I'm not sure why, but things hang when it gets to the
`changing root to fd0c' part.  Without your latest commit, everything works
fine.  Maybe you can figure out what you broke after ALPHA! :)
1994-11-02 09:08:40 +00:00
Bruce Evans
25dd4b72b8 Only log errors every second (instead of every 5-10 msec) and check for
errors at a lower ipl.  clist starvation problems can cause hundreds of
tty buffer overflows per second and logging them all amplified the
problems.  This problem was less serious in 1.1.5.

Avoid a race in the check for starting a new block of output.  com_events
was sometimes messed up and siopoll() looped endlessly.  This bug was
introduced in 2.0.

Clean up previous 2 commits.  Rename sio_registerdev() to sioregisterdev()
to match the (bad) surrounding naming conventions.  There should be a
generic_registerdev().
1994-11-01 23:09:29 +00:00
Joerg Wunsch
5d04c702eb Several minor fixes to the floppy driver:
.	avoid resetting the FDC every time the last motor is going off;
	instead, give it a 60-second period for possible later reactivation.
	This prevents us from needing to recalibrate the FDC too often,
	but still allows for an ``automagic error recovery', just in case the
	controller is absolutely stuck. (Simply wait for 60 seconds, and
	try it again.)

.	made the floppy head settle time after a seek a constant
	that might be overridden by a config option. (Well, actually the
	divisor of the settle time). Pepople often reported problems with
	their floppies, so i need a simply mechanism that allows them
	to play with that value. (I personally cannot find any problem
	on *my* drives.)

.	implement the FD_DEBUG ioctl command, in case the driver
	is compiled with DEBUG turned on.

.	removed a bogus parameter from a printf; the remaining warnings
	from gcc -Wall seem to be warnings about the %b format gcc cannot
	understand

.	rearrange Garett's code to fit better in the existing structure
	of #define/type/function ordering.

.	make everything fit into 79 columns again.
1994-10-30 20:04:40 +00:00
Jordan K. Hubbard
54c7241bd3 Julian Elischer's disklabel fixes. 1994-10-27 20:45:13 +00:00
Poul-Henning Kamp
a95f669560 The other half of patch011, read Numlck state from bios. 1994-10-27 05:47:09 +00:00
Bruce Evans
0d55b76505 Fix initialization of video_mode_ptr. It only worked if the segments
in the far pointers are multiples of 4K (as is normal when the video
BIOS is at seg 0xc000).  Disallow mode switching if the pointer is bad.

Use a new pa_to_va() macro for all BIOS and video addresses in syscons.
1994-10-26 21:51:22 +00:00
Stefan Eßer
8627141c50 BEWARE: Interface change of register_intr() !
Changed the fifth parameter to register_intr() from u_int mask into
u_int *maskptr in preparation for new features (shared interrupts and
removable devices, eg. for PCMCIA).
1994-10-25 22:35:12 +00:00
Garrett Wollman
8a82d62d7f Fixed cut&paste error.
Submitted by:	davidg
1994-10-24 21:36:38 +00:00
Garrett Wollman
2f86936a07 Finished device configuration database work for all ISA devices (except `ze')
and all SCSI devices (except that it's not done quite the way I want).  New
information added includes:

-	A text description of the device
-	A ``state''---unknown, unconfigured, idle, or busy
-	A generic parent device (with support in the m.i. code)
-	An interrupt mask type field (which will hopefully go away) so that
.	  ``doconfig'' can be written

This requires a new version of the `lsdev' program as well (next commit).
1994-10-23 21:28:03 +00:00
Joerg Wunsch
dc8603e3ec Checking for timeout at several critical calls to ``out_fdc()'' now,
so i hope i've finally removed all the occasions where the driver
got stuck when there's no floppy in the drive.
Also attemmpting to  omit the error mesage for ``recalib failed''
for the first time, since people tend to be confused about this.
1994-10-21 16:58:50 +00:00
Poul-Henning Kamp
74fbff447d A missing bit from Peter Dufaults patches, as best I could guess... 1994-10-20 00:45:36 +00:00
Poul-Henning Kamp
953ca71d9d Peter Dufaults comconsole changes.
Submitted by:	Peter Dufault
1994-10-20 00:08:31 +00:00
Bruce Evans
633295cda7 Clean up previous commit. 1994-10-19 21:38:19 +00:00
Garrett Wollman
f1d8109335 Add support for devconf to a large number of device drivers, and do
the right thing in dev_goawayall() when kdc_goaway is null.
1994-10-19 01:59:11 +00:00
Garrett Wollman
922006325b isa.c isa_device.h: declare & define {e,}isa_{in,ex}ternalize().
fd.c: register devices and implement disk stats.
wd.c: fix disk stats and call isa_externalize() as appropriate.
1994-10-19 00:08:07 +00:00
Andrey A. Chernov
a5795badfb Remove color_display, GIO_COLOR now exists 1994-10-18 03:34:53 +00:00
Søren Schmidt
be92194467 Added more SCO compat ioctl's. 1994-10-17 22:12:06 +00:00
Poul-Henning Kamp
3595e6807d isa_device.h: Added flag for sensitive HW. ed# seems to break if anything
else has been probed.  This feature could go away again, if we can curb the
problem another way.

if_ed.c, syscons.c:  Set the above flag.  ed# because it needs it, syscons
because it looks stupid to "detect" the display you have already filled up
with text :-)

bt742a.c: Check bt_cmd() return-val during probe, thus failing on adaptec's.
Also silenced various printf's during the probe.

isa.c:  Probe devices with the above flag set before the rest.  Reduce the
number of "conflict" messages per device to one.

***
Please test the GENERIC-kernel now, if nobody can make it fail, GENERICAH
and GENERICBT has a finite and short life-expectancy...
***
1994-10-17 21:16:41 +00:00
Andrey A. Chernov
1d3d5e17f6 Initialize color_display as undefined, cosmetique 1994-10-17 12:44:02 +00:00
Andrey A. Chernov
6d718805b0 Add color_display variable for CPU_COLORDISP sysctl. 1994-10-15 21:33:58 +00:00
Andrey A. Chernov
22171b7a33 Prevent modem hanging forever on close with CTS off:
use 1min timeout to wakeup ttywait
1994-10-15 18:05:25 +00:00
Bruce Evans
b2f6e97280 Work around FIFO bug in SMC UARTS.
Fix endless loop in siopoll() for an event on a tty with no tty struct.
Don't generate unwanted interrupts in the serial console driver.  These
bugs probably don't matter unless the tty struct is dynamically allocated.

Support polled mode.  To use it, leave out the irq and the vector in
the config file.  It only causes extra overhead for open polled ports.
The maximum usable speed is approximately 1000 bps for a 16450 and
15000 bps for a 16550.

Other cosmetic changes.
1994-10-12 19:49:11 +00:00
Poul-Henning Kamp
702c623a8a Cosmetics. Silence gcc -Wall. Much more to do here :-( 1994-10-10 01:12:27 +00:00
Andrey A. Chernov
fd34b8e78c Add disable_rtc_set variable to block resettodr() call, needed for
adjkerntz -i, per Bruce suggestion
1994-10-04 18:39:10 +00:00
Andrey A. Chernov
3bbe7b72df RTC_CENTURY usage ifdefed out by USE_RTC_CENTURY compile option,
pointed by Bruce
1994-10-04 13:59:44 +00:00
Andrey A. Chernov
38ea5c3d90 Fix 'cursor-disappearce-after-switching-screen-from-X' bug 1994-10-03 01:22:46 +00:00
Poul-Henning Kamp
51b713ac2b Ripped out APM-hooks. Not ready for prime time yet. 1994-10-02 17:41:44 +00:00
Andrey A. Chernov
ef0797abc9 Make fat cursor as early as possible, per Bruce suggestion 1994-10-02 14:08:57 +00:00
David Greenman
22414e535a Laptop Advanced Power Management support by HOSOKAWA Tatsumi.
Submitted by:	HOSOKAWA Tatsumi
1994-10-01 02:56:21 +00:00
Andrey A. Chernov
e4b1dc5b1e Fix broken FAT_CURSOR support, don't set cursor shape on VGA 1994-09-29 15:49:09 +00:00
Søren Schmidt
444ada0bd0 Changed header slightly. 1994-09-29 08:29:21 +00:00
Søren Schmidt
336abda6cd Updated pcaudio.c to latest from 1.1.5.1
Enabled timer reprogramming in clock.c (this could use more work).

Obtained from: FreeBSD-1.1.5.1
1994-09-29 08:24:45 +00:00
Andrey A. Chernov
7b3e881e50 Bug fixed: cursor shaping in mode swithching produce wrong results for
non-fat cursors, cursor_start goes beyond font size.
1994-09-27 11:40:02 +00:00
Andrey A. Chernov
38ddc3a6d6 Refuse text mode switching when proper font not loaded 1994-09-27 01:50:07 +00:00
Poul-Henning Kamp
8c0390626e An ifdef almost hit where it was supposed to go. Joerg owes me a good
German beer I think...
1994-09-25 23:37:38 +00:00
Joerg Wunsch
c7a64a0369 Copied over the transfer speed definitions from sys/i386/isa/fdreg.h.
This is needed for having the fdformat program no longer searching
non-public include paths.
Protect the definitions in fdreg.h against double inclusion.
1994-09-25 18:42:23 +00:00
Poul-Henning Kamp
87eafbcacd Moved the ft.c from 1.1.5.1 over. It works on my Conner thingie. Got
rid of a ton of unused vars at the same time.
1994-09-25 06:04:25 +00:00
Andrey A. Chernov
899fe378a6 1)Back out my previous change: only 8x16 font grabbing available,
more work required to grab all fonts
2)Make standard VGA font as default, make HARDFONTS an option
(load iso8859 fonts instead)
3)Check fonts_loaded for all restore (copy_font...palette)
sequences.
1994-09-25 02:06:51 +00:00
Andrey A. Chernov
248a9521f8 SAVE all fonts, if NO_HARDFONTS defined, not only 8x16 1994-09-24 21:29:38 +00:00
David Greenman
36317691a4 #if 0'd evil dynamic fifo trigger level adjustment; it just bit me and
a couple of other people again.
1994-09-21 19:39:25 +00:00
David Greenman
354c733261 From 1.1.5:
>date: 1994/05/27 01:09:16;  author: ache;  state: Exp;  lines: +3 -3
>Russian keymap: Ctrl-Alt-Del with NumLock on fixed
1994-09-21 18:43:08 +00:00
Bruce Evans
7fecb8e845 Don't lose the RTC interrupt in resettodr(). 1994-09-20 21:20:46 +00:00
Andrey A. Chernov
7b915aa631 resettodr() implemented, inittodr() fixed
Submitted by: me & chris@gnome.co.uk
1994-09-20 00:31:07 +00:00
Bruce Evans
eb51e37703 Remove some unnecessary #includes.
Restore the simple leap year calculation as a macro and document it so
that it doesn't become complicated again.  The simple version works
for all leap years covered by 32-bit time_t's.  The complicated version
doesn't work for all leap years covered by 64-bit time_t's since among
other reasons, the solar system is not stable for long enough.

Fix declarations.

Nuke spinwait().
1994-09-18 23:08:56 +00:00
Garrett Wollman
3f31c649d1 Redo Kernel NTP PLL support, kernel side.
This code is mostly taken from the 1.1 port (which was in turn taken from
Dave Mills's kern.tar.Z example).  A few significant differences:

1) ntp_gettime() is now a MIB variable rather than a system call.  A few
fiddles are done in libc to make it behave the same.

2) mono_time does not participate in the PLL adjustments.

3) A new interface has been defined (in <machine/clock.h>) for doing
possibly machine-dependent things around the time of the clock update.
This is used in Pentium kernels to disable interrupts, set `time', and
reset the CPU cycle counter as quickly as possible to avoid jitter in
microtime().  Measurements show an apparent resolution of a bit more than
8.14usec, which is reasonable given system-call overhead.
1994-09-18 20:40:01 +00:00
Joerg Wunsch
6b7bd95b6d Fixed the problem where the floppy has incorrectly failed probing
when the drive had been left on a cylinder > 67 after kernel boot. The
most common case for this is booting a kernel that is located on
the inner cylinders of a floppy.

Also removed all occurences of spinwait(), replaced by DELAY.
Nuked a return line saying nothing, this might make Bruce happy 8^)

Submitted by:	partially by Bruce Evans
1994-09-17 18:08:36 +00:00
David Greenman
3a2f7427fe Updated driver to the 1.1.5 version:
date: 1994/05/22 12:35:38;  author: joerg;  state: Exp;  lines: +6 -6
First round of floppy changes. Try making `fd' more robust.

New features:
  .  ioctl command for setting the drive type (density etc.); restricted
     to the super-user
  .  ioctl for getting/seting `drive options'; currently only option
     is FDOPT_NORETRY: inhibit the usual retries; used when verifying
     a newly formatted track

Fixes:
  .  function prototypes
  .  made all internal functions `static'
  .  cleaned up & corrected .h files
  .  restructured, to make the chaotic function sequence more rational
  .  compiled with -Wall, and cleared all warnings
  .  introduced a mirror for the (write-only) `digital output register',
     to avoid the current kludge
  .  device probing completed by seeking/recalibrating, and looking
     for track 0 being found
  .  holding the controller down in reset state while it is idle (and
     thus saving allot of headaches)
  .  make requests fail that are not a multiple of the (physical)
     sector size
  .  removed the fixed physical sector size (512 bytes), allowing for any
     size the controller could handle (128/256/512/1024 bytes)
  .  replaced some silly messages
  .  fixed the TRACE* macro usage, debugging reports should be complete
     now again (debugging output is HUGE! though)
  .  removed fd_timeout for SEEK command; seeks are always reported by
     the controller to succeed, since the `success' only refers to the
     controller's idea of success - there is no hardware line to tell about
     the seek end (other than the `track 0' line)
  .  catch SENSEI's that report about a `terminated due to READY changed'
     status - could happen after a controller reset
  .  converted ``hz / <something>'' divide operations to divisors that are
     powers of two, so gcc can optimize them into shifts
  .  write/format operations are checked against a write-protected medium
     now *prior* starting the operation
  .  error reports of `invalid command' and `wrong cylinder' will cause
     shortcuts in the retrier() now
  .  fixed a bug in the retrier() causing bogus block numbers to be reported
  .  fdformat() does care for errors now

Known Bugs:
  .  no attempts have been made (yet) to improve the performance
  .  sometimes, bogus ``seek/recalib failed'' messages are logged; this
     is still a bug in the driver, but it's not harmful since it's
     usually caught by the retrier()

Reviewed by:
Submitted by:
Obtained from:
1994-09-17 16:56:10 +00:00
Søren Schmidt
4f683116b4 Added support for many more videomodes, including graphic modes up til
320x200 256col VGA. This is nessesary for the iBCS stuff to work right.
(And we get the benefit of more video modes). Uses the videocard BIOS
to optain mode tables.
Added a "green" saver, switches off the syncs for "green" monitors.

Reviewed by:
Submitted by:
Obtained from:
1994-09-15 07:26:40 +00:00
Andrey A. Chernov
82a4cf2359 1. adjkerntz variable added for preparation to resettodr() implementation
2. Leap year calculations fixed
1994-09-14 23:09:06 +00:00
Poul-Henning Kamp
5b7ffe398f Digicom Systems Inc, makes "softmodems". What this means is simply that
you download the microcode to the DSP everytime you power on your system.
They provide a dos-program to do so, but no other support.  This commit adds
code to the sio-driver, which implement an ioctl, which will down-load the
micro-code.

To get this functionality, you must define DSI_SOFT_MODEM.

The program to actually employ the ioctl is not included, but the entire
source looks like this:

        #include <sys/ioctl.h>
        #include <stdio.h>

        main()
        {
                unsigned char buffer[100000];
                int i;

                read(0,buffer,100000);
                if((i = ioctl(1,TIOCDSIMICROCODE,buffer)) < 0)
                    perror("ioctl");
                return i;
        }

And you use it like this:
	smload < data144b.dsi > /dev/ttyid3

You need to copy the *.DSI files from the dos-media provide with your modem.
You can see what is downloaded by issuing the ATI3 command to the modem.
DSI's scheme for what code you can run on your modem isn't violated by this.

Poul-Henning Kamp
phk@freefall.cdrom.com
1994-09-13 03:30:31 +00:00
Andrey A. Chernov
b2be795bf2 Use RAW_PART=2 to trick diskerr 1994-08-29 21:32:31 +00:00
David Greenman
8a129caed5 1) Changed ddb into a option rather than a pseudo-device (use options DDB
in your kernel config now).
2) Added ps ddb function from 1.1.5. Cleaned it up a bit and moved into its
   own file.
3) Added \r handing in db_printf.
4) Added missing memory usage stats to statclock().
5) Added dummy function to pseudo_set so it will be emitted if there
   are no other pseudo declarations.
1994-08-27 16:14:39 +00:00
Bruce Evans
3e0a35fee4 Updated to final 1.1.5 version (revision 1.56).
Merged changes from 2.0 version (revisions 1.46-1.50) by hand.

Finished conversion to clists: removed flush of tty output buffer
in comflush() (most writes were truncated to 256 bytes) and restored
bypass of ttyinput() in siopoll().

Finished conversion to 2.0 types - more void *'s, less caddr_t's,
less casts, no Dev_t's.

Only these things are seriously broken now compared with 1.1.5:
waiting for output complete is impossible so ttywait() can deadlock;
sioclose() isn't called enough so sioopen() sometimes returns EBUSY
unnecessarily; input flow control is not implemented.
1994-08-25 10:15:28 +00:00
Paul Richards
d091793974 Ran ft.c through ident.
Added a missing #ifdef INET wrapper in lpt.c

Main change:
	Removed the timeout_func_t casts from timeout calls and
	correctly defined the timeout routines to conform to
	the new format.
lpt.c doesn't have this change.

Reviewed by:
Submitted by:
1994-08-23 07:52:29 +00:00
David Greenman
7b42c960f8 1) cleaned up after Garrett - fixed more redundant declarations, changed
use of timeout_t -> timeout_func_t in aha1542 and aha1742 drivers.
2) fix a bug in the portalfs that was uncovered by better prototyping -
   specifically, the time must be converted from timeval to timespec
   before storing in va_atime.
3) fixed/added some miscellaneous prototypes
1994-08-20 03:49:02 +00:00
Garrett Wollman
f23b4c91c4 Fix up some sloppy coding practices:
- Delete redundant declarations.
- Add -Wredundant-declarations to Makefile.i386 so they don't come back.
- Delete sloppy COMMON-style declarations of uninitialized data in
  header files.
- Add a few prototypes.
- Clean up warnings resulting from the above.

NB: ioconf.c will still generate a redundant-declaration warning, which
is unavoidable unless somebody volunteers to make `config' smarter.
1994-08-18 22:36:09 +00:00
David Greenman
8912c0ed61 Bruce Evans' dynamic interrupt support.
/usr/src/sys/i386/isa/clock.c:
	o Garrett's statclock changes.
	o Wire xxxintr, not Vclk.
	o Wire using register_intr(), not setidt().

/usr/src/sys/i386/isa/icu.s:
	o Garrett's statclock changes.
	o Removed unused variable high_imask.
	o Fake int 8 for rtc as well as int 0 for clk.  Required for kernel
	  profiling with statclock, harmless otherwise.

/usr/src/sys/i386/isa/isa.c:
	o Allow isdp->id_irq and other things in *isdp to be changed by
	  probes.  Changing interrupts later requires direct calls to
	  register_intr() and unregister_intr() and more care.
	  ALLOW_CONFLICT_* is brought over from 1.1.5, except
	  ALLOW_CONFLICT_IRQ is not supported.  IRQ conflict checking is
	  delayed until after probing so that drivers can change the IRQ
	  to a free one; real conflicts require more cooperation between
	  drivers to handle.
	o Too many details to list.
	o This file requires splitting and a lot more work.

/usr/src/sys/i386/isa/isa_device.h:
	o Declare more things more completely.

/usr/src/sys/i386/isa/sio.c:
	o Prepare to register interrupt handlers as fast.

/usr/src/sys/i386/isa/vector.s:
	o Generate entry code for 16 fast interrupt handlers and 16 normal
	  interrupt handlers.  Changed some constants to variables:
	  # $unit is now intr_unit[intr].  Type is int.  Someday it should
	    be a cookie suitable for the handler (e.g., a struct com_s for
	    sio).
	  # $handler is now intr_handler[intr].
	  # intrcnt_actv[id_num] is now *intr_countp[intr].  The indirection
	    is required to get a contiguous range of counters for vmstat
	    and so that the drivers depend more in the driver than on the
	    interrupt number (drivers could take turns using an interrupt
	    and the counts would remain correct).  There is a separate
	    counter for each device and for each stray interrupt.  In
	    1.1.5, stray interrupt 7 clobbers the count for device 7 or
	    something worse if there is no device 7 :-(.
	  # mask is now intr_mask[intr] (was already indirect).
	 o Entry points are now _XintrI and _XfastintrI (I = intr = 0-15),
	   not _VdevU (U = unit).
	 o Removed BUILD_VECTORS stuff.  There's a trace of it left for
	   the string table for vmstat but config now generates the
	   string in one piece because nothing more is required.
	 o Removed old handling of stray interrupts and older comments
	   about it.

Submitted by:	 Bruce Evans
1994-08-18 05:09:36 +00:00
Søren Schmidt
49e3cd80ee Oops, changed order of include lines...
Reviewed by:
Submitted by:
1994-08-17 19:32:23 +00:00
Søren Schmidt
529f6e548c Updated to latest 1.1.5.1+ version
Reviewed by:
Submitted by:
1994-08-17 08:51:59 +00:00