470 Commits

Author SHA1 Message Date
Peter Dufault
e8831d3712 added ssc device 1995-01-08 13:40:31 +00:00
Jordan K. Hubbard
f677a957bf Fix indenting of gsc entry, reserve 48 for cyclades. 1995-01-07 23:20:08 +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
Jordan K. Hubbard
2f6df2645b Gunther Schadow <gusw@fub46.zedat.fu-berlin.de>'s
driver for the Genius GS-4500 hand scanner.
Submitted by:	gusw@fub46.zedat.fu-berlin.de
1995-01-07 14:52:08 +00:00
Stefan Eßer
623976474c Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Reviewed by: <wollman>
First hooks and defines for the ISDN driver,
that soon will see the light ...
1995-01-05 19:51:51 +00:00
Jordan K. Hubbard
dd4a485085 From Bill Paul:
- /sys/i386/i386/swapgeneric.c is just plain broke. But fear not, for I
  have unbroken it. One thing that swapgeneric.c does is walk through the
  list of configured devices searching for a boot device. The only easy
  way to accomplish this in 2.0 is to use Garret Wollman's kern_devconf
  stuff. *BUT*, the head of the kern_devconf linked list (dc_list) is declared
  static in /sys/kern/kern_devconf.c. This means that swapgeneric.c can't
  see it at link time. I had to remove the 'static' keyword to get around
  this little problem. I hope this doesn't break anything anywhere.

  *Furthermore,* there's a small matter of making the call to setconf()
  in swapgeneric.c disappear when 'config kernel swap generic' isn't used.
  You could change /sbin/config to create a dummy setconf() function in
  swapkernel.c, but that seems messy somehow. (It's also someting of an
  'it isn't broken, why are you fixing it' situation.) My solution was to
  do what the NetBSD people did and put an #ifdef GENERIC around the call
  to setconf(). If your kernel is called GENERIC or you define 'options
  GENERIC,' then you can use 'config kernel swap generic' and it'll work.

  That aside, the upshot is that: a) swapgeneric.c actually works, and
  and b) the -a boot flag now works as well. If you boot with -a, as in
  "Boot: wd(0,a)/kernel -a" you will be presented with a 'root device?'
  prompt after the autoconfig phase, at which point you can specify what
  device you want mounted as root. Regrettably, you can't specify an NFS
  filesystem. Yet. Three files are affected: /sys/i386/i386/swapgeneric.c,
  /sys/i386/i386/autoconf.c and /sys/kern/kern_devconf.c.

Submitted by:	wpaul
1994-12-31 17:11:59 +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
Andreas Schulz
60ecea7924 Add entries for the sony and panasonic drives and drivers. 1994-12-25 23:25:54 +00:00
Bruce Evans
13d7c724ca Obtained from: 1.1.5
Fix single-stepping of emulated FPU instructions.

Don't panic if an FPU instruction is attempted but there is no FPU
and no FPU emulator is configured.
1994-12-24 07:22:58 +00:00
Joerg Wunsch
91c38cb885 Ooops, i forgot one NVT > 0 in a previous commit. Now pcvt will also
work as the system's console.
1994-12-18 19:42:41 +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
David Greenman
94101b5208 Move page_unhold's in pmap_object_init_pt down one line to gard against
a potential race condition.
1994-12-18 14:16:22 +00:00
David Greenman
931bde7f72 Check for PG_FAKE too in pmap_object_init_pt. 1994-12-18 03:36:27 +00:00
Jordan K. Hubbard
cdf25f3740 Add Fred Cawthorne's GPIB driver.
Submitted by:	fcawth@delphi.umd.edu
1994-12-17 08:07:03 +00:00
Bruce Evans
9d93bf70ea Move declaration of d_strategy_t to <sys/conf.h>. 1994-12-11 23:05:18 +00:00
David Greenman
c8a62b4bc5 Removed inappropriate comment. 1994-12-11 03:33:58 +00:00
David Greenman
d83ea8bcbd Add additional comment. 1994-12-11 03:11:23 +00:00
David Greenman
32b88083a9 Fix bogus comment. 1994-12-11 02:28:36 +00:00
Poul-Henning Kamp
ae063c2896 Entries for the vn driver completed. 1994-12-04 20:08:57 +00:00
Poul-Henning Kamp
bd1322b660 Allocated chardev#43 and blkdev#15 to the vn-driver. The rest of the stuff
will come as a latter date, I just wanted to lay claim on some numbers.
1994-12-04 07:14:16 +00:00
Bruce Evans
b39b673d37 i386/exception.s,
Keep track of interrupt nesting level.  It is normally 0
	for syscalls and traps, but is fudged to 1 for their exit
	processing in case they metamorphose into an interrupt
	handler.

i386/genassym.c;
	Remove support for the obsolete pcb_iml and pcb_cmap2.

	Add support for pcb_inl.

i386/swtch.s:
	Fudge the interrupt nesting level across context switches and in
	the idle loop so that the work for preemptive context switches
	gets counted as interrupt time, the work for voluntary context
	switches gets counted mostly as system time (the part when
	curproc == 0 gets counted as interrupt time), and only truly idle
	time gets counted as idle time.

	Remove obsolete support (commented out and otherwise) for pcb_iml.

	Load curpcb just before curproc instead of just after so that
	curpcb is always valid if curproc is.  A few more changes like
	this may fix tracing through context switches.

	Remove obsolete function swtch_to_inactive().

include/cpu.h:
	Use the new interrupt nesting level variable to implement a
	non-fake CLF_INTR() so that accounting for the interrupt state
	works.

	You can use top, iostat or (best) an up to date systat to see
	interrupt overheads.  I see the expected huge interrupt overheads
	for ISA devices (on a 486DX/33, about 55% for an IDE drive
	transferring 1250K/sec and the same for a WD8013EBT network card
	transferring 1100K/sec).  The huge interrupt overheads for serial
	devices are unfortunately normally invisible.

include/pcb.h:
	Remove the obsolete pcb_iml and pcb_cmap2.  Replace them by
	padding to preserve binary compatibility.

	Use part of the new padding for pcb_inl.

isa/icu.s:
isa/vector.s:
	Keep track of interrupt nesting level.
1994-12-03 10:03:19 +00:00
Garrett Wollman
39c28aded9 Add Cronyx/Sigma cdevsw[] entry. 1994-12-03 00:18:15 +00:00
Joerg Wunsch
d439025208 Temporary kludge: treat \r same as \n in input, so working on a
comconsole will behave as expected.  The true problem should be fixed
instead, Bruce' comment for this:

>Anyway, i found the reason for my problems: somehow, ICRNL isn't in
>effect at `userconfig' time (but only for comconsole?), hence only

ICRNL doesn't apply to cngetc().  cnputc() unconditionally does the
equivalent of ONLCR; perhaps cngetc() should unconditionally do the
equivalent of ICRNL.  Ddb must be checking for CR.  Userconfig only
checks for NL.  Userconfig works with syscons because pccngetc()
does the conversion.  This is probably the wrong place to do it.
1994-11-27 13:43:37 +00:00
Poul-Henning Kamp
6128633879 I made a syntax error yesterday.
Submitted by:	John Capo
1994-11-27 01:49:39 +00:00
Poul-Henning Kamp
4ca88be6e9 Set the bootverbose if so desired.
if (bootverbose)
    Print the geometries the bios passes to us (through the bootblocks).
1994-11-26 09:37:57 +00:00
Poul-Henning Kamp
048773d8d9 Grap the bootinfo structure the bootblock passes us. 1994-11-18 05:27:34 +00:00
David Greenman
288c2640aa Allow MAXMEM to be larger than the detected physical memory. This change
was supposed to have already been made, but got botched somewhere.
Don't clobber the last page of memory (where the message buffer is). Some
BIOS don't gratuitously wipe it out on reboot.
1994-11-16 00:41:06 +00:00
Bruce Evans
b0d1e6de04 Make gdt_segs[] public again for APM.
Make ldt[] public again and restore currentldt and _default_ldt for
USER_LDT.
1994-11-15 14:12:55 +00:00
Bruce Evans
e77e2e6ca1 Oops, the previous commit got the diff for the log message instead of
the following.

Move declarations to and from <machine/segments.h>.  Make segment stuff
static if possible.

Remove unused (although initialized) global variables _default_ldt,
currentldt, _gsel_tss (rename the latter to the auto variable
gtel_tss).

Use "correct" and consistent types for interrupt handlers.

Remove a mailing address from the code.

Fix type mismatches found by adding prototypes.
1994-11-14 14:23:54 +00:00
Bruce Evans
30008dda2d (Bogus several hundred line diff for a log message deleted. See rev 1.91
for the intended log message. -DG)
1994-11-14 14:19:54 +00:00
Bruce Evans
36633bf49d Undo a previous change. <sys/disklabel.h> was broken, not these files. 1994-11-14 13:22:52 +00:00
Bruce Evans
2c02e8a20a Replace strtol() by strtoul() so that "negative" addresses and masks don't
get truncated to LONG_MAX.  Don't lobotomize the merged library source.

Make all private data static.

Use int_parms for the i/o "address" since the "address" is really a number
and is represented as an int.

Add command `flags' to allow changing device flags.

Fix scrolling of device listing.  Only scrolling of the current devtab
was controlled.  Reprint the header after scrolling.

Rename commands and change strings to match their config(8) keywords:

	io -> port
	IOaddr -> port
	mem -> iomem (abbreviation is io :-()
	MemAddr -> iomem
	case changes

Don't use NULL for ASCII NUL.

Call strtoul() with base 0 for both numbers and addresses so that input
is consistent and hex and octal can be used for numbers.

Fix entry of irq number.  Check the range at no extra cost.  It wasn't
possible to enter irq -1.

Format device listing better.  Large numbers (such as 0xffffffff for the
GENERIC lpt0 port) messed up the formatting.

Show the unit number in the device listing.  Comment about the fields
that aren't shown.
1994-11-14 03:22:28 +00:00
Jordan K. Hubbard
501cc59d80 I *almost* had it right. Skip over the rest of the command if it's
abbreviated.
1994-11-13 01:55:33 +00:00
Jordan K. Hubbard
95ea0c1390 Make the command set actually work the way I'd intended - you can abbrevate
commands now, as long as whatever you abbreviate them to remains unique.
1994-11-13 00:57:06 +00:00
Jordan K. Hubbard
7bb4591ed9 Whoops, make the comment match the new reality while we're at it. 1994-11-13 00:43:29 +00:00
Jordan K. Hubbard
b5cd0f92f4 mem's 2nd arg was incorrectly defined as an integer, not address parameter.
I found this out the hard way when I went to do:

	mem ed0 0xe8000

And found out that I had to enter the second parameter in decimal.. :-)
1994-11-13 00:42:01 +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
Poul-Henning Kamp
e113d7633d Make a kernel sans FFS possible. 1994-11-12 01:47:43 +00:00
David Greenman
027f8c4e0f Convert irq to a bitmask before putting in id_irq.
Fixed bugs related to the 'more' code.
1994-11-11 05:28:59 +00:00
Andreas Schulz
1113f91681 Shut up a compiler warning about a missing cast. 1994-11-10 23:14:55 +00:00
Andrey A. Chernov
3b8f1cfc05 Use adjkerntz into inittodr too (for APM stuff) 1994-11-10 12:53:13 +00:00
Jordan K. Hubbard
6c89ff0342 Cosmetic - the help screen didn't have its header properly formatted. Needed
an extra tab.
1994-11-08 02:25:20 +00:00
Poul-Henning Kamp
98020fdd6c Added a kernel variable, "dodump" defaulting to zero, which disables dumps.
Somebody should make a mib variable for it.
Just now it is pointless to dump the kernel, since we have nothing which
can read the dump.
Furthermore is should never be the default to dump.
	options	DODUMP
will enable dumps.
1994-11-07 03:51:32 +00:00
Poul-Henning Kamp
89c8eae117 Initialize %fs and %gs from %ds.
This seems to stabilize the APM-bios on my Gateway Handbook, and it makes
sense in general too.
1994-11-06 22:18:45 +00:00
David Greenman
fc64ae2b4e Do a better job at preparing registers for the new process in setregs()
by setting them all to a known state.
1994-11-06 04:46:53 +00:00
Bruce Evans
2c305bdb3c Nuke the losing version of microtime. The assembler version now works
for all reasonable HZ's.  HZ > 1000 doesn't work because of sloppy
conversions in hzto() (division by (tick / 1000) == 0).  This was
fixed in 1.1.5.

Eliminate some extern declarations by including the appropriate header
files that now contain appropriate declarations.
1994-11-06 01:33:03 +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
Bruce Evans
ae406484f0 Fix a bug introduced between 1.1 and 1.1.5. Loading the time was moved
outside the critical region.

Make it work with 2.0.  It wasn't designed to be called at splclock().

Make it work with prescaling.  The overflow threshold was bogus.

Make it work for any HZ.  Side effect of fixing prescaling.

Speed it up.  Allocate registers better.  Reduce multiplication and
division to multiplication and a shift.  Speed is now 5-6 usec on a
486DX/33, was about 3 usec more.

Optimize for the non-pentium case.  The pentium code got moved around
a bit and hasn't been tested.

Change #include's to 2.0 style.
1994-11-05 23:53:46 +00:00
Paul Traina
c7aed1527d Assign character device 20 to be the user reserved device. 1994-11-03 17:49:01 +00:00
Jordan K. Hubbard
8cf0da9ceb Unconditionalize USERCONFIG. Uh, thanks, David. 1994-11-03 14:57:54 +00:00