Commit Graph

803 Commits

Author SHA1 Message Date
John Polstra
4fe88fe637 Restore support for executing BSD/OS binaries on the i386 by passing
the address of the ps_strings structure to the process via %ebx.
For other kinds of binaries, %ebx is still zeroed as before.

Submitted by:	Thomas Stephens <tas@stephens.org>
Reviewed by:	jdp
1999-04-03 22:20:03 +00:00
Alan Cox
087e80a934 Put in place the infrastructure for improved UP and SMP TLB management.
In particular, replace the unused field pmap::pm_flag by pmap::pm_active,
which is a bit mask representing which processors have the pmap activated.
(Thus, it is a simple Boolean on UPs.)

Also, eliminate an unnecessary memory reference from cpu_switch()
in swtch.s.

Assisted by:	John S. Dyson <dyson@iquest.net>
Tested by:	Luoqi Chen <luoqi@watermarkgroup.com>,
		Poul-Henning Kamp <phk@critter.freebsd.dk>
1999-04-02 17:59:49 +00:00
KATO Takenori
bd5934b045 o sys/i386/include/soundcard.h
Add Sound Card ID for the nss(NEC PC-9801-86 Sound System) driver.
      Old name of this driver was pcm driver in FreeBSD 2.2.x.
  Fix lack of the length of the name member of the synth_info structure.
      (attach_mpu401 in sys/i386/isa/sound/mpu401.c requires 33 chars.)

o sys/i386/isa/sound/dev_table.h
  Add the DMAbuf flags definition DMA_DISABLE.
  Add the nss driver entry.

o sys/i386/isa/sound/dmabuf.c
  Add the DMA_DISABLE flag check in DMAbuf_outputintr and DMAbuf_inputintr
      to disable DMA control in FIFO only use (nss driver required).

o sys/i386/isa/sound/local.h
  Add the nss driver entry.

o sys/i386/isa/sound/mpu401.c
  Replace inb function in probe_mpu401 to mpu401_status macro.
  Wrap macro argument for above replace.
  Add I/O port maping macro for NEC PC-98x1 arch.
  Add delay in NEC PC-98x1 arch.

o sys/i386/isa/sound/pcm86.c
  Change driver name to avoid name space conflict to new pcm driver.
  Fix NEC PC-9801-86 driver to work on RELENG_3 branch or latter.

o sys/i386/isa/sound/sound_calls.h
  Fix the mpuintr definition.
  Add the nss driver entry.
      attach_nss, probe_nss, nssintr

o sys/i386/isa/sound/soundcard.c
  Fix lack of the mpuintr registration.
  Add the nss driver entry.

o sys/pc98/conf/files.pc98
  Add the nss driver entry.

Reviewed by:	kato
Submitted by:	Akio Morita <amorita@meadow.scphys.kyoto-u.ac.jp>
1999-04-02 08:51:06 +00:00
Jonathan Lemon
1fe3054698 Change the vm86_datacall interface so that callers are now responsible
for passing in their own data space and associated page table information.

Update the support files so that any pages in the vm86 page table are
mapped, rather than just one page.

Restore the E820 memory probe, and have it use the new interface.
1999-03-18 04:37:35 +00:00
David Greenman
8681b974c1 Increased kernel virtual address space to 1GB. NOTE: You MUST have fixed
bootblocks in order to boot the kernel after this! Also note that this
change breaks BSDI BSD/OS compatibility.
Also increased default NKPT to 17 so that FreeBSD can boot on machines
with >=2GB of RAM. Booting on machines with exactly 4GB requires other
patches, not included.
1999-03-11 18:28:46 +00:00
Kazutaka YOKOTA
e9deda23ae Keyboard driver update in preparation for the USB keyboard driver.
- Refined internal interface in keyboard drivers so that:
  1. the side effect of device probe is kept minimal,
  2. polling mode function is added,
  3. and new ioctl and configuration options are added (see below).

- Added new ioctl: KDSETREPEAT
  Set keyboard typematic rate.  There has existed an ioctl command,
  KDSETRAD, for the same purpose.  However, KDSETRAD is dependent on
  the AT keyboard.  KDSETREPEAT provides more generic interface.
  KDSETRAD will still be supported in the atkbd driver.

- Added new configuration options:
  ATKBD_DFLT_KEYMAP
  Specify a keymap to be used as the default, built-in keymap.
  (There has been undocumented options, DKKEYMAP, UKKEYMAP, GRKEYMAP,
  SWKEYMAP, RUKEYMAP, ESKEYMAP, and ISKEYMAP to set the default keymap.
  These options are now gone for good.  The new option is more general.)

  KBD_DISABLE_KEYMAP_LOADING
  Don't allow the user to change the keymap.
1999-03-10 10:36:53 +00:00
Hellmuth Michaelis
c76c6f9233 update the i4b include files to i4b release 0.71.00 1999-03-07 16:09:45 +00:00
Bruce Evans
efc96764e0 The magic "no-cpu" cpu number is 0xff. Don't misrepresent cpu
numbers as chars or use bogus casts in an attempt to unmisrepresnt
them.  In top, don't assume that 0xff is the only negative cpu
number when cpu numbers are (mis)represented.
1999-03-05 16:38:13 +00:00
Joerg Wunsch
785c7fcba3 Adopt syscons's recent change from key_t to keyent_t (this part of
pcvt is plug-compatible to syscons to facilitate an identical
VT-switching interface), so PR misc/1247 can be closed.
1999-03-04 10:50:36 +00:00
David Greenman
37cd370c97 Correct casts in vtophys and avtophys to be vm_offset_t. 1999-03-02 16:20:39 +00:00
Warner Losh
1684ea5706 Don't define MACHINE, MACHINE_ARCH, _MACHINE or _MACHINE_ARCH if
already defined.  This allows for cross building to work because we
need to lie to make to tell it to use the target names rather than the
host names.

This should have no effect on either architecture.  I've confirmed
that the intel build by make buildworld's for the past 3 months.
1999-03-01 06:10:16 +00:00
Tor Egge
79a7a64b85 Don't call assign_apic_irq with a value for irq that is out of range. 1999-02-26 03:42:50 +00:00
Bruce Evans
60f2c5d0c2 Fixed my recent breakage of the ELF case. 1999-02-25 12:53:34 +00:00
Bruce Evans
025a06fd58 Added a per-cpu variable `switchticks' for use in scheduling. 1999-02-22 15:13:34 +00:00
Nick Hibma
73df525395 1) Added define for USB as an interface
2) Added define for maximum number of buttons for Mouse Systems
1999-02-21 16:08:43 +00:00
Luoqi Chen
1c6d46f93c Introduce machine-dependent macro pgtok() to convert page count to number
of kilobytes. Its definition for each architecture could be optimized to
avoid potential numerical overflows.
1999-02-19 19:34:49 +00:00
Luoqi Chen
b1028ad122 Hide access to vmspace:vm_pmap with inline function vmspace_pmap(). This
is the preparation step for moving pmap storage out of vmspace proper.

Reviewed by:	Alan Cox	<alc@cs.rice.edu>
		Matthew Dillion	<dillon@apollo.backplane.com>
1999-02-19 14:25:37 +00:00
John Polstra
0aca4b60dc On the i386, load the ELF dynamic linker where an mmap(0, ...) would
put it, just like on the Alpha.  It was wrong to load it at the
fixed address 0x08000000.  That should only be done if the dynamic
linker is an executable (not a shared object) with a specific load
address encoded in the object file itself.

This fixes the recent breakage in the Linux emulator.
1999-02-19 01:30:43 +00:00
Roger Hardiman
02819e7033 Corrected ioctl numbers conflict.
Thanks to Vsevolod Lobko <seva@alex-ua.com> for spotting this.
P:
1999-02-15 11:04:36 +00:00
Roger Hardiman
29122ece3e Added new ioctls for Hauppage Infra-Red Remote Control support,
Obtaining the supported channel sets and Controlling the GPIO port.

Submitted by:	Roger Hardiman and Vsevolod Lobko <seva@alex-ua.com>
1999-02-11 10:18:04 +00:00
John Polstra
47633640aa Change the load address of the ELF dynamic linker from "2L*MAXDSIZ"
to an architecture-specific value defined in <machine/elf.h>.  This
solves problems on large-memory systems that have a high value for
MAXDSIZ.

The load address is controlled by a new macro ELF_RTLD_ADDR(vmspace).
On the i386 it is hard-wired to 0x08000000, which is the standard
SVR4 location for the dynamic linker.

On the Alpha, the dynamic linker is loaded MAXDSIZ bytes beyond
the start of the program's data segment.  This is the same place
a userland mmap(0, ...) call would put it, so it ends up just below
all the shared libraries.  The rationale behind the calculation is
that it allows room for the data segment to grow to its maximum
possible size.

These changes have been tested on the i386 for several months
without problems.  They have been tested on the Alpha as well,
though not for nearly as long.  I would like to merge the changes
into 3.1 within a week if no problems have surfaced as a result of
them.
1999-02-07 23:49:56 +00:00
Bruce Evans
33982c726f Added underscores to some names in svr4_locore.s so that it compiles
with -aout.  Added translation back to elf names in asnames.h as
usual.  The elf names were inconsistent in the aout case even
internally because a macro adds an underscore to just one of them.

Removed commented out code for a previous life of `svr4_esigcode'.
Didn't add an underscore to `svr4_esigcode' since it is correct for
aout although wrong for elf, like most internal names in assembler
files.  These names should be in a different namespace so that gprof
can ignore them.

Fixed some disorder in asnames.h.
1999-02-06 08:41:06 +00:00
Kazutaka YOKOTA
1c27745f73 - Don't assume the line length in the video memory is always the same as
the screen width.
- Store the current video mode information in the `video_adapter' struct.
- The size of the `v_offscreensize' field in the VESA mode information
  block is u_int16, not u_int8.
1999-02-05 11:52:13 +00:00
KATO Takenori
921bc385e8 Recognize Pentium II Xeon, Celeron and Pentium III cpus. Because CPU
names are printed on their packages and shown by BIOS, kernel does not
need to show details.

PR:		8751, 9320 and 9463
1999-02-04 16:48:26 +00:00
Bruce Evans
79a2501238 Added a hopefully-machine-independent macro for determining if a
reschedule is pending.
1999-02-02 09:08:23 +00:00
KATO Takenori
1463f029a5 Moved pc98_system_parameter from .text to .data to make ELF kernel
work.
1999-01-30 15:38:48 +00:00
Matthew Dillon
3cfc69e6c2 More -Wall / -Wcast-qual cleanup. Also, EXEC_SET can't use
C_DECLARE_MODULE due to the linker_file_sysinit() function
    making modifications to the data.
1999-01-29 08:36:45 +00:00
Roger Hardiman
ba66f0a223 Added METEOR_DEV2 and METEOR_DEV3 1999-01-28 16:32:52 +00:00
Mark Newton
27286ca9a8 Sun Bug ID 1251858 (on http://sunsolve1.sun.com) discusses the way that
Sun implemented iBCS2 compatibility on Solaris >= 2.6:  The emulator
runs in user-mode, patching the LDT so that client programs making
syscalls through the old iBCS2 call gate get handled by the emulator
process.  Unemulated syscalls therefore need their own call-gate that
bypasses the emulator.  Sun chose LDT entry 4 to implement this, which
is what we've been using as LUDATA_SEL, so we need to change LUDATA_SEL
if we want to run Solaris executables.

Discussed with: Mike Smith
1999-01-28 11:45:49 +00:00
Matthew Dillon
0a5e03dda5 Fix warnings in preparation for adding -Wall -Wcast-qual to the
kernel compile
1999-01-28 01:59:53 +00:00
Jordan K. Hubbard
c71d51c375 Make more messages conditional on bootverbose 1999-01-20 04:24:22 +00:00
Eivind Eklund
1950f59007 Silence warnings. 1999-01-12 00:19:33 +00:00
Kazutaka YOKOTA
2ad872c579 The first stage of console driver reorganization: activate new
keyboard and video card drivers.

Because of the changes, you are required to update your kernel
configuration file now!

The files in sys/dev/syscons are still i386-specific (but less so than
before), and won't compile for alpha and PC98 yet.

syscons still directly accesses the video card registers here and
there; this will be rectified in the later stages.
1999-01-11 03:18:56 +00:00
Nicolas Souchu
bf896bd0e2 Change /dev/smb and /dev/iic interface to allow user programs to interact with
devices dynamically. That means,

        + only one /dev/iic or /dev/smb device for each smb/iic bus to access
        + I2C/SMB device address must be given to any ioctl
        + new devices may be plugged and accessed after boot, which was
          impossible previously (device addresses were hardcoded into
          the kernel)
1999-01-09 18:08:24 +00:00
Bruce Evans
896763fa9e Don't put operands in clobber lists, since this is dubious for old
versions of gcc and broken for current versions of egcs.

Submitted by:	"John S. Dyson" <dyson@iquest.net> but rewritten by me
1999-01-09 13:00:27 +00:00
Bruce Evans
f48bbd5fb8 Fixed some style bugs. Clarified a comment. 1999-01-08 19:51:02 +00:00
Bruce Evans
2a32c15f45 Unspammed includes in <machine/cpufunc.h> in the !SMP case. Partially
unspammed them in the SMP case.
1999-01-08 19:17:49 +00:00
Bruce Evans
68ba369606 Moved declarations related to copying and zeroing to the right place. 1999-01-08 16:29:59 +00:00
Kazutaka YOKOTA
2c9619f2a6 Update #ifdef directive.
# I forgot this bit when I committed VESA KLD update a few days ago ;-<
1999-01-08 12:57:06 +00:00
Peter Wemm
6c7178bdfb OBJFORMAT_DEFAULT = elf now. (this is where /usr/bin/objformat and
libc/gen/getobjformat.c get their default from)
1999-01-07 06:35:18 +00:00
Dag-Erling Smørgrav
70bfbd280e Correct typo in macro name. 1999-01-01 14:38:30 +00:00
Peter Wemm
b3c0a3cc54 Part 3 of the pcvt/voxware revival.
Reviewed by:	core
1999-01-01 08:23:23 +00:00
Poul-Henning Kamp
19c749625f Initial entry of ISDN4BSD into the FreeBSD tree.
ISDN4BSD is the work of our brand-new comitter: Hellmuth Michaelis,
who has done a tremendous amount of work to bring us this far.

There are still some outstanding issues and files to bring into
the tree, and for now it will be needed to pick up all the extra
docs from the isdn4bsd release.

It is probably also a very good idea to subscribe to the isdn@freebsd.org
mailing list before you try this out.

These files correspond to release "beta Version 0.70.00 / December
1998" from Hellmuth.
1998-12-27 21:47:14 +00:00
Poul-Henning Kamp
1767866e4d follow up to:
Pre 3.0 branch cleanup casualty #4: pcvt
1998-12-27 16:44:24 +00:00
Søren Schmidt
50bac46f45 Pre 3.0 branch cleanup sos#2: sound
Superceded by the snd driver...
1998-12-27 14:21:37 +00:00
Dmitrij Tejblum
8252a465b9 Little reorganization:
- created internal names for fixed-size integral types, like __int32_t. They
  will be used to make several headers self-sufficient.
- <stdlib.h> don't include <machine/types.h> anymore.
- created <sys/inttypes.h>, which can be used as <inttypes.h>.
- declaration of uoff_t and ufs_daddr_t moved to <sys/types.h>.

Reviewed by:	bde
1998-12-19 00:02:34 +00:00
Archie Cobbs
f1d19042b0 The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static
and local variables, goto labels, and functions declared but not defined.
1998-12-07 21:58:50 +00:00
Tor Egge
f0ac792bec Attempt to handle interrupts delivered to all IO APICs by using the first
IO APIC with a sufficient number of pins.
1998-11-26 23:14:23 +00:00
Eivind Eklund
9fcdafaefc Staticize. 1998-11-26 18:50:24 +00:00
Eivind Eklund
38cc2d9316 Move the declaration of PPro_vmtrr from the header file to pmap.c,
replacing the one in the header file with a definition.  This makes it
easier to work with tools that grok ANSI C only.
1998-11-24 20:25:52 +00:00