Commit Graph

2859 Commits

Author SHA1 Message Date
Bruce Evans
5e0f6c4338 Fixed the ownership and permissions of /dev/io. Rev.1.32 broke rev.1.29. 1996-04-07 14:59:26 +00:00
Bruce Evans
2151975455 Fixed devfs device names and numbers.
Fixed handling of unknown CMOS types - don't attach unrecognized devices.
1996-04-07 14:46:42 +00:00
Bruce Evans
0166c5c6b4 Allow specifying the BIOS drive number. Removed the hd drive type.
hd essentially wired the FreeBSD drive number to 0 without changing
the BIOS drive number.  Now the numbers can be specified independently.

Replaced the BOOT_HD compile time flag with with BOOT_HD_BIAS.  Defining
the new flag as 1 should give the same behaviour as defining the old
flag as anything.  I haven't tested defining these flags.
1996-04-07 14:28:05 +00:00
John Dyson
07b1059113 Major cleanups for the pmap code. 1996-04-07 02:23:05 +00:00
David Greenman
baddaf9480 Switch 586/686 back to generic_bzero and #if 0'd the "optimized" code. It
turns out that it actually reduces performance in real-world cases.

Noticed by:	bde
1996-04-06 01:06:06 +00:00
Andrey A. Chernov
2cb9219c5d Fix adjkerntz expression priority 1996-04-05 18:56:10 +00:00
Andrey A. Chernov
fe0d5f43c5 Add wall_cmos_clock sysctl variable, needed to manage adjkerntz even for
UTC cmos clocks (needed for Local Timezone FSes)
1996-04-05 03:36:31 +00:00
Joerg Wunsch
c80faa792c Work around a braindead signal handling in many newer HP printers.
They don't have BUSY de-asserted by the time they ACK (and thus cause
an interrupt).  The workaround is to try seeing if the BUSY will be
de-asserted soon, and if not, to use an incremental backoff and
semi-polled mode instead of the fixed timeout with 1/2 s we've been
using previously (that caused the printer to run really slooow).

Printers that have been working previously should not be affected by
this.
1996-04-04 12:28:36 +00:00
Poul-Henning Kamp
506c540bbb Improvementss to netboot
Initial but not yet functional PCI support.

Reviewed by:	phk
Submitted by:	Luigi Rizzo <luigi@labinfo.iet.unipi.it>
1996-04-03 19:01:37 +00:00
John Dyson
030ad08012 Fixed a problem that the UPAGES of a process were being run down
in a suboptimal manner.  I had also noticed some panics that appeared
to be at least superficially caused by this problem.  Also, included
are some minor mods to support more general handling of page table page
faulting.  More details in a future commit.
1996-04-03 05:23:44 +00:00
Gary Palmer
23d048ee3b Add NULLFS_DIAGNOSTIC, KERNFS_DIAGNOSTIC, UMAPFS_DIAGNOSTIC, UNION_DIAGNOSTIC
and SAFETY. Currently all commented out until I can verify that they don't
cause LINT to fail to compile.
1996-04-03 00:28:40 +00:00
Garrett Wollman
348acd946c Document PERFMON.
Delete obsolete PROBE_VERBOSE.
1996-04-02 18:13:36 +00:00
Poul-Henning Kamp
3a65e0a3de Align help screen.
add gateway command.
1996-04-02 15:17:36 +00:00
Marc G. Fournier
ecd87fe6c3 changed from using dev_link() to devfs_link() 1996-04-02 04:52:03 +00:00
Marc G. Fournier
f28213ad1d Convert from using devfs_add_devsw() to devfs_add_devswf()
Fixed Permissions/Ownership in DEVFS to reflect /dev
1996-04-01 21:02:14 +00:00
David Greenman
909e5e0e77 Change if/goto into a while loop. 1996-03-31 23:00:32 +00:00
Justin T. Gibbs
716a0bd94a Convert to use stdarg in bt_cmd. Use XS_SELTIMEOUT for selection timeouts.
Obtained from: stdarg fixes adapted from cgd's work on the NetBSD BT driver
1996-03-31 18:19:50 +00:00
Justin T. Gibbs
a9debe9ce1 Convert to use stdarg in aha_cmd. Use XS_SELTIMEOUT for selection timeouts.
Obtained from: stdarg fixes adapted from cgd's work on the NetBSD BT driver
1996-03-31 18:19:38 +00:00
Joerg Wunsch
0e317d05cc Fetch the (dummy) READY CHANGED condition interrupt stati that
happen after an FDC reset.

Submitted by:	bde
1996-03-31 18:04:51 +00:00
Joerg Wunsch
4ddc73e65b Fix a bogus message:
ed0: Invalid irq configuration (2) must be 2-5 for 3c503
                                ^          ^
1996-03-31 15:53:19 +00:00
Bruce Evans
d72ee36f63 Removed dead option DUMMY_NOPS.
Restored undead option AUTO_EOI_1.
Added undocumented option PERFMON.
1996-03-31 04:18:02 +00:00
Bruce Evans
048cd610ad Finished removing NOP macros. 1996-03-31 04:17:25 +00:00
Bruce Evans
ef9805a3c8 Moved rtcin() to clock.c.
Always delay using one inb(0x84) after each i/o in rtcin() - don't
do this conditional on the bogus option DUMMY_NOPS not being defined.
If you want an optionally slightly faster rtcin() again, then inline
it and use a better named option or sysctl variable.  It only needs
to be fast in rtcintr().
1996-03-31 04:05:36 +00:00
Bruce Evans
5d170d7eb8 Killed religous FASTER_NOP again. 1996-03-31 03:31:29 +00:00
Justin T. Gibbs
6e9d1d8bb6 Fix support for the aic7850 by looking only at the relavent bits of the
QINCNT.  The 7850 puts random garbage in the high bits and all my attempts
to determine the cause of this failed.  This approach does seem to work
around the problem.

Go back to relying on the SCSIPERR interrupt instead of having the sequencer
interrupt at the beginning of ITloop after a parity error occured.

Determine the number of SCBs on a card automatically and base the qcntmask
on the number of SCBs.

Add entries for 11.4MHz, 8.8MHz, 8.0MHz, and 7.2MHz to ULTRA portion of
the syncrate table.  They seem to work fine on the 2940UW I have here and
will allow more non-ultra devices (like my tape drive) to run sync while
the adapter is in ULTRA mode.

Return XS_SELTIMEOUT instead of XS_TIMEOUT for selection timeouts.  I was
getting sick of waiting for the SCSI code to retry each non-existant unit
multiple times during boot and XS_SELTIMEOUT bypasses all retries.

Use new SLIST queue macros.  This was inspired by NetBSD using TAILQs in
their SCSI drivers.  For optimum cache hits, the free scb list should
be LIFO which is what the old and new code does.  NetBSD implemented a
FIFO queue for some reason.

Spaces -> tabs.
1996-03-31 03:15:31 +00:00
Justin T. Gibbs
2af488412c Override the unit number passed into us in the isa_device structure with
the current unit in bt_unit.  We do this as a kludge to make the unit nubmer
work properly between the pci/eisa/isa bt boards that are in the system.
1996-03-31 03:06:20 +00:00
Justin T. Gibbs
b023c93005 Don't set the number of SCBs here. aic7xxx.c determines the number of
SCBs by walking them.
1996-03-31 03:04:38 +00:00
Peter Wemm
6386a7e079 When doing a 'make depend', dont blow away the existing .depend until
the generation of a new one is complete.
1996-03-30 14:57:02 +00:00
Garrett Wollman
17d2223b8c There is no need to zero out the TSC when configuring a counter,
says Mike Haertel.
1996-03-29 17:48:21 +00:00
Bruce Evans
a680ab7537 Count PCI irqs in up to 4 ISAish counters named `pci irqnn' instead of
in the clk0 counter.

Reviewed by:	s
1996-03-29 15:01:51 +00:00
Bruce Evans
78966e20d9 Parenthesized macros.
Fixed munged tabs.
1996-03-29 14:14:07 +00:00
Bruce Evans
1d4bbd7d60 Added necessary quotes (${CPP} might have spaces in it). Removed
unnecessary quotes.
1996-03-29 14:08:30 +00:00
Bruce Evans
98189b75c3 Removed references to nonexistent files. 1996-03-29 13:39:48 +00:00
Bruce Evans
a95d7065d5 Removed never-used files. 1996-03-29 13:22:04 +00:00
Bruce Evans
e57841c795 Fixed devfs group of some more disk devices.
Added devfs lpt control device (only the standard one, not the ones that
aren't supported by MAKEDEV).

Removed some stupid comments.
1996-03-29 11:54:56 +00:00
Bruce Evans
f85120ac5b Fixed group of some more disk devices.
Fixed devfs function names.
1996-03-29 11:45:12 +00:00
Garrett Wollman
0bb8e015ec Sync up the Pentium implementation with the documentation.
Previously, the sense of the E flag was reversed on
Pentiums.
1996-03-28 21:00:29 +00:00
Garrett Wollman
28dc3d2757 >Blush<. Use the correct opcode for the WRMSR instruction. 1996-03-28 20:39:45 +00:00
Garrett Wollman
8dec8ed218 Nit: according to the Harvard code, it is necessary to clear the timestamp
counter before loading the performance-monitor control register.  I'm
not sure I believe this, but we'll follow their lead for the moment.
As a result of this commit, the performance-monitoring test program that
I wrote now works (the program will find its way to share/examples).
1996-03-28 20:39:20 +00:00
Garrett Wollman
f7ff248201 Teach the disassembler about the 0f,3x family of instructions
(RDMSR, RDTSC, WRMSR, and RDPMC).
1996-03-28 20:35:03 +00:00
Jordan K. Hubbard
2fa43eefcf A bug fix and a couple of new modes for the meteor driver.
Submitted-By: Jim Lowe <james@miller.cs.uwm.edu>
1996-03-28 20:28:14 +00:00
Steven Wallace
2983151216 Implement ioctl's IBCS2_TCFLSH and IBCS2_TCXONC. Improve termios conversion.
Implement xenix_eaccess() system call.

Obtained from: NetBSD
1996-03-28 19:53:21 +00:00
Bruce Evans
cf78fc4129 Undid the last 2 commits. Rev.1.43 reversed the changes in rev.1.42 and
rev.1.44 was a subset of them.
1996-03-28 15:03:41 +00:00
Marc G. Fournier
734daefc97 Switched from using devfs_add_devsw() to devfs_add_devswf()
Reviewed by:	julian@freebsd.org
1996-03-28 14:31:42 +00:00
Marc G. Fournier
719d4dc5bd Added DEVFS support to create ttyv* devices
Reviewed by:	julian@freebsd.org
1996-03-28 14:30:37 +00:00
Marc G. Fournier
6e18ce4676 Switched from using devfs_add_sw() to using devfs_add_swf()
Reviewed by:	julian@freebsd.org
1996-03-28 14:29:52 +00:00
John Dyson
4e489ec421 Remove a now unnecessary prototype from pmap.c. Also remove now
unnecessary vm_fault's of page table pages in trap.c.
1996-03-28 05:40:58 +00:00
John Dyson
208bfdc98b Significant code cleanup, and some performance improvement. Also,
mlock will now work properly without killing the system.
1996-03-28 04:59:34 +00:00
Garrett Wollman
650e27cd25 A slightly-closer-to-working version that includes code appropriate
to regular Pentiums.  Unfortunately, it doesn't work on mine,
but I'm not sure if this is the fault of the driver.
1996-03-27 22:02:18 +00:00
Bruce Evans
6c4591a089 Fixed ownerships of callout devices. 1996-03-27 20:03:32 +00:00
Bruce Evans
df957ee1b3 Moved the initialization of the devfs devices to after the initialization
of the devswitch so that it actually works.
1996-03-27 19:11:41 +00:00
Bruce Evans
2412bc33ad Fixed name of /dev/speaker (it's not spkr). 1996-03-27 19:07:33 +00:00
Bruce Evans
3dffe3c5f6 Fixed permissions of /devfs/*random.
Fixed group and permissions of /devfs/perfmon.
1996-03-27 19:04:55 +00:00
Bruce Evans
1170175e62 Fixed mode of /devfs/console. 1996-03-27 18:55:19 +00:00
Bruce Evans
6ae323519c Fixed group of disk devices (was wheel or games, now operator).
Added scsi control devices.

Converted almost everything that I changed to use devfs_add_devswf()
and verbose id macros.

st.c:
Renamed enrst* to erst* since that's what the current name is (enrst
seems to be an old name).
1996-03-27 18:50:10 +00:00
Steven Wallace
a5e1a0f2e9 The recently introduced sv_sendsig entry of the sysentvec structure
is incorrectly set to 0, for the purpose of "ignoring" the signal.
This does not ignore the signal, but rather, executes the function
at location 0 in kernel mode, which shortly thereafter causes a panic.

The sv_sensig entry for ibcs2 emulation should be set to the system's
normal sendsig routine.
1996-03-27 18:39:40 +00:00
Bruce Evans
ba00d77a82 Print stack pointer and frame pointer in trap messages.
Fixed "trace/trap" message.

Reviewed by:	davidg
1996-03-27 17:33:39 +00:00
Bruce Evans
8102fcda9b Eliminated dependency on opt_sysvipc.h. 1996-03-27 17:21:57 +00:00
Bruce Evans
6d72aad8a7 Removed vestiges of dummy frame at top of tmpstk.
Use alignment macros where appropriate.

Cleaned up #includes.
1996-03-27 17:16:29 +00:00
Bruce Evans
6003d411e1 Fixed traceback for the following cases:
- legitimate null frames from idle() (traceback was aborted after a null
  pointer trap)
- second instruction of normal function prologue, and last instruction of
  a function (caller wasn't reported).

Reviewed by:	davidg
1996-03-27 17:06:03 +00:00
Garrett Wollman
d69e850255 Add support for Pentium and Pentium Pro performance counters.
(This code is as yet untested; to come after man page is written.)
This also adds inlines to cpufunc.h for the RDTSC, RDMSR, WRMSR, and RDPMC
instructions.  The user-mode interface is via a subdevice of mem.c;
there is also a kernel-size interface which might be used to aid
profiling.
1996-03-26 19:57:56 +00:00
Nate Williams
cdf642d171 Whoops, back out the last commit, which was accidentally committed at
the same time as the if_zp cleanup patch.

The commit that occurred was an incomplete patch for APM on my laptop
and needs more work.
1996-03-23 21:36:03 +00:00
Nate Williams
ada00a4447 Now that ac->ac_ipaddr and arpwhohas() no longer exist, remove the
ifdef'd out code that used it.
1996-03-23 21:32:39 +00:00
Bill Fenner
c8fcba1870 Remove reference to ac_ipaddr, which was being used to
determine if the interface had been assigned an IP address.
This code prevented the interface from receiving ethernet
broadcasts if it had no IP address assigned, and appeared
to be an optimization that is not completely needed.
1996-03-23 19:34:12 +00:00
Poul-Henning Kamp
cb82e804a5 Remove an unused #define.
Requested by: davidg
1996-03-23 11:29:20 +00:00
Justin T. Gibbs
8eb0f56311 Disable SCSI parity checking until we figure out why the aic78X0 generates
them incorrectly in some Wide scenarios.
1996-03-22 16:26:26 +00:00
Paul Traina
f3a4ca94cd Add support for /very/ experimental -e (exposure) option.
Add support for LKM operation.

Change M_NOWAIT on buffer memory allocation to M_WAIT in hopes we'll be
able to get ourselves a nice fat buffer from the kernel if we suspend.

Note: The LKM support looks kinda screwy in two areas, where I found
      problems with the kernel proper.  First, calling dev_attach()
      at module load time will cause a panic.  I haven't investigated.
      Secondly, I had to manually call qcam_drvinit() to register the
      device softc structure by hand at module load time.  This seems
      bogus,  it should be called as a core part of the module load
      process for character/block device drivers.
1996-03-21 08:22:59 +00:00
Paul Traina
4374dd874b Add support for /very/ experimental -e (exposure) option.
Not documented yet, because it's for grownups and geeks for now.
1996-03-21 08:19:10 +00:00
Jordan K. Hubbard
51fa90c524 Add vx0 device to GENERIC. Yes, I know that this bloats GENERIC, but
what can we do?
1996-03-20 10:42:56 +00:00
Nate Williams
94ed0b7b90 Add some comments on the APM specs, and make the APM 'idle/busy'
functions follow them.
1996-03-19 16:56:56 +00:00
Nate Williams
454dc1433b Call apm_int() instead of doing direct assembly calls even when we don't
care about the return value for consistency.
1996-03-19 16:48:38 +00:00
Bruce Evans
ede8dc43a2 Fixed unsigned longs that should have been vm_offset_t.
vm_offset_t is currently unsigned long but should probably be plain
unsigned for i386's to match the choice of minimal types to represent
for fixed-width types in Lite2.  Anyway, it shouldn't be assumed
to be unsigned long.

I only fixed the type mismatches that were detected when I changed
vm_offset_t to unsigned.  Only pointer type mismatches were detected.
1996-03-19 15:03:00 +00:00
Nate Williams
f440f5788c Added kernel compile time failure if more than one APM device is
configured.
1996-03-19 04:49:13 +00:00
Nate Williams
8371872e22 Always enable interrupts before calling the APM idle/busy routines.
Suggested by:	phk@FreeBSD.org
1996-03-19 04:40:03 +00:00
Nate Williams
c5952f03fc Minor bugfixes from the recent PC-CARD release.
Submitted by:	hosokawa@mt.cs.keio.ac.jp and the rest of the Nomads
1996-03-18 23:30:14 +00:00
Nate Williams
61e269f90b Grr, let's actually include <sys/devconf.h> so that DEVCONF support actually
works.
1996-03-18 22:47:16 +00:00
Nate Williams
02cf17b17a Whoops, forgot the line that sets the default state in devfs. 1996-03-18 22:40:57 +00:00
Nate Williams
206bb9d772 Devfs support.
Submitted by:   hosokawa@mt.cs.keio.ac.jp and the rest of the Nomads

Cleanup.
1996-03-18 22:29:48 +00:00
Nate Williams
a92dd1ae3a Removed support for multiple APM devices. 1996-03-18 21:58:22 +00:00
Peter Wemm
b36546f69a Update the linux_sendsig() handler to the new type of the 4th
arg, now unsigned long.  This was (harmlessly on i386) conflicting
with the recent 4.4Lite2 changes.
1996-03-17 14:31:58 +00:00
Andrey A. Chernov
e84f22b522 Fix/cleanup raw partition open/close code 1996-03-17 13:33:42 +00:00
Jordan K. Hubbard
a732b754b4 Add fe0 to the LINT and GENERIC files (hmmm - looks like my rcvs setup't
isn't supplying all the proper header info here!  Last commit of fe0
entry should have had the following Submitted by line also).
Submitted-by: Masahiro SEKIGUCHI <seki@sysrap.cs.fujitsu.co.jp>
1996-03-17 08:39:51 +00:00
Jordan K. Hubbard
2dbb98e0af This is a revised fe, Ethernet driver for MB8696x based adapters. 1996-03-17 08:36:38 +00:00
Peter Wemm
fe63158271 Changes to the Digi/Arnet SYNC driver:
1. Create 2 x 8k transmit buffer blocks in place of the 16k block previously.
   With this change the speed as tested with ttcp on a 2Mbit link went up
   from 206kbyte/s to 236kbyte/s.
2. Change the rest of the functions to also have the definition of the
   return value on a sepperate line.
3. Remove some unused variables.
4. Add code to recover from DMA underruns.
5. Reorder ar_get_packets() to handle errors better.
6. Only allocate a mbuf cluster if the data is more than the mbuf.

(and in a second diff in addition to the above)
7. Stops the occasional DMA underruns that occurred when 2 channels
   are running at 2Mbit/s.

Submitted by: John Hay <jhay@mikom.csir.co.za>
1996-03-17 00:29:35 +00:00
Jean-Marc Zucconi
80da27b88c Fix the isa_device table (lkm): id_irq and id_maddr must be 0.
Pointed out by: bde
1996-03-16 01:08:04 +00:00
Jean-Marc Zucconi
b1fe5b5c60 Add code to make it a loadable kernel module 1996-03-15 20:35:06 +00:00
Peter Wemm
b6de784e2f Correct spelling of gerg@stallion.oz.au's email address 1996-03-15 07:52:28 +00:00
Peter Wemm
226fd441c6 Delete recognition for COMPAT_LINUX - it's *gone* now.. :-) 1996-03-15 07:49:47 +00:00
Peter Wemm
a8b0a5541d Add "linux_assym.h" as a dependency for linux_locore.o when compiling
the kernel with the linux emulator statically configured (options LINUX)

Problem noticed by: Brian Litzinger
1996-03-15 07:49:02 +00:00
Nate Williams
dc6fd44943 Return the status of the APM support (enabled/disabled) with the
APM_GETINFO ioctl.
1996-03-13 00:42:56 +00:00
John Dyson
3ce8e60f5b Make sure that we pmap_update AFTER modifying the page table entries.
The P6 can do a serious job of reordering code, and our stuff could
execute incorrectly.
1996-03-13 00:39:45 +00:00
Nate Williams
e34e4a3ce0 Removed more APM_SLOWSTART code and re-enabled some functions which
didn't require APM_SLOWSTART to be defined.
1996-03-12 21:51:58 +00:00
Nate Williams
5e364b3cae Fix some minor typo's in the comments. 1996-03-12 21:23:56 +00:00
David Greenman
dc92971788 Killed some historical #define cruft that we've never used in FreeBSD:
UDOT_SZ
SYSPTSIZE
USRPTSIZE
MSGBUFPTECNT
DMMIN
DMMAX
DMTEXT
USRIOSIZE
VM_PHYS_SIZE
1996-03-12 15:37:58 +00:00
Peter Wemm
71d7d1b17a Remove references to MAP_FILE.. That is now "default" and is only
a "#define MAP_FILE 0" that is still there for net-2 source compatability.
1996-03-12 06:20:19 +00:00
Peter Wemm
31432c9ff1 The same data segment length rounding problem that was in the elf
loader is also present in the coff loader.  It was possible to get one
more page allocated than needed, which would cause brk()/malloc()/etc
to fail with ENOMEM when it tried to re-allocate the space.

Also, change a bcopy() from kernel to user space to a copyout().
1996-03-12 06:13:08 +00:00
Nate Williams
b079435208 Always initialize master_softc. This avoids panics in the idle loop due
to unitialized data if the APM support is compiled in and the probe
fails.
1996-03-12 06:09:34 +00:00
Nate Williams
638f228080 Bring in some prototypes that shouldn't have been dependant on
APM_SLOWSTART, which are generic APM functions.
1996-03-12 05:51:35 +00:00
Nate Williams
44f0e01b25 Removed undocumented an unused APM_SLOWSTART code. 1996-03-12 05:44:25 +00:00
Nate Williams
5be175963d Do a APM BIOS dis-connect before attempting to do a 32-bit connection
just in case a connection already existed.

Also, a minor optimization in the code which determins if a APM BIOS exists.

Reviewed by:	phk

This is based on the APM-0.5 patch for Linux, but written entirely by me.
1996-03-11 21:55:18 +00:00
Nate Williams
ed9e3473d0 Removed conditionals on BDE_DEBUGGER around the loading for the IDT
since it's necessary for interrupt processing to be enabled.  Modify
comment to reflect this condition.

Submitted by:	bde
1996-03-11 21:42:52 +00:00
Jordan K. Hubbard
25cf9d99fb Add FAILSAFE option for selecting extra conservativeness when such
is more practical (like during installation).  Correspondingly, set the
option by default in GENERIC now.
1996-03-11 18:47:39 +00:00
Nate Williams
f42e1448c8 Bring in most of Bruce's prot_to_real() changes into the APM BIOS
startup code.

Reviewed by:  bde
1996-03-11 06:48:57 +00:00
Jeffrey Hsu
6ad138306c For Lite2: proc LIST changes.
Reviewed by:	david & bde
1996-03-11 05:55:56 +00:00
Justin T. Gibbs
66792b2e44 Disable the selection hardware before acknowledging a SELTO interrupt.
It seems the 7880 gets confused if you don't do this.
1996-03-11 02:48:41 +00:00
Jeffrey Hsu
d09d34b4e7 From Lite2: add typedef for register_t.
Reviewed by:	davidg & bde
1996-03-11 02:23:56 +00:00
Jeffrey Hsu
375c803b36 Change type of code argument to sendsig from unsigned to u_long to make it
consistent w/ signalvar.h and kern_sig.c.
Reviewed by:	davidg & bde
1996-03-11 02:21:42 +00:00
Peter Wemm
0946c36c96 Fix the vm_map_remove and vm_map_protect calls.. Somewhere along the
line, these had got (start, length) arguments instead of (start, end)
args.  This could be the cause of Robert Sanders lockups with ZMAGIC
binaries.
1996-03-10 23:25:17 +00:00
John Dyson
874308f7c2 Improved efficiency in pmap_remove, and also remove some of the pmap_update
optimizations that were probably incorrect.
1996-03-10 23:06:00 +00:00
Peter Wemm
5cf588eb8b Move the elf linux_interp structure from the lkm stub to here so that it
can be referenced when the linux emulator is statically compiled into the
kernel.
1996-03-10 22:42:16 +00:00
Peter Wemm
9c5ee42327 Implement rudumentry support for the linux TIOC[SG]ETSERIAL ioctl's.
To complete this, some extra state has to be kept somewhere so that the
B38400 flag in Linux can be correctly translated to/from either 38400,
57600 or 115200.

Submitted by: Robert Sanders <rsanders@mindspring.com>
1996-03-10 22:30:53 +00:00
Peter Wemm
6bc7cb8b3f Fix the getdents() emulation, the Linux ELF libraries use this, and
this code was not quite right (linux has a readdir and getdents syscall,
with the same args. readdir only returns one entry and uses a mutant
dirent structure.  This code was also returning the mutant form for
getdents as well.  My fault for missing this before.)
1996-03-10 22:27:51 +00:00
Peter Wemm
b766761288 Fix a (mostly harmless) bogon when calculating the start of the stack gap. 1996-03-10 22:24:54 +00:00
Peter Wemm
fd2289e5c3 Fix a (mostly harmless) bogon when allocating space above the stack
in the stack gap..
1996-03-10 22:23:51 +00:00
David Greenman
83bf11d386 More missing int32 -> int32_t... 1996-03-10 18:33:43 +00:00
Søren Schmidt
e1743d02cd First attempt at FreeBSD & Linux ELF support.
Compile and link a new kernel, that will give native ELF support, and
provide the hooks for other ELF interpreters as well.

To make native ELF binaries use John Polstras elf-kit-1.0.1..
For the time being also use his ld-elf.so.1 and put it in
/usr/libexec.

The Linux emulator has been enhanced to also run ELF binaries, it
is however in its very first incarnation.
Just get some Linux ELF libs (Slackware-3.0) and put them in the
prober place (/compat/linux/...).
I've ben able to run all the Slackware-3.0 binaries I've tried
so far.
(No it won't run quake yet :)
1996-03-10 08:42:54 +00:00
Justin T. Gibbs
9dfa2063d5 bt.c, aic7xxx.c:
Cleanse the SCSI subsystem of its internally defined types
	u_int32, u_int16, u_int8, int32, int16, int8.
	Use the system defined *_t types instead.

aic7xxx.c:
	Fix the reset code.
	Instead of queing up all of the SCBs that timeout during timeout
	processing, we take the first and have it champion the effort.
	Any other scbs that timeout during timeout handling are given
	another lifetime to complete in the hopes that once timeout
	handing is finished, they will complete normally.  If one of
	these SCBs times out a second time, we panic and Justin tries
	again.

	The other major change is to queue flag aborted SCBs during timeout
	handling, and "ahc_done" them all at once as soon as we have the
	controller back into a sane state.  Calling ahc_done any earlier
	will cause the SCSI subsystem to toss the command right back at
	us and the attempt to queue the command will conflict with what
	the timeout routine is trying to accomplish.

	The aic7xxx driver will now respond to bus resets initiated by
	other devices.
1996-03-10 07:11:45 +00:00
Justin T. Gibbs
58a8ca6a4d Cleanse the SCSI subsystem of its internally defined types
u_int32, u_int16, u_int8, int32, int16, int8.
	Use the system defined *_t types instead.
1996-03-10 07:04:48 +00:00
Justin T. Gibbs
e4f25ddc16 aha1742.c:
Cleanse the SCSI subsystem of its internally defined types
		u_int32, u_int16, u_int8, int32, int16, int8.
		Use the system defined *_t types instead.

eisaconf.c:
	Cosmetic formatting chagnes.
1996-03-10 07:04:27 +00:00
Jordan K. Hubbard
3873c27840 Don't print DMA busy messages - the sound code apparently runs
afoul of this without actually providing useful information and
works nonetheless.
Submitted by:	Jim Lowe <james@miller.cs.uwm.edu>
1996-03-10 02:10:27 +00:00
Rodney W. Grimes
46ed21d1a7 Convert a timeout loop from 100 iterations of 15uS to 50
iterations of 30uS so that really fast systems stop getting
timeout messages from the Riscom driver.

Reviewed by:	ache, peter@nmti.com (Peter da Silva)
1996-03-09 18:59:00 +00:00
John Dyson
9212ebc656 Correct some new and older lurking bugs. Hold count wasn't being
handled correctly.  Fix some incorrect code that was included
to improve performance. Significantly simplify the pmap_use_pt and
pmap_unuse_pt subroutines.  Add some more diagnostic code.
1996-03-09 07:01:21 +00:00
Bruce Evans
bb859b2bb8 Saved 14 bytes by avoiding gas braindamage and 8 bytes by better
instruction selection, for a total of 16 bytes after padding.  Whee.
1996-03-08 07:27:52 +00:00
Bruce Evans
cc494d0cce Probe the keyboard if PROBE_KEYBOARD is defined instead of when `notyet'
is defined and FORCE_COMCONSOLE isn't defined.

Don't compile any keyboard probing code if PROBE_KEYBOARD isn't defined.

Makefile:
Removed -I paths.  They weren't used, and the one to /sys hasn't worked
since the source directory was moved down one level.
1996-03-08 06:29:07 +00:00
Bruce Evans
27253a3d9c Made the timeouts in gets() machine-independent. Use the BIOS tick
counter instead of the BIOS time call to save space.

Reworked the anti-noise timeout to avoid duplicating code.  The timeout
in the outer loop is now restarted after every noise timeout, so it is
now possible for the total timeout to be infinite; previously, the maximum
total timeout was 150000 seconds.
1996-03-08 06:11:33 +00:00
Bruce Evans
0ae65c1a2b Load %fs with the flat data segment selector while in protected mode.
This will be used for convenient access to the BIOS variables.
1996-03-08 05:43:46 +00:00
Bruce Evans
c50f3ecf5a Fixed restoring segment descriptors in prot_to_real(). The descriptors
must have limit 0xffff and attribute G = 0 (byte granularity) as well
as other properties that they already had (see e.g., the Intel i486
manual section 22.5).  Not restoring them broke Ctrl-Alt-Del in the
bootstrap for my ASUS P55TP4XE system, probably because the Award BIOS
does anti-tracing stuff involving inaccessible %esp's.

asm.S:
Don't use lret in prot_to_real().  This reduces the risk of using an
incompletely intialized stack segment and saves space.

Submitted by:	"K.Higashino" <a00303@cc.hc.keio.ac.jp> (on 13 Jan 1995!)
		reworked by me
1996-03-08 05:15:54 +00:00
Peter Wemm
dbc09a6375 update linux_times() and linux_utime() emulation,
fix sigsuspend() (actually back out my recent change there)
and regen the syscall tables..
1996-03-04 21:03:11 +00:00
Peter Wemm
4613eba388 Oops.. I was wrong about the change to sigsuspend. The library interface is
different to the syscall under Linux, back this out.

Use correct arg type for linux_utime()
1996-03-04 20:58:47 +00:00
Poul-Henning Kamp
6ec922bb91 Validate the length before we trust it.
Submitted by:	Andrew.Gordon@net-tel.co.uk
1996-03-04 15:58:25 +00:00
Peter Wemm
daf818451b Add support for LINUX_TCSETAW and LINUX_TCSETAF, which Linux-pine uses.
Submitted by: Robert Sanders <rsanders@mindspring.com>
1996-03-04 11:15:19 +00:00
Peter Wemm
4f735d8edb Add support for the old-style Linux termio (not termios) TCGETA etc.
Also, LINUX_POSIX_VDISABLE is \0, FreeBSD's is 0xff. Convert between them.

This enables some more programs to run, including the Livingston Portmaster
utilities (PMtools).

Submitted by: Robert Sanders <rsanders@mindspring.com>
1996-03-03 19:07:50 +00:00
Peter Wemm
af6646cdc5 Make the handshake lines do the right thing. This is untested by the author
but others say it's working. (DTR etc)

Closes PR#884

Submitted-by: John Hay <jhay@mikom.csir.co.za>
1996-03-03 08:42:28 +00:00
Jordan K. Hubbard
0dbf6d736f USER_LDT changes for the Willows TwinXPDK toolkit. Only tested with WINE
since that's the only other USER_LDT using code that I know of.
Submitted by:	Gary Jennejohn <Gary.Jennejohn@munich.netsurf.de>
Obtained from: {Origin of diffs may be someone else - I only rec'd them from
Gary}
1996-03-03 01:57:45 +00:00
Peter Wemm
a1ebcbfb76 Minor touch-up... make two functions static, and add missing $Id$ 1996-03-02 21:00:11 +00:00
Peter Wemm
d66a506616 Mega-commit for Linux emulator update.. This has been stress tested under
netscape-2.0 for Linux running all the Java stuff.  The scrollbars are now
working, at least on my machine. (whew! :-)

I'm uncomfortable with the size of this commit, but it's too
inter-dependant to easily seperate out.

The main changes:

COMPAT_LINUX is *GONE*.  Most of the code has been moved out of the i386
machine dependent section into the linux emulator itself.  The int 0x80
syscall code was almost identical to the lcall 7,0 code and a minor tweak
allows them to both be used with the same C code.  All kernels can now
just modload the lkm and it'll DTRT without having to rebuild the kernel
first.  Like IBCS2, you can statically compile it in with "options LINUX".

A pile of new syscalls implemented, including getdents(), llseek(),
readv(), writev(), msync(), personality().  The Linux-ELF libraries want
to use some of these.

linux_select() now obeys Linux semantics, ie: returns the time remaining
of the timeout value rather than leaving it the original value.

Quite a few bugs removed, including incorrect arguments being used in
syscalls..  eg:  mixups between passing the sigset as an int, vs passing
it as a pointer and doing a copyin(), missing return values, unhandled
cases, SIOC* ioctls, etc.

The build for the code has changed.  i386/conf/files now knows how
to build linux_genassym and generate linux_assym.h on the fly.

Supporting changes elsewhere in the kernel:

The user-mode signal trampoline has moved from the U area to immediately
below the top of the stack (below PS_STRINGS).  This allows the different
binary emulations to have their own signal trampoline code (which gets rid
of the hardwired syscall 103 (sigreturn on BSD, syslog on Linux)) and so
that the emulator can provide the exact "struct sigcontext *" argument to
the program's signal handlers.

The sigstack's "ss_flags" now uses SS_DISABLE and SS_ONSTACK flags, which
have the same values as the re-used SA_DISABLE and SA_ONSTACK which are
intended for sigaction only.  This enables the support of a SA_RESETHAND
flag to sigaction to implement the gross SYSV and Linux SA_ONESHOT signal
semantics where the signal handler is reset when it's triggered.

makesyscalls.sh no longer appends the struct sysentvec on the end of the
generated init_sysent.c code.  It's a lot saner to have it in a seperate
file rather than trying to update the structure inside the awk script. :-)

At exec time, the dozen bytes or so of signal trampoline code are copied
to the top of the user's stack, rather than obtaining the trampoline code
the old way by getting a clone of the parent's user area.  This allows
Linux and native binaries to freely exec each other without getting
trampolines mixed up.
1996-03-02 19:38:20 +00:00
Peter Wemm
9a074e93b5 A new syscalls table for the Linux emulator. This is processed by
makesyscalls.sh to generate the rest of the tables.
1996-03-02 19:04:16 +00:00
Peter Wemm
d375be0e82 This file is "obsolete" and no longer used or referenced. 1996-03-02 18:55:41 +00:00
Peter Wemm
4bd4912865 Add more options into the conf/options and i386/conf/options.i386 files
and the #include hooks so that 'make depend' is more useful.  This
covers most of the options I regularly use (but not all) and some other
easy ones.
1996-03-02 18:24:13 +00:00
Jordan K. Hubbard
6380fb9d12 Hopefully, this will fix the problems that some people have been having with
the S-Video input.  It also has code in the driver for the meteor RGB support
and some other bug fixes.  I don't have a meteor RGB but I have been told
that it works.
Submitted by:	Jim Lowe <james@miller.cs.uwm.edu>
1996-03-02 06:08:53 +00:00
Paul Traina
9d2baf5cdf Update the Connectix QuickCam driver to match my current work.
- split driver into FreeBSD specific and camera specific portions
  (qcamio.c can run in user mode, with a Linux "driver top" etc,
   and qcam.c should be trivial to port to NetBSD and BSDI.)
- support for 4bppand bidirectional transfers working better
- start of interleaved data-transfers byte-stream decodes (some of this
  stuff has been pulled out for the moment to make it easier to debug)

At this point, anyone who wants to port it to other platforms should feel
free to do so.  Please feed changes directly back to me so that I can produce
a unified distribution.
1996-03-02 03:48:19 +00:00
John Dyson
33309c7fc0 More b_flags fixes. 1996-03-02 01:49:51 +00:00
John Dyson
f5d1e6dae6 Fix a bug that b_flags was getting unnecessarily modified by
the slice code.  The effect up to now has been insignficant, but
improved buffer allocation code will break with this problem.
1996-03-01 19:01:04 +00:00
Gary Palmer
5ccab2afa9 Add a new option: DDB_UNATTENDED. Stops machine dropping into DDB
when it panics, but leaving activation of DDB from the console
unaffected.
1996-02-28 21:42:15 +00:00
Justin T. Gibbs
6398c75dc7 Fix media type determination. 1996-02-28 17:19:04 +00:00
Nate Williams
f2b04a2396 Fix for 3C589C model. This patch allows people with the new models to work and
doesn't break support for the older models (tested with my 3C589B).

Reviewed by:    Joshua Gahm <jgahm@BBN.COM>
Submitted by:   hosokawa@mt.cs.keio.ac.jp (HOSOKAWA Tatsumi)
1996-02-28 16:23:36 +00:00
Andrey A. Chernov
79dd972e3e Fix re-sense code
Remove unused part of close code
1996-02-27 19:08:39 +00:00
Andrey A. Chernov
f4cb715ffe rmcd0c: now several ioctls (eject/close/debug/reset/etc.) works
even not CD sensed. Open of this device without CD sensed allowed too.
Other ioctls re-sense CD for this device.
1996-02-27 18:53:50 +00:00
Justin T. Gibbs
eea817fc73 Clean up the 3c5x9 driver and add an eisaconf probe to it. This should
prevent it from conflicting with other drivers (like the aic7xxx driver).
Most of the work was in spliting out common portions of the driver and
making them generic enough to be called from the eisaconf probe.
1996-02-26 01:05:36 +00:00
Justin T. Gibbs
76e002c102 3c5x9.c:
The eisaconf probe for the 3Com 3c579 and the 3c509 when in eisa
configuration mode.

aha1742.c aic7770.c bt74x.c:
Only call eisa_registerdev after the probe is successfully.

eisaconf.c:
Increase kdc->kdc_datalen during the eisa_reg* functions instead of
in the eisa_add* functions since eisa_registerdev has already been
called and we have a kdc to manipulate.
1996-02-26 01:01:41 +00:00