Commit Graph

1679 Commits

Author SHA1 Message Date
dg
3defb6d13f Fixed two potentially serious classes of bugs:
1) The vnode pager wasn't properly tracking the file size due to
   "size" being page rounded in some cases and not in others.
   This sometimes resulted in corrupted files. First noticed by
   Terry Lambert.
   Fixed by changing the "size" pager_alloc parameter to be a 64bit
   byte value (as opposed to a 32bit page index) and changing the
   pagers and their callers to deal with this properly.
2) Fixed a bogus type cast in round_page() and trunc_page() that
   caused some 64bit offsets and sizes to be scrambled. Removing
   the cast required adding casts at a few dozen callers.
   There may be problems with other bogus casts in close-by
   macros. A quick check seemed to indicate that those were okay,
   however.
1998-10-13 08:24:45 +00:00
bde
e23991ad03 Don't print conflict messages in haveseen_isadev() if CC_QUIET is
specified.  This makes haveseen_isadev() useful for searching for a
free resource.  This increases the bitrot in the pci RESOURCE_CHECK
code.

Fixed the pre-attach conflict message.  The flag for distinguishing
pre-attach conflict checks from pre-probe ones was never set.
1998-10-12 13:12:45 +00:00
kato
c97299bfbe mp_machdep.c: Set a vector to boot code (PC-98).
locore.s: Tell the bios to warmboot next time (PC-98).
1998-10-10 13:37:16 +00:00
kato
23e7c1b00c PC-98 doesn't have CMOS ram. 1998-10-10 10:36:12 +00:00
kato
e677608687 PC-98 doesn't have CMOS ram. 1998-10-10 09:38:02 +00:00
jkh
9420693ea7 Add entries for MFS which are consistent with the others, now that
Peter has made this more selectable.
1998-10-10 08:13:58 +00:00
jkh
a196ba12b0 Allow more flexible use of MFS root.
Submitted by:	peter
1998-10-10 08:12:24 +00:00
peter
482ceee22c Relocate the preload module info from machdep specifically rather than
trying to do it in locore.  We also walk through the module table
and relocate any MODINFO_ADDR pointers so that they become KVM relative
rather than physical addresses.  This means that hacks for adding
0xf0000000 in places like MFS go away.
1998-10-09 23:36:26 +00:00
peter
603a840c28 Null commit.. CVS aborted on freefall last time (reaonly file).
An elf_reloc() function for the i386.  Based on alpha/alpha/elf_machdep.c
and rtld-elf/i386/reloc.c.
1998-10-09 20:38:03 +00:00
peter
37a3ec6488 An elf_reloc() function for the i386. Based on alpha/alpha/elf_machdep.c
and rtld-elf/i386/reloc.c.
1998-10-09 20:35:45 +00:00
msmith
0d4797aebc Initialise kernel environment and module metadata pointers. 1998-10-09 00:31:06 +00:00
msmith
0a6f31055f Fix up the kernel environment and module data pointers in the bootinfo if
they are present.
If we are told where the end of the loaded kernel image is, believe it.
1998-10-08 21:03:41 +00:00
kato
29d7df02f8 BIOS ROM base address is 0xe8000 on PC-98. 1998-10-08 16:15:22 +00:00
obrien
0d6146b8ef Fix syntax errors I introduced. 1998-10-07 13:51:46 +00:00
gibbs
8ea5e0c143 Add entries for the adw device driver. 1998-10-07 03:42:44 +00:00
gibbs
04f5e2e068 Fix a parent tag reference count bug during tag teardown.
Enable optimization for nobounce_dmamap clients by setting the map
held by the client to NULL.  This allows the macros in bus.h to check
against a constant to avoid function calls.

Don't attempt to 'free()' contigmalloced pages in bus_dmamem_free().
We currently leak these pages, which is not ideal, but is better than
a panic.  The leak will be fixed when contigmalloc is merged into the
bus dma framework after 3.0R.
1998-10-07 03:38:14 +00:00
kato
5c811970f9 - Implement enabling write allocate on AMD K5/K6/K6-2 cpus.
The code was originaly contributed by Kelly Yancey
  <kbyanc@freedomnet.com> in PR i386/6269 and revised by Akio Morita
  <amorita@meadow.scphys.kyoto-u.ac.jp> and me.  Test was performed by
  Akio Morita and Toshiomi Moriki <moriki@db.is.kyushu-u.ac.jp>.
- Fix stylistic bug in identcpu.c.
- Update copyright in initcpu.c
- Fix typo in LINT.

PR:		6269 and 6270
1998-10-06 13:16:29 +00:00
obrien
d8d9f67c16 Undo most of the previous commit. 1998-10-05 21:09:21 +00:00
obrien
25a96e9479 Now require *FS_ROOT to enable the ability to mount a *FS /.
Previously one could config(8) a kernel that would not link.
1998-10-05 11:28:27 +00:00
obrien
694db7871e Document that `options xFS_ROOT'' requires the associated `options xFS''.
Reordered xFS_ROOT's to be below the associated xFS.
1998-10-05 07:45:54 +00:00
jkh
dacb66e67f Add dpt driver back to GENERIC and adjust a stale comment. 1998-10-03 17:09:00 +00:00
msmith
39357ea35d Remove lpt1 - we have userconfig if you have a weird port.
Remove mse0 - the Microsoft Bus Mouse is a dinosaur.  There are probably
              more Pintos on the road than these on peoples' desks.
1998-10-01 19:35:28 +00:00
abial
68f6143093 Add sysctl 'machdep.msgbuf_clear'. Setting it to anything causes the
kernel message buffer to be cleared. It comes handy in situations when
the only logging facility you have is the msgbuf.

Reviewed by:	jkh
1998-09-29 11:20:16 +00:00
bde
dc111a9a45 Don't pretend to support ix86's with 16-bit ints by using longs just
to ensure 32-bit variables.  Doing so broke ix86's with 64-bit longs.
1998-09-29 09:06:00 +00:00
tegge
e708a51bd0 Initialize pcb_mpnest to 1 in the child process in cpu_fork(). This should
fix the 50% idle problem that the ELF /sbin/init triggered.  The problem
appeared when the last context switch before a fork() call was due to
the kernel faulting in user pages via normal page faults (e.g. copyin).
Reviewed by:	Peter Wemm <peter@netplex.com.au>
1998-09-28 03:34:39 +00:00
tegge
1b80829d9c Use correct virtual address when configuring the per CPU idle page directory
for a vm86 call under SMP.
1998-09-28 03:26:22 +00:00
peter
a2aeaf4564 Goodbye BOUNCE_BUFFERS, for a hack it has served us well.
The last consumer of this code (the old SCSI system) has left us and
the CAM code does it's own bouncing.  The isa dma system has been
doing it's own bouncing for a while too.

Reviewed by:	core
1998-09-25 17:34:49 +00:00
bde
f6bd914bfd Don't redefine kernel. Makefile.i386 now defines it.
Removed some unused includes.
1998-09-24 10:22:21 +00:00
bde
449f0bccf8 Attempt to work around a bug in the previous commit related to
non-reentrancy of SMP clock locking.  Depend on the giant lock
protecting clkintr().
1998-09-20 19:56:28 +00:00
bde
69bd3165a2 Ensure that the i8254 timecounter doesn't go backards. It sometimes
went backwards when interrupts were masked for more than one i8254
interrupt period.  It sometimes went backwards when the i8254 counter
was reprogrammed.  Neither of these should happen in normal operation.

Update the i8254 timecounter support variables atomically.  Calling
timecounter functions from fast interrupt handlers may actually work
in all cases now.
1998-09-20 03:47:54 +00:00
mjacob
4cc465448d (requested by gibbs) Remove the SCSI_CAM option (and rework the isp driver
that had depended on it for compilation within or without CAM to use
__FreeBSD_version instead).
1998-09-18 00:46:42 +00:00
msmith
2a572f9e32 Mark the syscons and pcvt drivers as being allowed to conflict, so that
well-meaning but uneducated users don't exterminate the psm driver in
their zeal to achieve zero conflicts.
1998-09-17 03:15:30 +00:00
gibbs
f5359202c1 autoconf.c:
Convert autoconf hooks from old SCSI system to CAM.

busdma_machdep.c:
	bus_dmamap_free() should expect the nobounce map, not a NULL one.

mountroot.c:
swapgeneric.c:
	da and od changes.

symbols.raw:
	Nuke the old disk stat symbols.

userconfig.c:
	Disable the SCSI listing code until it can be converted to CAM.
1998-09-15 10:03:43 +00:00
gibbs
8bbb3956e3 sd->da, od is gone, no SCSI control devices.
new pass, xpt, and targ devices.

Nuke no longer used AHC options.
1998-09-15 10:01:14 +00:00
jdp
60718890ae Add new functions fill_fpregs() and set_fpregs(), like fill_regs()
and set_regs() but for the floating point register state.  The code
is stolen from procfs_machdep.c, and moved out of there into
machdep.c.

These functions are needed for generating ELF core dumps.
1998-09-14 22:43:40 +00:00
jdp
c3165880f6 Add generic defines ELF_ARCH, ELF_CLASS, and ELF_DATA. These give
the relevant characteristics of the native machine, for building
and checking Elf_Ehdr structures.

Add structures to represent ELF "note" headers.  Add defines for the
note types used in ELF core files.
1998-09-14 20:30:13 +00:00
sos
8397655514 Remove the SLICE code.
This clearly needs alot more thought, and we dont need this to hunt
us down in 3.0-RELEASE.
1998-09-14 19:56:42 +00:00
abial
5a678e68e9 This implements retrieving the contents of message buffer via sysctl(3)
as "machdep.msgbuf". It's needed in case of using stripped kernels, where
normal dmesg (which has to use kvm) doesn't work.

The buffer is unwound, meaning that the data will be linear, possibly
with some leading NULLs.

Reviewed by:	Jordan K. Hubbard <jkh@freebsd.org>
1998-09-14 11:47:40 +00:00
jdp
5b11e2a2f4 Make profiling work for ELF. gprof now autodetects the format of
the executable file, so it will work for both a.out and ELF format
files.  I have split the object format specific code into separate
source files.  It's cleaner than it was before, but it's still
pretty crufty.

Don't cheat on your make world for this update.  A lot of things
have to be rebuilt for it to work, including the compiler and all
of the profiled libraries.
1998-09-07 23:32:00 +00:00
tegge
73bcd22039 Don't go below the low water mark of free pages due to optional prefaulting
of pages.
PR:		2431
1998-09-06 23:04:20 +00:00
tegge
857a03a573 Maintain a mapping from irq number to (ioapic number, int pin) tuple,
and use this when masking/unmasking interrupts.

Maintain a mapping from (iopaic number, int pin) tuple to irq number,
and use this when configuring devices and programming the ioapics.

Previous code assumed that irq number was equal to int pin number, and
that the ioapic number was 0.

Don't let an AP enter _cpu_switch before all local apics are initialized.
1998-09-06 22:41:42 +00:00
luoqi
860cc09a35 Make irq forwarding truely functional. 1998-09-04 23:03:04 +00:00
msmith
f8b9e87456 Increase 'maxusers' to 32; with the number of people using GENERIC as
their one-size-fits-all kernel, this should help reduce the "out of foo"
reports.

Reviewed by:	jkh
1998-09-04 19:55:51 +00:00
ache
06c4074b1e PAGE_WAKEUP -> vm_page_wakeup 1998-09-04 13:10:34 +00:00
nsouch
816c8cb32c Reviewed by: Doug Rabson
Submitted by:	nsouch
root_bus_configure() call to initialize new bus arch in i386 env.
1998-09-03 20:59:28 +00:00
kato
9a6b0ba36d - Fix style bug.
- hw.ispc98 -> machdep.ispc98.

Submitted by:	Garrett Wollman (hw -> machdep)
1998-09-01 02:04:17 +00:00
luoqi
8b3223d67b Use 16bit register in inline asm code to set segment registers. 1998-08-31 16:18:45 +00:00
kato
173369820f - hw.machine_arch returns cpu architecture type.
- moved definition of MACHINE_ARCH from cpu.h to parm.h as alpha.
- Added definitions of _MACHINE and _MACHINE_ARCH.
- Added hw.ispc98. The hw.ispc98 is 1 in PC98 kernel and is 0 in
  IBM-PC kernel.

Discussed with:	John Birrell <jb@FreeBSD.ORG>
1998-08-31 08:41:58 +00:00
dfr
5fdaeb281d Change various syscalls to use size_t arguments instead of u_int.
Add some overflow checks to read/write (from bde).

Change all modifications to vm_page::flags, vm_page::busy, vm_object::flags
and vm_object::paging_in_progress to use operations which are not
interruptable.

Reviewed by: Bruce Evans <bde@zeta.org.au>
1998-08-24 08:39:39 +00:00
bde
f45ec22006 Fixed printf format errors. Only one left in LINT on i386's. 1998-08-24 02:28:16 +00:00