Commit Graph

2179 Commits

Author SHA1 Message Date
Andreas Schulz
aa98692ffb Correct a name of one structure member in the sigaltstack structure.
Now it matches the man page and also the only other commercial implementation
i have found so far ( Solaris 2.x).
Changed the name from ss_base to ss_sp.
1995-01-29 01:19:25 +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
8ed9cf223f Nuke out a printf that otherwise spews crap at probe() time. A no-no. 1995-01-28 06:40:23 +00:00
Jordan K. Hubbard
f40f848a55 Look for scdreg.h in the right place. Whoops. 1995-01-28 05:32:53 +00:00
Jordan K. Hubbard
f1780a6c25 Add soundblaster CD to generic kernel. Hope this doesn't run us out
of space!
1995-01-28 05:01:43 +00:00
Jordan K. Hubbard
2e97cbe167 Tweak the location of the scd driver. 1995-01-28 04:20:55 +00:00
Jordan K. Hubbard
4265ddc50f Add the soundblaster CDROM driver back in, but this time under the GPL
since the Linux driver was used as the principle reference.
Submitted by:	Mikael Hybsch <micke@dynas.se>
1995-01-28 04:18:42 +00:00
David Greenman
8710a63985 Get rid of extra []'s and otherwise fix-up boot prompt. Reordered
boot flags processing to be alpha-beta.
1995-01-28 03:51:39 +00:00
David Greenman
8f895206ff Completed the fix for attempting to page out pages via the device_pager.
Submitted by:	John Dyson
1995-01-28 02:02:25 +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
Justin T. Gibbs
b11c81e076 Set the current transfer parameters directly after a mesg reject for either
Wide or Sync negotiation attempts as we do in all other phases of negotiation.
1995-01-27 17:37:05 +00:00
Poul-Henning Kamp
e05407d84b New and far better NCR5380/NCR53400 scsi-driver.
Handles at least Trantor T130 and ProAudioSpectrum adapters.
The pas driver has consequently been removed.
This driver can be configured without without interrupts.

Manpage to follow when PAS16 has been edited in.

Reviewed by:	phk
Submitted by:	Serge Vakulenko, <vak@cronyx.ru>
1995-01-27 07:49:19 +00:00
David Greenman
7a642ab589 Fix from Doug Rabson for a panic related to not initializing the kernel's
PTD.

Submitted by:	 John Dyson
1995-01-26 21:06:40 +00:00
Garrett Wollman
479bb8da0e Correct long-standing error in the RSVP hooks (would initialize but never
return success).
1995-01-26 18:59:02 +00:00
Andrey A. Chernov
89d8fc79de MAXCONS option described 1995-01-26 11:00:12 +00:00
Andrey A. Chernov
735fed15b5 DOn't use hardcode values for L_FN & L_SCR 1995-01-26 10:32:55 +00:00
Ugen J.S. Antsilevich
2b43c8c9db ip_fwdef.c was missing some assignments , and this
caused that bug by which firewall code was not working
if configured into kernel and worked only as lkm.
Now this must be fixed...Sorry guys..
1995-01-26 10:26:15 +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
2c24a153e0 Increase NUM_FKEYS to 65 1995-01-26 10:13:38 +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
87fcda4634 Remove FAT_CURSOR, it is already non-existent during several
last syscons versions
1995-01-26 05:04:37 +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
David Greenman
8eea120788 Kill previous commit as it isn't necessary. 1995-01-26 03:56:20 +00:00
David Greenman
6a1c735df7 Fix problem with freeing busy pages reported by Nick Sayer.
Submitted by:	 John Dyson
1995-01-26 03:34:31 +00:00
David Greenman
d3a10e2cad Comment out pmap_prefault for the time being (perhaps until after 2.1).
The object_init_pt routine is still enabled and used, however, and this
is where most of the 'pre-faulting' performance improvement comes from.
1995-01-26 01:45:02 +00:00
David Greenman
1e9122e529 Use the VM_PAGE_BITS_ALL in a place it can be used.
Comment out call to pmap_prefault() until stability problems can be
thoroghly analyzed.
1995-01-26 01:40:04 +00:00
David Greenman
3edf89fe83 Make sure that the pages being 'pre-faulted' are currently on a queue. 1995-01-26 00:55:03 +00:00
David Greenman
6100ed1d12 Be a bit less fast and loose about setting non-cacheablity of pages. 1995-01-25 22:06:23 +00:00
Bruce Evans
b5d89ca8ad Load the kernel symbol table in the boot loader and not at compile time.
(Boot with the -D flag if you want symbols.)

Make it easier to extend `struct bootinfo' without losing either forwards
or backwards compatibility.

ddb_aout.c:
Get the symbol table from wherever the loader put it.
Nuke db_symtab[SYMTAB_SPACE].

boot.c:
Enable loading of symbols.  Align them on a page boundary.  Add printfs
about the symbol table sizes.
Pass the memory sizes to the kernel.
Fix initialization of `unit' (it got moved out of the loop).
Fix adding the bss size (it got moved inside an ifdef).
Initialize serial port when RB_SERIAL is toggled on.
Fix comments.
Clean up formatting of recently added code.

io.c:
Clean up formatting of recently added code.

netboot/main.c, machdep.c, wd.c:
Change names of bootinfo fields.

LINT:
Nuke SYMTAB_SPACE.
Fix comment about DODUMP.

Makefile.i386:
Nuke use of dbsym.
Exclude gcc symbols from kernel unless compiling with -g.
Remove unused macro.
Fix comments and formatting.

genassym.c:
Generate defines for some new bootinfo fields.  Change names of old ones.

locore.s:
Copy only the valid part of the `struct bootinfo' passed by the loader.
Reserve space for symbol table, if any.

machdep.c:
Check the memory sizes passed by the loader, if any.  Don't use them yet.

bootinfo.h:
Add a size field so that we can resolve some mismatches between the loader
bootinfo and the kernel boot info.  The version number is not so good for
this because of historical botches and because it's harder to maintain.
Add memory size and symbol table fields.  Change the names of everything.

Hacks to save a few bytes:

asm.S, boot.c, boot2.S:
Replace `ouraddr' by `(BOOTSEG << 4)'.

boot.c:
Don't statically initialize `loadflags' to 0.  Disable the "REDUNDANT"
code that skips the BIOS variables.  Eliminate `total'.  Combine some
more printfs.

boot.h, disk.c, io.c, table.c:
Move all statically initialzed data to table.c.

io.c:
Don't put the A20 gate bits in a variable.
1995-01-25 21:40:47 +00:00
Jean-Marc Zucconi
2270d53491 Add entry for the joystick driver 1995-01-25 21:04:15 +00:00
Jean-Marc Zucconi
e183640c8b Add entry for joystick 1995-01-25 20:57:32 +00:00
Jean-Marc Zucconi
7e0284a390 ioctls for the joystick driver 1995-01-25 20:41:06 +00:00
David Greenman
a465acdaf8 Don't attempt to clean device_pager backed objects at terminate time.
There is similar bogusness in the pageout daemon that will be fixed soon.
This fixes a panic pointed out to me by Bruce Evans that occurs when
/dev/mem is used to map managed memory.
1995-01-25 20:36:29 +00:00
Jean-Marc Zucconi
673f8dc3be Add: device joy0 at isa? port "IO_GAME" (joystick) 1995-01-25 20:35:14 +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
Bruce Evans
5ba8561800 Add flag RB_BOOTINFO' that tells if the struct bootinfo' passed by the
boot has a size field.
1995-01-25 20:05:03 +00:00
Paul Richards
5858e91af1 Fix probe so it now correctly identifies all the different chips
in the PCnet/Lance family.

Fix attach so 32 bit cards don't call isa_dmacascade.

Add a workaround for 32 bit chips which incorrectly truncate the
ring buffer size.

Fix a bug where CRC errors were reported as framming errors.

Change copyright to a BSD style one.
1995-01-25 03:50:33 +00:00
David Greenman
5d64e24d3e Added Andres Vega Garcia's email address.
Submitted by:	Andres Vega Garcia
1995-01-24 20:53:45 +00:00
Paul Richards
94187a78bf is to lnc changes 1995-01-24 20:38:39 +00:00
Andrey A. Chernov
ea4a8be8c2 Fix stdarg.h for GNU C using builtin_next_arg 1995-01-24 16:22:52 +00:00
Peter Dufault
d1b8cd258b 1. Reject obviously broken CDB command lengths
2. Use "uprintf" (instead of printf) to log the "tape not ready" message
1995-01-24 12:04:56 +00:00
David Greenman
6d40c3d394 Added ability to detect sequential faults and DTRT. (swap_pager.c)
Added hook for pmap_prefault() and use symbolic constant for new third
argument to vm_page_alloc() (vm_fault.c, various)
Changed the way that upages and page tables are held. (vm_glue.c)
Fixed architectural flaw in allocating pages at interrupt time that was
introduced with the merged cache changes. (vm_page.c, various)
Adjusted some algorithms to acheive better paging performance and to
accomodate the fix for the architectural flaw mentioned above. (vm_pageout.c)
Fixed pbuf handling problem, changed policy on handling read-behind page.
(vnode_pager.c)

Submitted by:	John Dyson
1995-01-24 10:14:09 +00:00
David Greenman
e5501f43a5 Removed some unused/obsolete code.
Submitted by:	John Dyson
1995-01-24 10:02:00 +00:00
David Greenman
9532143ae6 Fixed a variety of deadlock and panic bugs, removed the bypass code, and
implemented the ability to limit bufferspace by memory consumed. (vfs_bio.c)
Fixed recently introduced bugs that caused extra I/O to happen in some
cases. (vfs_cluster.c)

Submitted by:	John Dyson
1995-01-24 10:00:46 +00:00
David Greenman
fff3cea1a9 Moved various pmap 'bit' test/set functions back into real functions; gcc
generates better code at the expense of more of it.

Submitted by:	John Dyson
1995-01-24 09:57:39 +00:00
David Greenman
fbdfe8ac22 Changed buffer allocation policy (machdep.c)
Moved various pmap 'bit' test/set functions back into real functions; gcc
generates better code at the expense of more of it. (pmap.c)
Fixed a deadlock problem with pv entry allocations (pmap.c)
Added a new, optional function 'pmap_prefault' that does clustered page
table preloading (pmap.c)
Changed the way that page tables are held onto (trap.c).

Submitted by:	John Dyson
1995-01-24 09:56:33 +00:00
David Greenman
b99f012ec5 Extended the previous change to cover the non-options case, too. 1995-01-24 08:03:22 +00:00
Bruce Evans
6670942f71 Declare `struct mbuf' with the correct scope to avoid lots of warnings
for compiling routed...  Previously a kernel function pointer that is
bogusly visible to applications was incompletely declared to hide the
problem.
1995-01-24 04:47:33 +00:00
Jordan K. Hubbard
8f998cf202 Y.A.B.M (Yet Another Bogus Makefile) 1995-01-24 00:41:50 +00:00
David Greenman
fb1322e408 Decrease MCLBYTES from 4k back to 2k. It isn't likely that we'll be doing
page flipping anytime soon and 4k just wastes memory. Performance via the
looback interface will decrease slightly by this change. Idealy, we need
buffers that can have variable sizes, but this requires a rewrite of far
too much code at the moment.
1995-01-23 19:21:49 +00:00
David Greenman
61be67ba43 Much better fix/support for the 83c795 based cards (the new SMC EtherEZ)
by steve@simon.chi.il.us (Steven E. Piette). Minor changes by me.
1995-01-23 19:06:08 +00:00
David Greenman
0a2d61c61c Kill redundant declarations of d_open_t and d_close_t. 1995-01-23 18:46:13 +00:00
Poul-Henning Kamp
b1b8617459 if_ze was not updated when the arp_ifinit stuff was done. now it is. 1995-01-23 18:02:32 +00:00
David Greenman
297a37f334 Applied fix from Andreas Schulz with a different comment by me. Fixes a
bug where TCP connections are closed prematurely.

Submitted by:	Andreas Schulz
1995-01-23 17:58:27 +00:00
David Greenman
3ec66d6c39 Added back the missing last few bytes of the file. 1995-01-23 17:53:21 +00:00
Poul-Henning Kamp
9e2429f597 Moved the typedefs of d_<foo>_t into sys/sys/conf.h and used them in
the definition of struct [cb]devsw.  Guess Bruce never got around to
complete this (?)

Poul-Henning
1995-01-23 02:52:28 +00:00
Poul-Henning Kamp
2bb96d8923 Nobody seems to need "mem_no" anymore, so I zapped it. 1995-01-23 02:36:22 +00:00
Poul-Henning Kamp
1aaca524e0 Fixed $Id$ 1995-01-23 02:31:53 +00:00
Garrett Wollman
bbb7c7109b Change caching strategy somewhat:
1) Don't clone routes to multicast destinations; there is nothing useful
   to be gained in this case.
2) Reduce default expiration timer to one hour.  Busy sites will still
   likely want to reduce this, but for ordinary users this is a reasonable
   value to use.
1995-01-23 02:02:50 +00:00
Garrett Wollman
18e1f1f110 route.c: keep track of where cloned routes come from, and make sure to
delete them when the ``parent'' goes away

route.h: add glue to track this to rtentry structure.  WARNING WILL ROBINSON!
This will be yet another incompatible change in your route-using binaries.
I apologize, but this was the only way to do it.  I took this opportunity
to increase the size of the metrics to what I believe will be the final
length for 2.1, so that when the T/TCP stuff is done, this won't happen
again.
1995-01-23 02:00:35 +00:00
Jordan K. Hubbard
cc877a0fe1 Add support for Olof Johansson's WD7000 driver.
Submitted by:   Olof Johansson <offe@ludd.luth.se>
1995-01-23 00:25:44 +00:00
Jordan K. Hubbard
3691d2b97c Add support for Olof Johansson's WD7000 driver.
Submitted by:	Olof Johansson <offe@ludd.luth.se>
Obtained from:
1995-01-23 00:25:03 +00:00
Justin T. Gibbs
bd524f1b07 Initialize SIMODE1, SCSIID, and SXFRCTL1 in ahc_init instead of at each
reconnection/selection with a target.
1995-01-22 00:48:39 +00:00
Justin T. Gibbs
d7be8cb6e9 Change the string returned in the aic7870 motherboard probe case. Change
#define to a more appropriate name.
1995-01-22 00:47:50 +00:00
Justin T. Gibbs
c135d93bbf aic7xxx.c:
Print out the length of the compiled sequencer program.

aic7xxx.seq:
	More optimizations.  Replace generic bcopy routine with bcopy_3
and bcopy_4 (ie unroll the loops) since these are the only two cases used.
Initialize SIMODE1 and SXFRCTL1 from the kernel in ahc_init instead of
at each selection/reselection since this is expensive and only needs to
be done once.  Condense function returns into previous instruction if possible.
Reorder some sections to kill superflous jumps.  These optimizations kill
the ~150k/s penalty adding support for Twin/Wide cards was costing since
the last place in the commaon path of execution where we had to do ugly,
convoluted testing for the type of card in the sequencer has gone away.
Next stop tagged queuing and target mode.
1995-01-22 00:46:53 +00:00
Bruce Evans
1a0518966d Don't use mi_switch() to terminate cpu_exit(). Calling it just happened to
work (mi_switch() counted the last timeslice again but this didn't affect
the exiting process' rusage because the rusage has already been finalized).

Remove stale comment.
1995-01-21 15:34:03 +00:00
Bruce Evans
cee6d3700d Remove unused definitions of vm statistics counters. Most of the
counting is now done in C.  There are still about 100 unused
definitions for other things.
1995-01-21 15:22:28 +00:00
Bruce Evans
e6891db8c5 Don't count context switches here, they are already counted in mi_switch(). 1995-01-21 15:20:23 +00:00
Bruce Evans
d7e3a89f1f Don't count the parent's previous timeslice in the child's resource usage
(it was counted twice).

Set the start time more accurately.
1995-01-21 15:08:57 +00:00
Bruce Evans
54c2af254d #Include <sys/types.h> so that <sys/resource.h> can be #included without
explicitly #including <sys/types.h>.  Some gnu software (?gdb) depends on
this and broke when I fixed <stdio.h> to not include <sys/types.h>.

Bruce
1995-01-21 14:58:25 +00:00
Bruce Evans
a2562ad917 Keep track of open devices better to avoid closing the console device when
the physical device is closed.  Previously only the reverse case was handled.
Abuse the cdevsw interface instead of the vfs interface to do this.

Remove unnecessary #includes.
1995-01-21 14:12:15 +00:00
Andrey A. Chernov
60efec1dab Restore original fix from ohki, not check m for NULL it is already done
in the code above.
Submitted by: ohki@gssm.otsuka.tsukuba.ac.jp
1995-01-21 06:32:26 +00:00
Andrey A. Chernov
f76c8e8cc3 Change if (m->valid == 0) to if (m && m->valid == 0) 1995-01-20 23:30:42 +00:00
Bill Paul
fc042b6935 Submitted by: ohki@gssm.otsuka.tsukuba.ac.jp
When using cp to copy a file under the following circumstanes:

- original file in on an NFS filesystem
- destination file is on the same NFS filesystem
- the file is less than 8Mbytes in size
- the file is larger than 65536 bytes in size

the cp process can get frozen in device-wait and never wake up (cp uses
mmap() in this case).
A small change to allocbuf() fixes this.
1995-01-20 20:11:31 +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
f06a45ddd7 Removed hardcoded definition for RB_SERIAL that I left in my accident
(had it there for testing purposes). RB_SERIAL should be found in
<sys/reboot.h>.
1995-01-20 07:52:42 +00:00
Bill Paul
f778c9da00 Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
bios boot block changed to allow booting from both the attached graphics
display and from a serial port. (A specially compiled serial boot block
is no longer necessary.) The boot block should detect the presence or
absence of a keyboard: if there is no keyboard, COM1 is turned into the
console. This simulates the behavior of the Sun boot PROMs. Unplug your
keyboard, attach a terminal to COM1 and you should be ready to go. :)
1995-01-20 07:48:27 +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
Bill Paul
c665f1dabd Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
Added a new flag (RB_SERIAL) which is passed by the boot block to tell
the kernel that it should use a serial port as a console. (The kernel
can still be forced to boot in serial console mode if 'options COMCONSOLE'
is used.)
1995-01-20 07:28:47 +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
Andreas Schulz
a4ef0a998a Add the missing forward declaration of chopen. Reported in the
mailinglists some time ago.
1995-01-19 21:02:54 +00:00
Peter Dufault
c3280a6d1a Remove dup biodone and no more SCSIUSER option. 1995-01-19 12:41:36 +00:00
Peter Dufault
8d38e0afd0 Print out exactly what we think the board is, and for the latest
rev Adaptec boards enable data transfer length detection instead
of assuming requested amount of data is transferred.
1995-01-19 12:33:10 +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
Bruce Evans
2d2fb1bf6b The %eflags checking introduced in the previous commit was too zealous.
sigreturn() sometimes failed for ordinary returns from signal handlers.
Failures of ordinary returns "can't happen" and are badly handled.
"Temporary" fix: allow users to corrupt PSL_RF.  This is fairly
harmless.  A correct fix would involve saving the old %eflags (and
perhaps the old segment registers) where the user can't get at them.
1995-01-17 01:15:12 +00:00
Joerg Wunsch
988fa8efe3 Roll in my changes to make the cd9660 code understand the older
(original "High Sierra") CD format.  I've already implemented this for
1.1.5.1 (and posted to -hackers), but didn't get any response to it.
Perhaps i'm the only one who has such an old CD lying around...

Everything is done empirically, but i had three of them around (from
different vendors), so there's a high probability that i've got it
right. :)
1995-01-16 17:03:29 +00:00
Justin T. Gibbs
87cf6d44c7 Add $Ids. Use DMA for downloading SCBs to the sequencer. Implement SDTR,
WDTR, and message reject handlers so they don't need to exist in the
sequencer.  All three of these cases are not on the critical path, so it
makes little sense to use up precious sequencer ram for them.
1995-01-16 16:33:47 +00:00
Justin T. Gibbs
344e176820 Add $Id. Recognize motherboard aic7870 based controllers. 1995-01-16 16:31:57 +00:00
Justin T. Gibbs
f61afda9a4 Add $Id 1995-01-16 16:31:34 +00:00
Justin T. Gibbs
0d56403998 At $Ids to all files. Have the sequencer use DMA to tranfer its SCB
(SCSI control block) instead of having the host PIO it down.  Also
reimplement WDTR and SDTR optimization to remove code in the sequencer
and place the responsibility of knowing when to initiate SDTR or WDTR
on the kernel driver.  This vastly shortens the sequencer program yet
yeilds the same performance.
1995-01-16 16:31:21 +00:00
David Greenman
761dd66739 Attempt to close a hole using splhigh/splx. There still appears to be a
serious one in the same area that I don't have time to fix.
1995-01-15 09:35:58 +00:00
David Greenman
7082ec8aa5 Fixed some page table reference count problems; these changes may not be
complete, but should be closer to correct than before.
1995-01-15 09:06:23 +00:00
David Greenman
edfab85b1a Moved some splx's down a few lines in vm_page_insert and vm_page_remove
to make the locking a bit more clear - this change is currently a NOP
as the calls to those routines are already at splhigh().
1995-01-15 07:31:34 +00:00
Garrett Wollman
b60e6e6e9f Some fixes to device configuration, now that I've had a chance to do it
properly from the beginning:

	1) The `kern_devconf' struct should be a part of the driver's
	   `softc' structure (now it is).
	2) The `description' should say what the device actually is,
	   rather than just giving a model number (now it does).
	3) The device should be registered even if the probe fails, so
	   that it can be reconfigured later.
	4) For netifs, the device state should follow the IFF_UP flag.

Other network interfaces should follow this example.  (Please?)  Eventually
there should be a rundown routine doing the equivalent of setting IFF_UP
off, and perhaps more if warranted.
1995-01-15 00:18:17 +00:00
Bruce Evans
20415301cd Fix security holes in sigreturn(), ptrace() and procfs. sigreturn()
attempted to check for insecure and fatal eflags and segment
selectors, but missed many cases and got the IOPL check back to
front.  The other syscalls didn't check at all.

sys_process.c, machdep.c:
Only allow PT_WRITE_U to write to the registers (ordinary and FP).

psl.h, locore.s, machdep.c:
Eliminate PSL_MBZ, PSL_MBO and PSL_USERCLR.  We are not supposed
to assume anything about the reserved bits.  Use PSL_USERCHANGE
and PSL_KERNEL instead.  Rename PSL_USERSET to PSL_USER.

exception.s:
Define a private label for use by doreti when returning to user
mode fails.

machdep.c:
In syscalls, allow changing only the eflags that can be changed on
486's in user mode (no longer attempt to allow benign IOPL changes;
allow changing the nasty PSL_NT; don't allow changing the i586
bits).

Don't attempt to check all the cases involving invalid selectors
and %eip's.  Just check for privilege violations and let the invalid
things cause a trap.

procfs_machdep.c:
Call the ptrace register functions to do all the work for reading
and writing ordinary registers and for single stepping.

trap.c:
Ignore traps caused by PSL_NT being set.  Previously, users could
cause a fatal trap in user mode by setting PSL_NT and executing an
iret, and a fatal trap in kernel mode by setting PSL_NT and making
a syscall.  PSL_NT was cleared too late and not in enough modes to
fix the problem.

Make all traps in user mode (except T_NMI) nonfatal.

Recover from traps caused by attempting to load invalid user
registers in doreti by restarting the traps so that they appear to
occur in user mode.
---

Fix bogons that I noticed while fixing the above:

psl.h:
Fix some comments.

Uniformize idempotency ifdef.

exception.s, machdep.c:
Remove rsvd[0-14].  rsvd0 hasn't been reserved since the 486 came
out.  Replace rsvd0 by `align'.  rsvd[0-11] used wrong (magic
non-unique) trap numbers.  Replace rsvd[1-14] by rsvd.

locore.s:
Enable alignment check flag on 486's and 586's.

machdep.c:
Use a better type for kstack[].

Use TFREGP() to find the registers.

Reformat ptrace functions from SEF to something closer to KNF.

procfs_machdep.c:
The wrong pointer to the registers got fixed as a side effect.

Implement reading and writing of FP registers.

/proc/*/*regs now work (only) for processes that are in memory.

Clean up comments.

trap.c, trap.h:
Remove unused trap types.
1995-01-14 13:20:26 +00:00