Commit Graph

14312 Commits

Author SHA1 Message Date
jdp
d790b6b749 Reverse the order of processing object files within an executable or
shared library when invoking global constructors and destructors.
For constructors, the object files used to be processed from first
to last; now they're done from last to first.  (Destructors are done
in the opposite order, as required by the C++ standard.)  This makes
us consistent with standard gcc and egcs compilers.  It also
eliminates ordering differences between dynamic and static
executables.

Bump the value of __FreeBSD_version to 400002 to reflect this
change.
1999-03-13 01:35:44 +00:00
phk
6ca05cef42 Fix an old cut&paste bogon.
Noticed by: bde
1999-03-12 21:58:54 +00:00
imp
2342c41cd5 Don't allow anyone except root to mount file systems that map uids.
This can have bad security implications, but the impact on FreeBSD
systems is minimal because this fs isn't in the default kernels and it
is unknown if it even works.

Submitted by: Manuel Bouyer <bouyer@antioche.eu.org> and
	Artur Grabowski <art@stacken.kth.se>
1999-03-12 19:40:39 +00:00
imp
5fa6e11c9c Remove static delcarations from {,un}register_pcic_intr declarations
in the not APIC_IO case.  This should silence the warnings when
building pcic.c as well as the undefined functions when the kernel
links.

Noticed by: several people in -current and me building the kernel
1999-03-12 18:45:47 +00:00
gallatin
9528077457 Enable crashdumps on alphas.
Reviewed by: Doug Rabson <dfr@nlsystems.com>
1999-03-12 14:44:46 +00:00
phk
8b985865a3 Remove duplicate include.
Noticed by: bde
1999-03-12 11:09:50 +00:00
phk
8df441b6eb Fix Typo. 1999-03-12 11:09:18 +00:00
alc
2d75a5cc4c Remove vm_page_frees from kmem_malloc that are performed
by vm_map_delete/vm_object_page_remove anyway.
1999-03-12 08:05:49 +00:00
julian
35ed865438 This solves a deadlock that can occur when read()ing into a file-mmap()
space. When doing this, it is possible to for another process to attempt
to get an exclusive lock on the vnode and deadlock the mmap/read
combination when the uiomove() call tries to obtain a second
shared lock on the vnode. There is still a potential deadlock
situation with write()/mmap().
Submitted by: Matt Dillon <dillon@freebsd.org>
Reviewed by: Luoqi Chen <luoqi@freebsd.org>
Delimmitted by tag PRE_MATT_MMAP_LOCK and POST_MATT_MMAP_LOCK
in kern/kern_lock.c kern/kern_subr.c
1999-03-12 03:09:29 +00:00
julian
f27c95753f Reviewed by: Many at differnt times in differnt parts,
including alan, john, me, luoqi, and kirk
Submitted by:	Matt Dillon <dillon@frebsd.org>

This change implements a relatively sophisticated fix to getnewbuf().
There were two problems with getnewbuf(). First, the writerecursion
can lead to a system stack overflow when you have NFS and/or VN
devices in the system. Second, the free/dirty buffer accounting was
completely broken. Not only did the nfs routines blow it trying to
manually account for the buffer state, but the accounting that was
done did not work well with the purpose of their existance: figuring
out when getnewbuf() needs to sleep.

The meat of the change is to kern/vfs_bio.c. The remaining diffs are
all minor except for NFS, which includes both the fixes for bp
interaction AND fixes for a 'biodone(): buffer already done' lockup.
Sys/buf.h also contains a chaining structure which is not used by
this patchset but is used by other patches that are coming soon.
This patch deliniated by tags PRE_MAT_GETBUF and POST_MAT_GETBUF.
(sorry for the missing T matt)
1999-03-12 02:24:58 +00:00
julian
10962136cf Fix the 'fwd' option to ipfw when asked to divert to another machine.
also rely less on other modules clearing static values, and clear them
in a few cases we missed before.
Submitted by: Matthew Reimer <mreimer@vpop.net>
1999-03-12 01:15:57 +00:00
julian
4726cfcda9 Stop the mfs from trying to swap out crucial bits of the mfs
as this can lead to deadlock.
Submitted by: Mat dillon <dillon@freebsd.org>
1999-03-12 00:44:03 +00:00
bde
29f248cf7f Fixed runtime accounting. The time since the previous context switch
was discarded on every call to calcru().  Hacking on the `switchtime'
global for a related fix in rev.1.38 of kern_resource.c was too fragile
and broke when p_switchtime went away.

PR:		10402
1999-03-11 21:53:12 +00:00
dg
d81c143718 Fixed variable overflow problem.
Obtained from:	NetBSD via Mark J. Taylor <mtaylor@cybernet.com>
1999-03-11 18:50:39 +00:00
dg
2d2ba9f6b4 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
phk
1542a4a497 Make even more of the PPSAPI implementations generic.
FLL support in hardpps()

Various magic shuffles and improved comments

Style fixes from Bruce.
1999-03-11 15:09:51 +00:00
jkh
b18a02a6c7 People who wanted the "tagged opening" message can boot -v. The rest
of us, who appear to have complained incessantly about this message since
it appeared, can now stop.
1999-03-11 10:48:02 +00:00
roberto
28cc7091aa Fix two tests against hex. values for CPUID.
PR:		i386/10050
Submitted by:	Kevin Day <toasty@dragondata.com>
1999-03-10 20:42:00 +00:00
julian
7ecfe45d80 Need to include /contrib/dev/oltr/... not dev/oltr/... 1999-03-10 17:45:26 +00:00
roger
6559ff4047 Updated to use new APIC (SMP) safe interrupt register/unregister
functions.
Posted for review to -smp and -mobile and -hackers with no objections.

Reviewed by:	Nate
1999-03-10 15:00:54 +00:00
roger
51e8dc78eb Header file for pcic interrupt register/unregister functions.
No objections from -smp or -mobile or -hackers.
1999-03-10 14:56:28 +00:00
kato
eeb7d27ebc Keyboard driver update.
Submitted by:	Kazutaka YOKOTA <yokota@FreeBSD.org>
1999-03-10 14:51:53 +00:00
yokota
e0bd924279 - Added new options (ATKBD_DFLT_KEYMAP, KBD_DISABLE_KEYMAP_LOAD and
KBD_INSTALL_CDEV).
- Removed the note that the VESA option cannot be used on the SMP system;
  this is not true.
- Moved the option VESA to more appropriate place.
1999-03-10 14:47:41 +00:00
kato
a6d7ece439 Sync with sys/i386/conf/options.i386 revision up to 1.108. 1999-03-10 14:01:59 +00:00
kato
610e06fcb6 Sync with sys/i386/conf/majors.i386 revision 1.66. 1999-03-10 14:00:21 +00:00
kato
4c784f733d Sync with sys/i386/conf/files.i386 revision up to 1.227. 1999-03-10 13:59:20 +00:00
kato
d340b23048 Sync with sys/boot/i386/loader/Makefile revision 1.30. 1999-03-10 13:41:44 +00:00
kato
58b7c74807 Sync with sys/boot/i386/libi386/bootinfo.c revision 1.17. 1999-03-10 13:40:29 +00:00
yokota
1c67fa8f3d 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
julian
6eb9a9adf9 Submitted by: Larry Lile
Move the Olicom token ring driver to the officially sanctionned location of
/sys/contrib. Also fix some brokenness in the generic token ring support.

Be warned that if_dl.h has been changed and SOME programs might
like recompilation.
1999-03-10 10:11:43 +00:00
alc
2ccd8bee02 For clarity, use the "map" variable introduced by the last commit
throughout exec_aout_imgact.
1999-03-10 07:07:42 +00:00
dcs
313dc063d0 Install new loader.rc stuff. 1999-03-10 03:34:14 +00:00
mjacob
3c0b19774e Don't forget to remove devstat entries when taking
down the CCD device.
1999-03-10 00:41:27 +00:00
brian
d5ccc1beb2 Remove all diagnostics to stdout/stderr with #ifdef DEBUG
Statify functions in alias_nbt.c
1999-03-09 23:44:00 +00:00
phk
7ae7963be3 Make TIMER_FREQ a normal, undocumented option. Raise confusion to
a higher level with example in LINT.

Clarify comment about PPS_SYNC.  Ignore for now that it doesn't
work in FLL mode, it will in a few days.
1999-03-09 20:20:09 +00:00
andreas
f90c5027c2 Fix from author of the driver:
The i++ loop from 1..1000 is too small on very fast machines like
PII 450 MHz. Increasing the loop from 1..100000 lets the machine
access PHY. After this patch it's possible to use a SMC PCI card
on a HP Kayak XA series PC Workstation. Workaround until this fix
was to enable debugging in the driver (#define EPIC_DEBUG 1).

Without that patch you get an undefined state:
while true
do
ifconfig -a | grep status:
done
The status messages flaps between twwo values, but not
"connected".

Obtained from:	Ustimenko Semen <semen@iclub.nsu.ru>
1999-03-09 17:30:12 +00:00
yokota
68a0ddeab6 Don't free() a NULL pointer! 1999-03-09 14:23:14 +00:00
dcs
08f08b7ab7 New loader.rc stuff.
Reviewed by:	jkh
1999-03-09 14:06:55 +00:00
alc
143686d0c8 Remove (redundant) map timestamp increments from some properly
synchronized routines.
1999-03-09 08:00:17 +00:00
brian
3abdae8051 typo police 1999-03-09 00:24:27 +00:00
jkh
19d6c98ded Reserve cdev 115 for University of Waikato DAG network capture boards 1999-03-08 23:31:04 +00:00
gibbs
8674f2244c Clean up and order register definitions. 1999-03-08 22:43:23 +00:00
gibbs
037eb01613 Add necessary splcam() protection around target mode setup and teardown
routines as well as card access that occurs for the AC_LOST_DEVICE async
event.
1999-03-08 22:42:52 +00:00
n_hibma
c269952e17 Move untimeout up before call to uhci_ii_done, avoids panic in
untimeout.

Submitted by Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
and gehenna@jp.FreeBSD.org.
1999-03-08 22:27:07 +00:00
gibbs
984e3d8eed Add bt_port_probe() a routine shared by the EISA and ISA probe code to
determine IRQ and DRQ information.

Fix a bug that would cause us to attempt to retrieve extended sync
rate information on cards/firmware revs that do not support that command.
1999-03-08 21:36:34 +00:00
gibbs
69aac6dea7 Ask the card where our interrupt is instead of attempting to use the EISA
config info.  On early revision cards (742a), the EISA register space,
other than the location used to determine the address of the card's main
command ports, is write only.
1999-03-08 21:35:03 +00:00
gibbs
2acdad816e Pull 'ISA style' probe where interrupt information is determined through
commands sent to card, into the base driver module.  It is now used for
EISA board probes too.
1999-03-08 21:32:59 +00:00
steve
f08849c700 Spell David correctly. 1999-03-08 21:21:43 +00:00
phk
6451714151 Integrate the new "nanokernel" PLL from Dave Mills.
This code is backwards compatible with the older "microkernel" PLL, but
allows ntpd v4 to use nanosecond resolution.  Many other improvements.

PPS_SYNC and hardpps() are NOT supported yet.
1999-03-08 12:36:14 +00:00
dcs
526581a289 Add MODINFO_ARGS, parameters passed to a module at load time.
VS: ----------------------------------------------------------------------
1999-03-08 11:05:52 +00:00
dcs
b92a330050 Increase ficl's dictionary size, in preparation for the newer loader.rc. 1999-03-08 11:00:02 +00:00
dcs
304195a177 Fix a number of memory leaks and other memory-related disorders.
Also, unbreak the breakage introduced at the last revision of module.c.
This changes the semantics of mod_searchfile() (and mod_searchmodule())
to make the caller's responsibility freeing the buffer returned. This
is different from other functions in loader's code, and was done as a
fix for kern/9631. If someone wants to revert this to the original
behavior, don't forget to fix kern/9631 in another way.

This should also fix bin/10462, which was introduced as a result of the
first try at kern/9631 (module.c last revision).

PR:		bin/10462
Submitted by:	Takanori Saneto <sanewo@ba2.so-net.ne.jp>
1999-03-08 10:32:39 +00:00
alc
118d31f1dd Remove an unused variable from vmspace_fork. 1999-03-08 03:53:07 +00:00
ken
ebc79d094e The 4 gig version of the Seagate Medalist Pro seems to have the same
trouble with tagged queueing as the 6.5 gig version.

So, I've added a quirk entry for it to limit it to two outstanding
transactions at a time, just like the 6.5G version.  While I'm at it, add a
quirk for the 9G version of the drive, since it most likely has the same
problem.

Submitted by:	Jeremy Lea <reg@shale.csir.co.za>
1999-03-07 22:48:50 +00:00
sos
b16da6db45 ZIP drives should now be working, I'm not sure about LS120 drives,
reports on those most welcome!

Fixed problems:

    Hang on probe on "fantom" devices.
	The probe now use a timeout to avoid hangs if no interrupt
	is recevied.

There has also been more general code clenaups, and some reorgs.
1999-03-07 21:49:14 +00:00
alc
65b8ae0944 Change vm_map_growstack to acquire and hold a read lock (instead of a write
lock) until it actually needs to modify the vm_map.

Note: it is legal to modify vm_map::hint without holding a write lock.

Submitted by:	"Richard Seaman, Jr." <dick@tar.com> with minor changes
		by myself.
1999-03-07 21:25:42 +00:00
brian
8b7bf74482 Document PacketAliasPptp() and allow it to be disabled
by passing INADDR_NONE.
1999-03-07 18:13:23 +00:00
hm
b5deeb6bf1 add kernel config support for i4b driver for AVM Fritz PCI 1999-03-07 16:11:12 +00:00
hm
8f0bddf02a update the i4b include files to i4b release 0.71.00 1999-03-07 16:09:45 +00:00
hm
7e46cf5dd7 update the i4b kernel part to i4b release 0.71.00 1999-03-07 16:08:20 +00:00
dfr
e2549f2539 * Register sysctl nodes before running sysinits when loading files and
unregister them after sysuninits when unloading.
* Add code to vfs_register() to set the oid number of vfs sysctls to
  the type number of the filesystem.

Reviewed by: bde
1999-03-07 16:06:41 +00:00
brian
958883fc96 Remove unused function stubs. 1999-03-07 15:36:58 +00:00
brian
1b7dfc8070 Mention that PacketAliasProxyRule() doesn't accept host names,
just IP numbers.
1999-03-07 15:02:22 +00:00
wpaul
8071fca048 Also add 1000baseSX, 1000baseLX, 1000baseCX and 1000baseTX media types. At
this point I don't know if there are any actual gigabit ethernet devices
that support media other than 1000baseSX (multi-mode fiber) but who knows.
1999-03-07 04:39:25 +00:00
archie
095548bf2b When an incoming packet is reflected back as an ICMP reply, make sure we
zero "m->m_pkthdr.rcvif", otherwise ipfw may wrongly match the outgoing packet.
PR:		kern/9723
Submitted by:	David Malone <dwmalone@maths.tcd.ie>
1999-03-06 23:10:42 +00:00
wollman
209b9e7c26 Fix callout_init(). This didn't have any practical effect since it
was only used to initialize the static timeouts, which unconditionally
clears the only bits which could have caused problems.
1999-03-06 22:27:02 +00:00
brian
5a72bcc3c3 Document PacketAliasProxyRule() and fix a typo. 1999-03-06 21:58:43 +00:00
wpaul
d0af2b19f2 Add 1000baseFX, 10baseSTP and 10baseFL media types. The 1000baseFX
type may become necessary soon. :)

Also add a couple of additional macros that NetBSD has which we don't.
Nothing in FreeBSD uses these (yet) so adding them in shouldn't hurt
anything.
1999-03-06 17:17:57 +00:00
bde
5b2317ef7d Fixed pedantic syntax error (trailing comma in enum). 1999-03-06 16:57:12 +00:00
bde
420854af0a Include <sys/queue.h> so that this file is almost self-sufficient, as is
specified in about 40 section 9 man pages.

Translated to C (C doesn't support forward declarations of enums).
1999-03-06 16:52:04 +00:00
kato
55514a1b11 Sync with sys/i386/i386/machdpe.c revision 1.327. 1999-03-06 09:43:01 +00:00
alc
4e7ebf3dd0 Upgrading a map's lock to exclusive status should increment
the map's timestamp.  In general, whenever an exclusive lock is
acquired the timestamp should be incremented.
1999-03-06 07:11:33 +00:00
bde
7435c5f5ec Don't depend on <ufs/ufs/quota.h> or another (old) prerequisite including
<sys/queue.h>.  This fixes my recent breakage of biosboot by unpolluting
<ufs/ufs/quota.h> in the !KERNEL case.
1999-03-06 05:21:09 +00:00
wollman
5f67587686 Move kernel-only declaration inside #ifdef KERNEL section. 1999-03-06 04:51:41 +00:00
wollman
430742a1d9 Expose a slightly-lower-level interface to timeouts which allows callers
to manage their own memory.  Tested on my machine (make buildworld).
I've made analogous changes on the alpha, but don't have a machine
to test.

Not-objected-to by:	dg, gibbs
1999-03-06 04:46:20 +00:00
gibbs
a8964e24eb Block cam hardware interrupts at splvm(). Controller drivers may
perform malloc(NO_WAIT) and free operations that could touch the
page queues.

Noticed by:	Tor Egge <tegge@FreeBSd.org>
1999-03-05 23:39:02 +00:00
gibbs
c7f60ce141 Poll for bus reset completion instead of assuming that our interrupt
is enabled.
1999-03-05 23:37:07 +00:00
gibbs
399fca227c Keep track of negotiated transfer parameters for each initiator<->target
connection.

Clean up support for devices featuring the multiple target SCSI ID feature.
On aic7890/91/96/97 chips, we can now assume the target role on multiple
target ids simultaneously.  Although these chips also have sufficient
instruction space to hold to support the initiator and target role at the
same time, the initiator role is currently disabled as it will conflict
(chip design restriction) with the multi-tid feature.  I'll probably add
a nob to enable the initiator (there-by disabling multi-tid) some time
in the future.

Return queue full or busy, depending on the tagged nature of the incoming
request, if our command input queue fills up in host memeory.

Deal with accept target I/O resource shortages.

If we get an underrun on a transaction that wasn't supposed to transmit
any data, don't attempt to print out the S/G list.  The code would
run until hitting a non-present page. (oops)
1999-03-05 23:35:48 +00:00
gibbs
090e44812f Modify to deal with changes in the storage of user negotiation settings. 1999-03-05 23:28:42 +00:00
gibbs
c832f918ad Add untested code to support the aha2930U2W.
Modify to deal with changes in the storage of user negotiation settings.
1999-03-05 23:28:36 +00:00
gibbs
4a87f499af Implement the control device for the "targ" target mode processor target
emulator so that instances can be dynamically added and removed from the
system.

Properly reference count peripheral instances so they are cleaned up when
destroyed by the control device.

Set a timeout for test unit ready commands.  Before it was uninitialized
and could cause us to drop off the bus when no real timeout had occurred.
1999-03-05 23:25:11 +00:00
gibbs
5548cbedbe Silence errors.
Reduce the number of accept target I/O entries we allow to better
exercise the resource shortage handling code in controller drivers.
1999-03-05 23:21:28 +00:00
gibbs
be1cc33737 Silence complaints about synchronize cache requests that fail with illegal
request.
1999-03-05 23:20:20 +00:00
gibbs
deb2554a4e xpt_done has no reason to take a volatile ccb *. 1999-03-05 23:18:56 +00:00
gibbs
b95f1cf69d Protect access to the EDT with splcam() to protect against corruption
caused by temporary EDT allocations performed by controller drivers in
their interrupt routiens.

Reference count bus entries in the EDT in preparation for support for
dynamic controller arrival and departure.

Have children of the EDT hold references to their parents.

Correct routing of the XPT_IMMED_NOTIFY ccb type for use in
target mode applications.

Fix a few cases where the generation count for EDT data members was
not being updated when a modification occurred.

splcam() problem Noticed by: Tor Egge <tegge@FreeBSD.org>
1999-03-05 23:18:16 +00:00
gibbs
a18208654b Add constants and macros for dealing with XPT opcode group types. 1999-03-05 23:13:20 +00:00
bde
0f3c3609c7 Fixed bitrot in the types of fusword() and susword(). swords will
probably always be 16 bits if they exist at all, and fusword() and
susword() are only used in i386 code, so there aren't any portability
functions with them.
1999-03-05 19:27:22 +00:00
bde
79ceaf95c2 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
bde
6d203414ca Moved kernel declarations inside the KERNEL ifdef, and removed
include of <sys/queue.h> in the !KERNEL case.  The prerequisites
for <ufs/ufs/quota.h> were broken in Lite2 by converting some of
the kernel declarations to use queue macros without including
<sys/queue.h>.  <sys/queue.h> was included in applications in
/usr/src instead.  We polluted this file instead of merging the
changes in the applications.

Include <sys/queue.h> in the KERNEL case, and forward-declare all
structs that are used in prototypes, so that this file is almost
self-sufficient even in the kernel.

Obtained from:	mostly from NetBSD
1999-03-05 11:25:31 +00:00
sos
84b9188bc6 Now all actual probing of both ATA & ATAPI devices are done after
interrupts are enabled, this kills the last "unwanted interrupts"
(and there is no ugly hacks like in the old driver to avoid them).
COmmand interrupt devices are now supported, this applies mostly
to older CDROM's and apparently also the ZIP.

Fixed problems:

    Number of total sectors wrong on some older drives.
        Fixed by not using the LBA size unless we know its valid.

There has also been more general code clenaups, some reorgs also.
1999-03-05 09:43:30 +00:00
bde
801213cd08 Changed the type of quotactl()'s 4th arg from char *' to void *'
so that non-sloppy applications can call it without using disgusting
casts to avoid warnings.  The 4th arg is sort of varargs -- it must
sometimes represent a filename, sometimes a struct pointer, and is
sometimes unused.  The arg type is still caddr_t in the kernel.

Obtained from:	mostly from NetBSD
1999-03-05 09:28:33 +00:00
alc
f5c5ee7c74 Fix an SMP-only TLB invalidation bug. Specifically, disable
a TLB invalidation optimization that won't work given the
limitations of our current SMP support.

This patch should be applied to -stable ASAP.

Thanks to John Capo <jc@irbs.com>,
          Steve Kargl <sgk@troutmask.apl.washington.edu>, and
          Chuck Robey <chuckr@mat.net>
for testing.
1999-03-05 08:05:44 +00:00
alc
5306f681cb exec_aout_imgact should lock the vm_map before calling vm_map_insert.
Reviewed by:	Matthew Dillon <dillon@apollo.backplane.com>,
		"John S. Dyson" <dyson@iquest.net>, and
		David Greenman <dg@root.com>
1999-03-04 18:04:40 +00:00
kato
f14d10621f Make loader be able to load 1.2MB fd on machines w/ 1.44MB fdd.
Sumbmitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 16:38:12 +00:00
kato
6edc8e8149 Added an entry for 1.44MB fd.
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 16:34:52 +00:00
kato
f7d44adef4 Oops, forgot to read boot.config file.
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 16:31:55 +00:00
joerg
7012cf974a 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
kato
ee59945a67 When SCSI IDs are not contiguous, the loader could not find correct
unit number for da device.  This commit fixes this problem.

Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 10:48:14 +00:00
kato
1c22dee1f8 boot2 doesn't need to say 'Can't find file boot.config.'
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 10:45:06 +00:00
kato
f87c1161fe Fix character code of backslash. PC98 should use 0xfc instead of 0x5c.
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 10:44:01 +00:00
kato
7179175e40 Sync with sys/i386/isa/sio.c revision 1.229. 1999-03-04 10:37:30 +00:00
kato
18785d8772 Sync with sys/i386/conf/files.i386 revision 1.225. 1999-03-04 10:36:27 +00:00
sos
0804acfe51 Add the atapi fd driver (LS120 & ZIP drive support) 1999-03-04 09:53:19 +00:00
wpaul
2d467639d3 arprequest() allocates an mbuf with m_gethdr() but does not initialize
m->m_pkthdr.rcvif to NULL. Bad arprequest(). No biscuit.
1999-03-04 04:03:57 +00:00
sos
fb974f8ed9 Added driver to support ATAPI floppies ie LS-120 & ZIP drives.
Added "options ATA_STATIC_ID" that wires ATA disks like the old wd driver.

Fixed problems:

	Dont use more sectors/intr than the drive supports.
	Fix announce of > 8.4G disks.
	Dont call ad_interrupt/ad_transfer when no disks config'd.
	Use the right page# for CDR write mode params.
	Fix breakage when no PCI support in kernel.
	Implement DEVFS stuff.

General code clenaup.
1999-03-03 21:10:29 +00:00
julian
ee38b91324 The tunable parameter for the scheduler quantum was inverted.
Higher numbers led to smaller quanta.
In discussion with BDE, change this parameter to be in uSecs
to make it machine independent,
and limit it to non zero multiples of 'tick' (rounding down).
Also make the variabel globally available so that the present function that
returns its value (used for posix scheduling I believe) can go away.

Submitted by: Bruce Evans <bde@freebsd.org>
1999-03-03 18:15:29 +00:00
bde
c77c7ecbb2 Fixed null pointer panic for misconfigured master ports.
PR:		i386/10273
Submitted by:	Stephen Kiernan <sab@yin.vegamuse.org>
1999-03-03 14:38:07 +00:00
kato
c5723ddbb3 Added FE_8BIT_SUPPORT into the list. The fe driver includes opt_fe.h.
Submitted by:	Takahashi Yoshihiro <nyan@dd.catv.ne.jp>
1999-03-03 10:40:27 +00:00
julian
caaaa6363b Slight cleanup of code resurected for union mounts..
Submitted by: Tony Finch <dot@dotat.at>
1999-03-03 02:35:51 +00:00
alc
9e3d479b9d To avoid a conflict for the vm_map's lock with vm_fault, release
the read lock around the subyte operations in mincore.  After the lock is
reacquired, use the map's timestamp to determine if we need to restart
the scan.
1999-03-02 22:55:02 +00:00
grog
695f9c32ce Change SAVECONFIG ioctl: it now writes an int parameter. 1999-03-02 22:00:19 +00:00
julian
5014b30868 Make comment match code. 1999-03-02 21:23:38 +00:00
imp
d1a0454023 Better logging when the Geometry register probe fails. 1999-03-02 20:56:07 +00:00
julian
57bcf97676 Remove inapropriate use of VOP_ISLOCKED()
This produced races resulting in panics and filesystem corruptions
under some circumstances.

Reviewed by: luoqi chen <luoqi@freebsd.org>
Reviewed by: Kirk McKusick <mckusick@mckusick.com>
Submitted by: Matt Dillon <dillon@freebsd.org>
1999-03-02 20:26:39 +00:00
semenu
00c7412b03 Add new kernel option:
options NTFS
1999-03-02 20:26:02 +00:00
dg
c58977479e Correct casts in vtophys and avtophys to be vm_offset_t. 1999-03-02 16:20:39 +00:00
dcs
ca008db062 Don't treat empty lines as end-of-file in include(). (I can't
believe this bug is still here... :-( )
1999-03-02 16:16:57 +00:00
kato
bf0d612085 Merge with sys/i386/conf/files.i386 revision 1.224. 1999-03-02 14:03:21 +00:00
kato
bf5c629555 Sync with sys/i386/conf/Makefile.i386 revision 1.140. 1999-03-02 14:01:33 +00:00
kato
77147e7aae Fix for LINE30 option. This option was not tested under new console
driver.

Submitted by:	Takahashi Yoshihiro <nyan@dd.catv.ne.jp>
1999-03-02 12:34:24 +00:00
grog
4913dff128 Correct some diagrams
Remove pid field from struct sd, struct plex and struct volume

Add flags VF_STOPPING, VF_OPEN and VF_DAEMONOPEN
1999-03-02 06:58:09 +00:00
grog
bd16a10ca3 sizespec: allow negative values (which signal error conditions).
catch missing (NULL) parameters.
1999-03-02 06:57:48 +00:00
grog
0b5adde990 Change the name of drive state "uninit" to "referenced": it only
occurs if we have a dangling pointer to a drive.
1999-03-02 06:57:30 +00:00
grog
ec912dfdf1 Change printf() calls to log() calls.
set_sd_state: allow stop command to stop a reborn subdisk.
1999-03-02 06:57:08 +00:00
grog
481eaa1479 Change printf() calls to log() calls. 1999-03-02 06:56:39 +00:00
grog
314eb23e75 Add keywords "size", synonym for "length", and "max".
Check for NULL name parameters.
1999-03-02 06:56:05 +00:00
grog
5dabd9e99d Change printf() calls to log() calls.
expand_table: Zero out newly allocated tables
1999-03-02 06:55:44 +00:00
grog
989509dbce Add keywords "size", synonym for "length", and "max". 1999-03-02 06:55:18 +00:00
grog
227e8e532b Change printf() calls to log() calls.
Change VINUM_SAVECONFIG: it now requires a parameter.  0 means
"configuration updates are finished, please save", and 1 means "please
just save the config".  This second meaning is invoked by the new
"saveconfig" command to vinum(8).
1999-03-02 06:54:57 +00:00
grog
7eff6fa1e5 Change printf() calls to log() calls.
Recognize "referenced" drives by the lack of a slash in the device
name, not by a NUL character.

vinum_scandisk: return error indication (ENOENT if we can't find any
vinum drive, otherwise 0).

VINUM_SAVECONFIG: change parameters.
1999-03-02 06:54:30 +00:00
grog
bfaad18692 New function return_drive_space
Add definitions of vinum_inactive and free_vinum, formerly local to
vinum.c

vinum_scandisk now returns int (error number)
1999-03-02 06:53:42 +00:00
grog
5a550e3231 change printf() calls to log() calls.
Don't save config while we're reading it from disk.

Change the way we handle the daemon: if we can't communicate with it
for 1 second (which is possible), start a new one.  The daemon saves
its pid in daemonpid; on each iteration of the main loop the daemon
checks whether it's still in favour.  If not, it silently exits.
Also, when trying to communicate with the daemon, check daemonpid
first.  If it's set to 0, don't even try.
1999-03-02 06:53:15 +00:00
grog
d396963343 Change printf() calls to log() calls.
Rename the VF_KERNELOP to VF_DISKCONFIG and checkkernel () to
checkdiskconfig (), which better describes their function.

Disable configuration updates if we have an error reading in the
configuration.  This stops a "shoot-in-foot" problem where a mistake
can cause the configuration to be obliterated.

Tidy up some messages, which included superfluous \ns.

Recognize RAID-5 configuration information even in the non-RAID-5
version.  This fixes shoot-in-foot problems where starting the wrong
version of vinum would kill RAID-5 plexes.

Recognize drives that have been referenced, but for which no physical
location is known.  This is part of a modification which will
ultimately allow incrementally reading configurations.  Such drives
will have a device name "unknown".

New function return_drive_space () returns space to a drive.
Previously this was part of free_sd ().

give_sd_to_drive: don't do it if the subdisk needs more space than the
drive has available.

config_sd: if reading config from disk, accept plex offset, drive
offset and length specs of -1 to indicate error conditions.

parse_config: return ENOENT if the "read" command doesn't find any
drives.

remove_sd_entry: don't do it, even by force, if it's open.

If the size of a striped or RAID-5 plex is not an integral multiple of
the stripe size, trim the size until it is.

reinstate update_volume_config, which had atrophied, to recalculate
the size of a volume if a plex has shrunk due to stripe size
considerations.
1999-03-02 06:52:47 +00:00
grog
86a91acb5e Change printf() calls to log() calls.
vinumattach: Zero out tables after allocating them

Modify procedure at unload: if a vinum(8) has the superdev open, don't
close down.  If only the daemon has it open, send the daemon a stop
request and wait for it to close the superdev, then unload.

In order to do this, create a second superdev which is opened by the
daemon.  The open and close routines set a different bit in
vinum_conf.flags; otherwise the treatment is identical.

Remove opencount field in vol structure; replace by a flag bit, since
we can't count the number of opens.

Remove dead LKM grunge.
1999-03-02 06:52:11 +00:00
grog
9e0ac3a047 Change the name of drive state "uninit" to "referenced": it only
occurs if we have a dangling pointer to a drive.
1999-03-02 06:51:48 +00:00
mckusick
4806ae523d Reorganize locking to avoid holding the lock during calls to bdwrite
and brelse (which may sleep in some systems).

Obtained from:	Matthew Dillon <dillon@apollo.backplane.com>
1999-03-02 06:38:07 +00:00
alc
5149bf6666 Remove the last of the share map code: struct vm_map::is_main_map.
Reviewed by:	Matthew Dillon <dillon@apollo.backplane.com>
1999-03-02 05:43:18 +00:00
imp
f86ebee5a7 Merge patch to ufs_vnops.c's ufs_rename to the copy of ufs_rename that
lives in ext2_vnops.c for ext2fs.  Also remove cast from comparision.
Bruce pointed out that it was bogus since we'd force a signed
comparision when we really wanted an unsigned comparison.
1999-03-02 05:31:47 +00:00
mckusick
421edf71f1 When fsync'ing a file on a filesystem using soft updates, we first try
to write all the dirty blocks. If some of those blocks have dependencies,
they will be remarked dirty when the I/O completes. On systems with
really fast I/O systems, it is possible to get in an infinite loop trying
to flush the buffers, because the I/O finishes before we can get all the
dirty buffers off the v_dirtyblkhd list and into the I/O queue. (The
previous algorithm looped over the v_dirtyblkhd list writing out buffers
until the list emptied.) So, now we mark each buffer that we try to
write so that we can distinguish the ones that are being remarked dirty
from those that we have not yet tried to flush. Once we have tried to
push every buffer once, we then push any associated metadata that is
causing the remaining buffers to be redirtied.

Submitted by:	Matthew Dillon <dillon@apollo.backplane.com>
1999-03-02 04:04:31 +00:00
julian
7e163b4f03 Fix thread/process tracking and differentiation for Linux threads emulation.
Submitted by:	Richard Seaman, Jr." <dick@tar.com>

Also clean some compiler warnings in surrounding code.
1999-03-02 00:28:09 +00:00
mckusick
0674f5c758 Ensure that softdep_sync_metadata can handle bmsafemap and mkdir entries
if they ever arise (which should not happen as softdep_sync_metadata is
currently used).
1999-03-02 00:19:47 +00:00
sos
6f8b8ad7c0 Finally!!
The much roumored replacement for our current IDE/ATA/ATAPI is
materialising in the CVS repositories around the globe.

So what does this bring us:

A new reengineered ATA/ATAPI subsystem, that tries to overcome
most of the deficiencies with the current drivers.

It supports PCI as well as ISA devices without all the hackery
in ide_pci.c to make PCI devices look like ISA counterparts.

It doesn't have the excessive wait problem on probe, in fact you
shouldn't notice any delay when your devices are getting probed.

Probing and attaching of devices are postponed until interrupts
are enabled (well almost, not finished yet for disks), making
things alot cleaner.

Improved performance, although DMA support is still WIP and not
in this pre alpha release, worldstone is faster with the new
driver compared to the old even with DMA.

So what does it take away:

There is NO support for old MFM/RLL/ESDI disks.
There is NO support for bad144, if your disk is bad, ditch it, it has
already outgrown its internal spare sectors, and is dying.

For you to try this out, you will have to modify your kernel config
file to use the "ata" controller instead of all wdc? entries.

example:

# for a PCI only system (most modern machines)
controller 	ata0
device		atadisk0	# ATA disks
device		atapicd0	# ATAPI CDROM's
device		atapist0	# ATAPI tapes

#You should add the following on ISA systems:
controller	ata1	at isa? port "IO_WD1" bio irq 14
controller	ata2	at isa? port "IO_WD2" bio irq 15

You can leave it all in there, the system knows how to manage.

For now this driver reuses the device entries from the old system
(that will probably change later), but remember that disks are
now numbered in the sequence they are found (like the SCSI system)
not as absolute positions as the old system.

Although I have tested this on all the systems I can get my hands on,
there might very well be gremlins in there, so use AT YOU OWN RISK!!
This is still WIP, so there are lots of rough edges and unfinished
things in there, and what I have in my lab might look very different
from whats in CVS at any given time. So please have all eventual
changes go through me, or chances are they just dissapears...

I would very much like to hear from you, both good and bad news
are very welcome.

Enjoy!!

-Søren
1999-03-01 21:19:19 +00:00
alc
4d728cf4b3 mincore doesn't modify the vm_map. Therefore, it doesn't require
an exclusive lock.  A read lock will suffice.
1999-03-01 20:42:16 +00:00
luigi
f9bc5c6a26 Fix handling of IFF_ALLMULTI. The code did not call
tulip_addr_filter() on SIOCSIFFLAGS, and was nuking the IFF_ALLMULTI
on entering tulip_addr_filter(). As a result it was impossible to run
a multicast router on a machine with a "de" interface.
1999-03-01 16:54:28 +00:00
kato
c7f6e24ca8 Sync with sys/boot/i386/btx/btx/btx.s revision 1.10. 1999-03-01 10:02:45 +00:00
dt
c746a218d7 Ensure that vnode_if.h build before object files, if make depend has not
been run.
1999-03-01 09:54:51 +00:00
imp
03ea38a673 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
rnordier
c74450fa3d Save option, rather than slice, selected. This permits unattended
booting from other than drive 0, as the F5 keypress is saved and
"replayed."

Requested (some time ago) by: archie
1999-03-01 02:42:47 +00:00
mjacob
6784b7fe13 +Match against T4000* for HP QIC quirks (not T4000S* where it doesn't then
catch a T4000s)
+ Set *some* kind of error at EOM if we're in fixed mode and have pending errs.
  Do not clear the ERR_PENDING bit if more buffers are queued.
+ Release the start_ccb in this case also, else we hang forever on rewinding.
+ Any kind of error for load to BOT in samount should then cause an attempt
  to use REWIND to come back to BOT. Do the initial load command quietly.
+ In samount, if we succeed, set the relative position markers.
1999-03-01 01:07:47 +00:00
mckusick
f0b212c581 Update to know about current kernel directory layout.
Add ability to build links as well as tags.
1999-02-28 22:14:16 +00:00