Commit Graph

31600 Commits

Author SHA1 Message Date
bde
14ae95f735 Moved signal handling and rescheduling from userret() to ast() so that
they aren't in the usual path of execution for syscalls and traps.
The main complication for this is that we have to set flags to control
ast() everywhere that changes the signal mask.

Avoid locking in userret() in most of the remaining cases.

Submitted by:	luoqi (first part only, long ago, reorganized by me)
Reminded by:	dillon
2002-04-04 17:49:48 +00:00
bde
3b8182ff40 Optimized the check for unmasked pending signals in CURSIG() using a new
inline function sigsetmasked() and a new macro SIGPENDING().  CURSIG()
will soon be moved out of the normal path of execution for syscalls and
traps.  Then its efficiency will be less important but the new interfaces
will be useful for checking for unmasked pending signals in more places.

Submitted by:		luoqi (long ago, in a slightly different form)

Assert that sched_lock is not held in CURSIG().
2002-04-04 15:19:41 +00:00
brian
0de93566db Pre-declare bootpc_init() so that options BOOTP doesn't break the
build in ia64 and i386 due to -Werror.
2002-04-04 14:27:57 +00:00
phk
db493db577 Centralize EOF handling and improve access controls for bio scheduling.
Sponsored by:	DARPA & NAI Labs
2002-04-04 09:58:20 +00:00
phk
fd177bc959 Move access and orphan member functions from class to geom.
Sponsored by: DARPA & NAI Labs
2002-04-04 09:54:13 +00:00
phk
46a753d1ac s/classs/classes/ to fixup grammer after the previous global renaming.
Sponsored by: DARPA & NAI Labs
2002-04-04 09:41:47 +00:00
phk
bc9ecd6837 CTASSERT the size of struct dos_partition. 2002-04-04 09:36:15 +00:00
phk
a22a153ace Register major #4 for GEOM 2002-04-04 09:35:08 +00:00
alc
dac9c43887 o Kill the MD grow_stack(). Call the MI vm_map_growstack()
in its place.
 o Eliminate the use of useracc() and grow_stack() from sendsig().

Reviewed by:	peter
2002-04-04 06:59:18 +00:00
marcel
744e04d219 o Add architecture specific segment types.
o  Add architecture specific segment attributes.
2002-04-04 06:42:49 +00:00
imp
002b206ef8 o Reduce the gratuitous differences with NetBSD.
o OpenBSD's wiconfig tells me that a value of '2' is for sony wireless
  cards, 1 is for lucent (which we already knew) and '5' is for embedded
  lucent cards.
o Move some RID definitions to if_wavelan_ieee.h and use NetBSD names
  more often.

# more work is still needed in this area.
2002-04-04 06:28:16 +00:00
peter
b486ed03d8 Use a relative path to libstand.. /usr/src/lib/libstand may not exist
or may have the wrong header files.
2002-04-04 06:04:38 +00:00
luigi
f7c71ab2f2 Replace (deprecated ?) FREE() macro with direct calls to free() 2002-04-04 06:03:17 +00:00
wpaul
707ff463e2 Try to sort out the correct way to generate async link state change
interrupts. This is a bit harder than it needs to be because there's
more than one way to generate link attentions, at least one of which
does not work on the BCM5700, but does on the 5701.

For the 5701, we can safely use the 'link changed' bit in the status
block, and we enable link change attentions in the mac event register.
For the 5700, we have to use MII interrupts, which require checking
the MAC status register rather than the status block. This requires
doing an extra register access on each interrupt which I'd prefer to
avoid, but them's the breaks. Testing with both a 3c996-T and 3c996B-T
shows that we do in fact detect the link going up and down properly
on cable insertions/disconnections.

Also, avoid twiddling the autopoll enable bit in the MI mode register
when doing a PHY read. I think this coupled with the other changes
will stop the interrupt storms Paul Saab has been harassing me about.
Manually setting the link to 100baseTX full duplex seems to work ok
for me. (I'm typing over the 3c996B-T right now.)

Lastly, teach the driver how to recognize a 3c996B-SX by checking
the hardware config word in the EEPROM in order to detect the media.
We attach 5701 fiber cards correctly now, but I haven't verified that
they send/receive packets yet since I don't have a second fiber
interface at home. (I know that fiber 5700 cards work, so I'm
keeping my fingers crossed.)
2002-04-04 06:01:31 +00:00
luigi
8c02d0329f Fix incorrect m_free - m_freem() usage. 2002-04-04 06:00:21 +00:00
luigi
55510cb673 Fix a couple of incorrect m_free() vs. m_freem() usages and related issues.
Reviewed-by: brooks
2002-04-04 05:42:09 +00:00
julian
d09a7d9089 Add the driver for "myson" ethernet cards.
This driver was written by Myson and is made available
by their courtesy.
The 5.x version is not fully tested (I will be testing) but
the 4.x version has been tested by many.
I will commit it soon.
Myson have their own chip design based on the DEC 214xx family but
with several differences. Myson sells this chip to several
EOMs in teh Chinese area so there may be many noname brand cards
that respond to this driver. Myson will be supplying a list
of some of these.
2002-04-04 05:22:13 +00:00
alc
db11618136 o aio_process needn't fhold()/fdrop() the fp now that _aio_aqueue() and
aio_free_entry() do this.
 o Remove two unnecessary/unused variables from aio_process() and one field
   from aiocblist.
2002-04-04 02:13:20 +00:00
alfred
6dc270c501 Avoid a lock order reversal by dropping the eventhandler_mutex earlier.
We get enough protection from the lock on the individual lists that we
aquire later.

Noticed/Tested by: Steven G. Kargl <kargl@troutmask.apl.washington.edu>
Submitted by: Jonathan Mini <mini@haikugeek.com>
2002-04-04 00:52:03 +00:00
phk
65c4a4cb9d Move the FFS parameter MAXFRAG from <sys/param.h> to <ufs/ffs/fs.h>
Sponsored by:	DARPA & NAI Labs.
2002-04-03 20:39:27 +00:00
imp
199f184a0a It would appear, from preliminary indications, that No Wires Necessary
cards aren't compatible with either Lucent or Intersil firmware.
2002-04-03 20:39:07 +00:00
imp
0b57062523 Four fixes from NetBSD:
1) Properly detect the Symbol based cards (The 3Com Airconnect and their
   ilk) and only reset them *ONCE* ever.  This appears to make them work,
   but more testing is needed.  The tests that would wedge up my machine
   completely now appear to work, but I have not real access points
   handy.
2) Report both the Station firmware and the Primary firmware on Prism
   based cards.  On Lucent based cards, only report the station firmware
   since that's all it supports.  On symbol cards, report the symbol
   specific firmware name as its station firmware.
3) Better Prism 2.5 and 3 family names.  We really need to go table
   driven for this.
4) Workaround for bugs in Intersil's firmware is only needed for at most
   0.8.2 and earlier, since 0.8.3 and later appear to work.

Obtained from: NetBSD
2002-04-03 19:44:17 +00:00
jhb
9fa365d7d6 - Axe a stale comment. We haven't allowed the ucred pointer passed to
securelevel_*() to be NULL for a while now.
- Use KASSERT() instead of if (foo) panic(); to optimize the
  !INVARIANTS case.

Submitted by:	Martin Faxer <gmh003532@brfmasthugget.se>
2002-04-03 18:35:25 +00:00
jhb
ff56a14aba First round at trying to split up NOTES into MI and MD portions.
Unfortunately, this level doesn't really provide enough granularity.  We
probably need several MI NOTES type files for things that are shared by
several architectures but not by all.  For example, the PCI options could
live in a NOTES.pci.

This also updates the Makefile for i386 to generate LINT.  The only changes
in the generated LINT are the order of various options.

Suggestions for improvement welcome.
2002-04-03 18:09:17 +00:00
sheldonh
fe12960f1a Bump __FreeBSD_version to reflect the new tri-state nature of the
sendmail_enable rc.conf flag.

This will help MTA port maintainers.
2002-04-03 15:03:38 +00:00
mux
9effffd331 Add two forgotten vfs_unbusy() calls, in vfs_mount() and vfs_nmount().
Reviewed by:	phk
2002-04-03 12:19:03 +00:00
ru
d8ffece3c4 Dike out a highly insecure UCONSOLE option.
TIOCCONS must be able to VOP_ACCESS() /dev/console to succeed.

Obtained from:	OpenBSD
2002-04-03 10:56:59 +00:00
marcel
0dbbe50955 Make the kernel dump header endianness invariant by always dumping
in dump byte order (=network byte order). Swap blocksize and dumptime
to avoid extraneous padding on 64-bit architectures. Use CTASSERT
instead of runtime checks to make sure the header is 512 bytes large.
Various style(9) fixes.

Reviewed by: phk, bde, mike
2002-04-03 07:24:12 +00:00
jake
8d96cdfea3 Fix a long standing 32bit-ism. Don't assume that the size of a chunk of
memory in phys_avail will fit in 'int', use vm_size_t.  This fixes booting
on sparc64 machines with more than 2 gigs of ram.

Thanks to Jan Chrillesen for providing me with access to a 4 gig machine.
2002-04-03 06:57:52 +00:00
peter
a19d6b9504 Deal with "#define _XOPEN_SOURCE" in header files (eg: XFree86 4.2.0)
which caused a syntax error here:
#if _XOPEN_SOURCE >= 600
etc.  This is a hack, but I have seen things like it around elsewhere.

Tested by:	dwcjr
2002-04-03 05:56:55 +00:00
marcel
3e7199cf1b o GC dumplo
o  Replace the string lit. "ia64" with MACHINE
2002-04-03 05:16:09 +00:00
marcel
436b1d297c Use a twiddle to show that we're busy dumping. The initial code
emitted the total number of pages it still had to dump prior to
dumping a block of up to 16 pages. For a 128MB region this would
result in 8M number of printf()s. Barf!

The problem in general is that memory typically has one really
big region and a number of "scattered" smaller regions. Some may
even be just a few pages. The twiddle works best for now, but
it doesn't really give a good progress indication for the large
regions. Those are the cases where you definitely want good PI
to avoid having the user turn into a twiddle :-)
2002-04-03 05:11:59 +00:00
marcel
6625b0cb22 Actually have ia64dump.c be included in the build. Can't be bad. 2002-04-03 04:42:14 +00:00
dillon
9a85737b15 brelse() was improperly clearing B_DELWRI in the B_DELWRI|B_INVAL case
without removing the buffer from the vnode's dirty buffer list, which
can result in a panic in NFS.  Replaced the code with a call to bundirty()
which deals with it properly.

PR:		kern/36108, kern/36174
Submitted by:	various people
Special mention: to Danny Schales <dan@coes.LaTech.edu> for providing a core dump that helped me track this down.
MFC after:	1 day
2002-04-03 00:17:36 +00:00
mjacob
aad01d8119 Redo stuff for sparc64- primarily fix bus dma implementation. The endian
stuff was right, but the busdma stuff was massively not right.

Didn't really test on ia64 or i386- don't have the former h/w and my
FreeBSD-current disk is unwell right now. Hope that this is okay.

MFC after:	1 week
2002-04-02 23:36:14 +00:00
des
2a92b78602 Revert to open hashing. It makes the code simpler, and works farily well
even when the number of records approaches the size of the hash table.
Besides, the previous implementation (using linear probing) was broken :)

Also, use the newly introduced MTX_SYSINIT.
2002-04-02 23:26:32 +00:00
jhb
9d3d63fcbc - Move the MI mutexes sched_lock and Giant from being declared in the
various machdep.c's to being declared in kern_mutex.c.
- Add a new function mutex_init() used to perform early initialization
  needed for mutexes such as setting up thread0's contested lock list
  and initializing MI mutexes.  Change the various MD startup routines
  to call this function instead of duplicating all the code themselves.

Tested on:	alpha, i386
2002-04-02 22:19:16 +00:00
scottl
b4835a2fe6 Add support for the PERC3/Di found in the Dell 1650
Submitted by:	mp
2002-04-02 21:49:26 +00:00
alfred
0b196d98fb fix comment typo, s/neccisary/necessary/g 2002-04-02 21:25:12 +00:00
des
611a83ca16 Oops, forgot to commit the definition of the mtx_name() macro. 2002-04-02 21:12:17 +00:00
jhb
9153749ef0 Spelling police. 2002-04-02 20:44:30 +00:00
jhb
2c4739409a Enforce an implicit lock order of sleepable locks before non-sleepable
locks.
2002-04-02 19:27:21 +00:00
joerg
a5d7659c02 When reading a UFS-style label from a floppy, don't attempt to use a
"raw partition" of any kind since the floppy driver doesn't support
UFS-style partitions at all.

Reported by:	"Crist J. Clark" <crist.clark@attbi.com>
Reviewed by:	bde
MFC after:	3 days
2002-04-02 18:29:43 +00:00
arr
8797837391 - Make this compile if INVARIANTS support is not enabled. 2002-04-02 18:18:56 +00:00
tmm
3ac364813a Fix crashes that would happen when more than one 4MB page was used to
hold the kernel text, data and loader metadata by not using a fixed slot
to store the TSB page(s) into. Enter fake 8k page entries into the kernel
TSB that cover the 4M kernel page(s), sot that pmap_kenter() will work
without having to treat these pages as a special case.

Problem reported by:	mjacob, obrien
Problem spotted and 4M page handling proposed by:       jake
2002-04-02 17:50:13 +00:00
arr
e3fb0536de - Add a mutex to lock the global securelevel value.
- Make use of MTX_SYSINIT() as the means to initialize our mutex lock.
2002-04-02 17:43:17 +00:00
tmm
721449cf80 Remove the superfluous second argument from the IOTSBSLOT() macro. 2002-04-02 17:41:06 +00:00
tmm
7e32437fbb Lower UPA_MEMSTART to 0x1c000000000. This is required for some larger
Enterprise machines.
2002-04-02 17:38:52 +00:00
tmm
45398f8631 Set mp_maxid so that UMA works with SMP.
Submitted by:	jake
2002-04-02 17:37:06 +00:00
tmm
198af052bf Do not try to set up the PCI bus B error interrupt on "sabre"s, since
it is only available on "psycho"s. The same applies to the power
management interrupt, which is not enabled by default though.
2002-04-02 17:27:35 +00:00
tmm
2d73e08660 Remove a debugging panic that was triggered when a resource that was out
of range was tried to be allocated; just return failure instead.
2002-04-02 17:23:45 +00:00
tanimura
448edc64b4 Fix leakage of p_pgrp lock. 2002-04-02 17:12:06 +00:00
tmm
eb20435a69 Do not use semi-fixed TLB slots for the 4M kernel pages any more. 2002-04-02 17:10:15 +00:00
tmm
2025cfe33a 1.) Rename locore.s to locore.S (by repocopy), to be able to remove
special-case make rule
2.) Cleanups, remove superfluous expicit rules, add -nostdlib to LDFLAGS,
    remove -X and -g, remove -g from CFLAGS
3.) Add BINDIR
4.) Build install the loader help file, add an empty help.sparc64
5.) Change the default configuration to only support booting from disk
6.) Get libofw.a from a path relative ${.OBJDIR}, not ${.CURDIR}

Submitted by:	jake (1 - 5), obrien (6)
2002-04-02 17:08:37 +00:00
jhb
77dc513737 Explicitly document how we implicitly enforce the lock order of sleep
locks before spin locks.
2002-04-02 16:51:20 +00:00
sos
9bb1e67e7e Correct the Northbridge test on the new ATA133 VIA's
Misc cosmetics now I'm there.
2002-04-02 16:45:06 +00:00
arr
6ae00dcc9f - Add MTX_SYSINIT and SX_SYSINIT as macro glue for allowing sx and mtx
locks to be able to setup a SYSINIT call.  This helps in places where
  a lock is needed to protect some data, but the data is not truly
  associated with a subsystem that can properly initialize it's lock.
  The macros use the mtx_sysinit() and sx_sysinit() functions,
  respectively, as the handler argument to SYSINIT().

Reviewed by: alfred, jhb, smp@
2002-04-02 16:05:43 +00:00
joe
6a47651923 Back the last commit out. The network drivers need reworking first. :( 2002-04-02 14:54:52 +00:00
des
cbcf839df4 Instead of get_cyclecount(9), use nanotime(9) to record acquisition and
release times.  Measurements are made and stored in nanoseconds but
presented in microseconds, which should be sufficient for the locks for
which we actually want this (those that are held long and / or often).
Also, rename some variables and structure members to unit-agnostic names.
2002-04-02 14:42:01 +00:00
joe
f47a79c673 MFNetBSD: usbdi.c (1.80), usbdi.h (1.51)
date: 2001/04/13 11:19:58;  author: augustss;
    Finally get rid of the UGLY and EVIL hack for avoiding tsleep().
2002-04-02 14:28:18 +00:00
joe
a95eca886e MFNetBSD:
revision 1.89
    date: 2001/11/10 17:10:42;  author: augustss;  state: Exp;  lines: +2 -1
    Abort any xfers on the control pipe before closing it on detach.
2002-04-02 14:16:06 +00:00
joe
58c7211f23 MFNetBSD: usb_port.h (1.45 partial), usb_subr.c (1.88)
date: 2001/11/10 16:53:32;  author: augustss;
    Small portability improvement.
2002-04-02 14:14:14 +00:00
joe
bd5b0c32fd MFNetBSD: usb_subr.c (1.87), usbdi.h (1.53)
date: 2001/08/15 00:04:59;  author: augustss;
    Add a little infrastructure so that individual drivers can easily check
    if thee was a vendor+product locator match.
2002-04-02 14:08:43 +00:00
sos
9b962a4e9b Add get-status to the ATA RAID subsystem. 2002-04-02 13:48:17 +00:00
joe
5c4e8e05b6 Reduce differences between NetBSD's version and ours.
(Should be all white space related, but there's the removal of the
odd 'register' directive also).
2002-04-02 13:26:40 +00:00
joe
0177db4b0b Use ANSI prototypes and declarations. 2002-04-02 11:54:28 +00:00
phk
4d586060a3 Retire the bogus ioctl DIOCGPART in toto.
Once again we can notice that badly thought out hacks ferment and infect
far more code than initially expected.

Sponsored by:	DARPA and NAI Labs.
2002-04-02 11:52:13 +00:00
joe
ffbaaedd06 Use ANSI prototypes and declarations.
Rename csr_{write|read}_* to aue_csr_* in keeping with NetBSD.
2002-04-02 11:42:57 +00:00
phk
edf19c6634 Stop using the bogus DIOCGPART ioctl, use DIOCGSECTORSIZE and
DIOCGMEDIASIZE instead.

The partition type check has been XXX'ed out since we cannot expect
that a BSD disklabel with a type field be available on all platforms.
2002-04-02 11:40:45 +00:00
phk
79a894e10e Use DIOCGSECTORSIZE instead of the bogus DIOCGPART ioctl. 2002-04-02 11:23:14 +00:00
phk
bcba0677fb One less user of the bogus DIOCGPART ioctl. 2002-04-02 11:17:37 +00:00
marcel
5dc73db814 Don't compile the dummy dumpsys for ia64. 2002-04-02 10:55:40 +00:00
marcel
c7311f64df o Add header version for ia64,
o  Make it compile with GCC 3.x.
2002-04-02 10:53:59 +00:00
joe
1ce083b959 MFNetBSD:
revision 1.50
    date: 2001/04/12 01:18:24;  author: thorpej;  state: Exp;  lines: +6 -2
    Only if __HAVE_GENERIC_SOFT_INTERRUPTS is then splusb == splsoftnet
    (because we register the interrupt with IPL_SOFTNET).  However, if
    we're using a callout, then splusb == splsoftclock (because the
    callouts happen from the softclock interrupt).

    Note that splsoftnet blocks softclock interrupts, but this is
    meant to better describe what's going on.
2002-04-02 10:53:42 +00:00
marcel
b09f57883b Initial implementation of the ia64 kernel dumper. The dumper
constructs an ELF image, consisting of the ELF header, for
each memory region a program header, followed by the memory
contents for each region. It does blocked I/O for the headers
as they are typically smaller than DEV_BSIZE.
2002-04-02 10:51:32 +00:00
joe
2af98633b5 MFNetBSD: (partial merge, as part was already there).
revision 1.56
    date: 2001/11/13 07:55:30;  author: augustss;  state: Exp;  lines: +4 -4
    Add some #endif comments.
2002-04-02 10:48:58 +00:00
joe
ebb3991890 MFNetBSD:
revision 1.54
    date: 2001/11/09 14:59:11;  author: augustss;  state: Exp;  lines: +2 -1
    Add a debug message.
2002-04-02 10:47:01 +00:00
phk
fcdd7b2328 Initialize a field to cater for ata-raid 2002-04-02 10:09:16 +00:00
joe
f8a8a0601d MFNetBSD: usb.c (1.53), usbdi.h (1.49)
date: 2001/01/23 17:04:30;  author: augustss;
    Ad function to remove a usb task.
2002-04-02 09:58:16 +00:00
joe
c5a5e0e1ed MFNetBSD:
revision 1.52
    date: 2001/01/21 19:00:29;  author: augustss;  state: Exp;  lines: +5 -0
    Ad a comment.
2002-04-02 09:51:10 +00:00
joe
2104113695 MFNetBSD: uhub.c (1.49), usb.c (1.51), usbdi.h (1.48), usbdivar.h (1.63)
date: 2001/01/21 19:00:06;  author: augustss;
    Change the operation of the USB event thread.  Before it only
    performed USB device discovery, now it can also perform (short)
    tasks for device drivers that need a process context, but don't
    have one.  This is not pretty, but better than using busy-wait
    in an interrupt context.
2002-04-02 09:49:36 +00:00
marcel
dc85689325 o GC totalphysmem and resvmem.
o  Rephrase comment describing that the memory region can contain
   the kernel.
2002-04-02 07:20:42 +00:00
imp
66063ff556 More newcard devices:
Netgear FA-410TXC
	Netgear FA-411
	Lantech Fastnet TX
	Linksys pcm100
Hide the total wildcard device for SVEC too :-(

Obtained from: NetBSD/OpenBSD
2002-04-02 05:52:52 +00:00
rwatson
219837a0a6 Update comment regarding the locking of the sysctl tree.
Rename memlock to sysctllock, and MEMLOCK()/MEMUNLOCK() to SYSCTL_LOCK()/
SYSCTL_UNLOCK() and related changes to make the lock names make more
sense.

Submitted by:	Jonathan Mini <mini@haikugeek.com>
2002-04-02 05:50:07 +00:00
imp
4a45f236cf Add some devices from OpenBSD/NetBSD:
o 3Com 3crwe62092a
o Addtron awp100
o No Wires Necessary WLAN 550 and 1148
o Proxim RANGELANDS 8340

and reorder linksys to be in proper sort order.

Obtained from: OpenBSD (mostly)
2002-04-02 05:49:09 +00:00
imp
6f0619b5a4 Regen for 1.30 pccarddevs 2002-04-02 05:47:08 +00:00
imp
ccea42acc9 Actually merge proxim rangelands and addtron awp-100 2002-04-02 05:46:10 +00:00
imp
acd0e06815 regen to 1.29 pccarddevs 2002-04-02 05:39:40 +00:00
imp
df2847c093 Merge from both NetBSD and OpenBSD's pcmciadevs:
NetBSD:
	1.163; martin; ELSA MicroLink mc all
	1.162; is; typo
	1.161; is; typo
	1.160; is; Add Lantech Fastnet/TX
OpenBSD:
	1.85; millert; proxim rangelan-ds
	1.84; provos; linksys wpc11
	1.83; mickey; now wires needed wlan
	1.82; mickey; socket low power wlan from netbsd [*]
	1.81; mickey; ericsson wlan
	1.80; fgsch; add openbsd tag back (not needed)
	1.79; fgsch; Netgear FA411
	1.78; mickey; simple spectrum25 from netbsd [*]
	1.77; mickey; emtac wavelan from netbsd [*]
	1.76; mickey; buffalo wavelans from netbsd [*]
	1.75; jakob; 3com wilress lan pccard
	1.74; mickey; linksys2 instant wireless
	1.73; mickey; oops (add closing quote)
	1.72; mickey; pcm100
[*] (already in freebsd)

Obtained from: NetBSD, OpenBSD
2002-04-02 05:39:07 +00:00
alfred
4a63b9d69c Use sx locks instead of flags+tsleep locks.
Submitted by: Jonathan Mini <mini@haikugeek.com>
2002-04-02 04:20:38 +00:00
alfred
cb408d85e7 Use sx locks rather than lockmgr locks for eventhandlers.
Submitted by: Jonathan Mini <mini@haikugeek.com>
2002-04-02 04:18:54 +00:00
imp
ab6bb4225e Make this compile again after the recent NetBSD merge 2002-04-02 03:39:33 +00:00
imp
fae0d10f4d Add if_wi_{pccard,pci}.c for pccard and pci bus front ends 2002-04-02 02:50:48 +00:00
imp
6503ac6382 First cut at breaking out the bus attachment from the bus independent
part of the driver.  Also, move the softc and some other stuff to
if_wivar.h from if_wireg.h to make future merging activities easier.
2002-04-02 02:38:35 +00:00
des
f6a3790f10 Mutex profiling code, conditional on the MUTEX_PROFILING option. Adds the
following sysctl variables:

  debug.mutex.prof.enable	    enable / disable profiling
  debug.mutex.prof.acquisitions	    number of mutex acquisitions recorded
  debug.mutex.prof.records	    number of acquisition points recorded
  debug.mutex.prof.maxrecords	    max number of acquisition points
  debug.mutex.prof.rejected	    number of rejections (due to full table)
  debug.mutex.prof.hashsize	    hash size
  debug.mutex.prof.collisions	    number of hash collisions
  debug.mutex.prof.stats	    profiling statistics

The code records four numbers for each acquisition point (identified by
source file name and line number): longest time held, total time held,
number of non-recursive acquisitions, average time held.  The measurements
are in clock cycles (as returned by get_cyclecount(9)); this may cause
measurements on some SMP systems to be unreliable.  This can probably be
worked around by replacing get_cyclecount(9) by some incarnation of
nanotime(9).

This work was derived from initial patches by eivind.
2002-04-02 00:01:49 +00:00
dillon
3ad295d416 Stage-2 commit of the critical*() code. This re-inlines cpu_critical_enter()
and cpu_critical_exit() and moves associated critical prototypes into their
own header file, <arch>/<arch>/critical.h, which is only included by the
three MI source files that need it.

Backout and re-apply improperly comitted syntactical cleanups made to files
that were still under active development.  Backout improperly comitted program
structure changes that moved localized declarations to the top of two
procedures.  Partially re-apply one of the program structure changes to
move 'mask' into an intermediate block rather then in three separate
sub-blocks to make the code more readable.  Re-integrate bug fixes that Jake
made to the sparc64 code.

Note: In general, developers should not gratuitously move declarations out
of sub-blocks.  They are where they are for reasons of structure, grouping,
readability, compiler-localizability, and to avoid developer-introduced bugs
similar to several found in recent years in the VFS and VM code.

Reviewed by:	jake
2002-04-01 23:51:23 +00:00
tmm
a683bcc922 Add support for booting from CD-ROM. Make it possible to enable UFS
support using make arguments.
2002-04-01 23:28:35 +00:00
tmm
7151c10d96 1.) Produce a boot1 disklabel template of the format disklabel(8) expects.
2.) Clean up and change over to using bsd.prog.mk

Submitted by:	jake (2)
2002-04-01 22:57:51 +00:00
joe
68a39ea77e MFNetBSD:
revision 1.140
    date: 2001/10/24 20:20:03;  author: augustss;  state: Exp;  lines: +9 -5
    More debug.
2002-04-01 22:03:37 +00:00
joe
eef2a1f1c7 MFNetBSD:
revision 1.138
    date: 2001/10/02 17:59:38;  author: pooka;  state: Exp;  lines: +6 -6
    move DIAGNOSTIC-printf up one block to make it reachable
    noted by Christophe Kalt in private email
2002-04-01 21:56:42 +00:00
jake
15dc222b82 Move the CTASSERT macro from MD code to systm.h alongside KASSERT so other
code can use it.  This takes a single constant argument and fails to compile
if it is 0 (false).  The main application of this is to make assertions about
structure sizes at compile time, in order to validate assumptions made in
other code.  Examples:

CTASSERT(sizeof(struct foo) == FOO_SIZEOF);
CTASSERT(sizeof(struct foo) == (1 << FOO_SHIFT));

Requested by:	jhb, phk
2002-04-01 21:55:00 +00:00
joe
6bb0c0b266 MFNetBSD:
revision 1.136
    date: 2001/07/11 14:11:00;  author: augustss;  state: Exp;  lines: +5 -5
    Rearrange register dump when the controller is dying.  Fixes PR 13430.
2002-04-01 21:52:45 +00:00
joe
002b2c357c MFNetBSD:
revision 1.135
    date: 2001/04/01 14:59:52;  author: augustss;  state: Exp;  lines: +2 -4
    Avoid a potential null pointer dereference.  From OpenBSD.
2002-04-01 21:43:53 +00:00
joe
a650ee5075 MFNetBSD:
revision 1.134
    date: 2001/03/25 22:52:21;  author: augustss;  state: Exp;  lines: +4 -1
    Try to make resume work on more machines.
2002-04-01 21:42:43 +00:00
joe
0ddcf62ed5 MFNetBSD: ohci.c (1.99), uhci.c (1.133), usb.c (1.49), usb_port.h
(1.39), usbdi.c (1.79), usbdi.h (1.47), usbdivar.h (1.62)

    date: 2001/01/21 02:39:52;  author: augustss;
    Add code to use soft interrupt to handle USB interrupt processing.
    Don't enable the code since it doesn't work with the kludgy Ethernet
    drivers.
2002-04-01 21:34:01 +00:00
jhb
dc2e474f79 Change the suser() API to take advantage of td_ucred as well as do a
general cleanup of the API.  The entire API now consists of two functions
similar to the pre-KSE API.  The suser() function takes a thread pointer
as its only argument.  The td_ucred member of this thread must be valid
so the only valid thread pointers are curthread and a few kernel threads
such as thread0.  The suser_cred() function takes a pointer to a struct
ucred as its first argument and an integer flag as its second argument.
The flag is currently only used for the PRISON_ROOT flag.

Discussed on:	smp@
2002-04-01 21:31:13 +00:00
joe
34c7d606c9 MFNetBSD:
revision 1.132
    date: 2001/01/20 23:36:02;  author: augustss;  state: Exp;  lines: +6 -7
    Change some splusb() to splhardusb().
2002-04-01 21:18:50 +00:00
joe
c043732a32 MFNetBSD: Update many URLs. 2002-04-01 21:13:22 +00:00
joe
ee8382fbaf MFNetBSD:
revision 1.40
    date: 2000/10/10 12:37:01;  author: augustss;  state: Exp;  lines: +4 -3
    Don't free unallocated pointer in detach (can happen if detach happens
    before attach has finished).
2002-04-01 20:32:50 +00:00
joe
b55c1de599 MFNetBSD:
revision 1.60
    date: 2000/12/28 10:40:36;  author: augustss;  state: Exp;  lines: +2 -1
    #define for USB_2_0
2002-04-01 20:26:38 +00:00
joe
06c2b31c46 MFNetBSD:
revision 1.58
    date: 2000/06/24 04:12:53;  author: thorpej;  state: Exp;  lines: +5 -2
    Kill SPLUSBCHECK -- it's not portable, and quite annoying on some
    platforms which otherwise function just fine.
2002-04-01 20:23:50 +00:00
joe
1659cf4006 MFNetBSD:
revision 1.130
    date: 2000/12/18 15:55:30;  author: tsutsui;  state: Exp;  lines: +2 -2
    Add missed le32toh() in uhci_device_isoc_abort().
2002-04-01 20:18:21 +00:00
phk
c4cfde4a3b Really sweep the broom on this one.
It's amazing how much cruft accumulate over the years...
2002-04-01 20:18:02 +00:00
joe
c01681e11a MFNetBSD:
revision 1.129
    date: 2000/12/16 16:09:24;  author: augustss;  state: Exp;  lines: +4 -3
    Don't repeat 'host controller halted' message.  From OpenBSD.
2002-04-01 20:14:23 +00:00
jhb
81ff87afc2 Whitespace only change: use ANSI function declarations instead of K&R. 2002-04-01 20:13:31 +00:00
phk
07b4c10b28 Extend a hack to also hack around PC98's definition of __i386__ 2002-04-01 20:13:03 +00:00
phk
c80e0bc56a Remove various controller/disk type hacks for SMD, ST506 and ancient
SCSI stuff which have far outlived its sell by date.
2002-04-01 20:06:14 +00:00
joe
628953224b MFNetBSD:
revision 1.127
    date: 2000/11/22 05:50:59;  author: soren;  state: Exp;  lines: +5 -5
    In uhci_intr(), only warn about power state confusion if the
    interrupt was actually for us.
2002-04-01 20:04:00 +00:00
joe
610d83202b MFNetBSD: ohci.c rev 1.94, uhci.c rev 1.126
date: 2000/11/10 14:11:49;  author: augustss;
    Update frlengths after a isoc transfer.
    Suggested by Yuri <yuri@tsoft.com>
2002-04-01 20:01:41 +00:00
jhb
e6e7f9944f Wrap the arguments to CTR6() in parentheses so that the u_long casts work
properly for arguments that are expressions.
2002-04-01 19:44:13 +00:00
joe
a489313841 MFNetBSD: ohci.c rev 1.92, uhci.c rev 1.122 (part)
date: 2000/08/08 19:51:46;  author: tv;  state: Exp;  lines: +24 -13
    %b -> bitmask_snprintf()

    Because this code is shared, add a macro for bitmask_snprintf()
    that should expand to the equivalent snprintf() on non-NetBSD
    systems. This is only used in ?HCI_DEBUG cases anyway.
2002-04-01 19:42:51 +00:00
joe
a1b45b6baa MFNetBSD:
revision 1.86
    date: 2001/05/16 04:50:11;  author: lukem;  state: Exp;  lines: +1 -2
    delint: remove unnecessary assignment to same objection (hidden
    in #define)
2002-04-01 19:26:36 +00:00
jhb
ac0efb3769 Remove references to KTR_EXTEND.
Pointy-hat to:	jake
2002-04-01 19:25:22 +00:00
joe
e60c370b22 constify 2002-04-01 19:22:04 +00:00
joe
a8d3735e78 Use ANSI prototypes and declarations.
Update $NetBSD$ idents to better reflect reality.
2002-04-01 19:01:09 +00:00
imp
97a1f83469 More diff reduction patches 2002-04-01 18:52:53 +00:00
joe
810e37cb5c Update $NetBSD$ idents to better reflect reality. 2002-04-01 18:31:16 +00:00
imp
702c781e57 Merge a little from NetBSD. This changes reduces the diffs between the
two a little, but more commits like this will follow.
2002-04-01 18:28:20 +00:00
imp
b0cf2465fe Fix type from last commit 2002-04-01 18:26:32 +00:00
joe
f5fe87fccd Merge from NetBSD:
revision 1.81
    date: 2000/10/24 15:01:26;  author: augustss;  lines: +36 -10
    Add a hack to try and figure out if the TI UTUSB41 hub is bus
    powered despite claiming to be self powered (it's important to
    know so that the power budget can be met).
2002-04-01 18:22:31 +00:00
imp
fa6285a0b1 Add more ID's from the PRISM family. from wi.c 1.61 and wireg.h 1.26 by
ichiro@netbsd.org

Obtained from: NetBSD
2002-04-01 18:07:05 +00:00
joe
ec9b97db7d Merge from NetBSD: revision 1.72
Part of this got merged in a previous commit, but not all.

    revision 1.72
    date: 2000/04/14 14:13:56;  author: augustss;  state: Exp;  lines: +34 -27
    Make attach of ugen work as it should so product&vendor locators
    can be used.
2002-04-01 18:03:00 +00:00
joe
5049ab3bd5 Update $NetBSD$ idents to reflect reality. 2002-04-01 17:54:07 +00:00
jhb
7205e92665 Fix style bug in previous commit. 2002-04-01 17:53:42 +00:00
joe
07129623b0 Merge from NetBSD: Removed unnecessary variable declaration. 2002-04-01 17:49:12 +00:00
joe
f60d3cd982 Synchronise with the NetBSD version of this header file for formatting. 2002-04-01 17:43:28 +00:00
joe
e0ee14f187 Merge from NetBSD: usbdi.c rev 1.77, usbdi.h rev 1.44
date: 2000/09/23 21:02:04;  author: augustss;
    Add a way to do control transfers on other pipes than the default pipe.
2002-04-01 17:30:24 +00:00
joe
6239920c04 Use ANSI prototypes and declarations. 2002-04-01 17:24:49 +00:00
joe
deb8b2c1cc Merge from NetBSD: Make it compile with USB_DEBUG. 2002-04-01 17:05:55 +00:00
joe
8a0194ddf9 Merge from NetBSD:
usb.c rev 1.43, usb_port.h rev 1.26, usb_subr.c rev 1.71

Some OpenBSD portability fixes.
2002-04-01 16:53:29 +00:00
joe
55a0ca2bd0 Merge from NetBSD:
usb.c 1.40:
    revision 1.40
    date: 2000/03/14 23:13:12;  author: augustss;  state: Exp;  lines: +4 -1
    Make sure the USB event thread discovers all devices first time
    it call usb_discover().  It should now be possible to have the
    root NFS mounted over a USB Ethernet Adapter.
2002-04-01 16:29:24 +00:00
ume
06385fadbc Make `route add -inet6 default ::1 -ifp gif0' work actually.
The change between 1.13 and 1.14 is specific to AF_INET.

MFC after:	1 week
2002-04-01 16:17:13 +00:00
joe
7f6a824709 Merge from NetBSD:
usb_port.h (1.33), usbdi_util.c (1.32), usbdi_util.h (1.22):

    ----------------------------
    date: 2000/06/01 14:37:51;  author: augustss;
    Improve some portability items.
    ----------------------------
2002-04-01 16:09:43 +00:00
joe
7aa5ae8371 Tidy up the formatting so that it's in the style of NetBSD's copy of
this file.
2002-04-01 15:37:00 +00:00
ume
4d5783c847 In nd6_lookup(), check if rt_llinfo is non-NULL to avoid returning an
entry that has the LLINFO flag but is not a neighbor cache entry.

Obtained from:	KAME
MFC after:	1 week
2002-04-01 15:15:05 +00:00
joe
215142e442 Use ANSI prototypes and declarations. 2002-04-01 15:01:29 +00:00
joe
5f32cce41e Merge from NetBSD:
----------------------------
    revision 1.26
    date: 1999/11/28 22:49:53;  author: augustss;  state: Exp;  lines: +12 -8
    More USB_DEBUG and DIAGNOSTIC output.
    ----------------------------
2002-04-01 13:50:42 +00:00
joe
6cfa1c12f7 Merge from NetBSD:
----------------------------
    revision 1.73
    date: 2000/05/31 16:14:42;  author: augustss;  state: Exp;  lines: +19 -6
    Be more careful when setting the alternate interface so we don't
    end up with nothing set at all if it fails.
    ----------------------------
2002-04-01 13:43:02 +00:00
joe
6b00e274ed Merge from NetBSD:
----------------------------
	revision 1.117
	date: 2000/05/30 09:26:06;  author: augustss;  lines: +7 -1
	As a safety, check that the controller is not suspended when we get
	an interrupt.
	----------------------------
2002-04-01 13:36:09 +00:00
jhay
01f20a0156 Add an entry for "PCCOM dual port RS232/422/485".
Submitted by:	Daniel O'Connor <doconnor@gsoft.com.au>
MFC after:	1 week
2002-04-01 13:33:43 +00:00
joe
44891868e6 Merge from NetBSD:
----------------------------
	revision 1.90
	date: 2000/05/08 18:28:46;  author: thorpej;  lines: +8 -3
	Quiet some uninitialized variable warnings that do in fact
	look legitimate.
	----------------------------
2002-04-01 13:28:49 +00:00
joe
72fef638b5 Add a clarifying comment (from NetBSD).
Update the $NetBSD$ ident to reflect reality.
2002-04-01 13:26:27 +00:00
joe
cf854fb3af Merge from NetBSD:
ohci.c (1.85), ohcireg.h (1.17):

	----------------------------
	date: 2000/04/01 09:27:35;  author: augustss;
	Add a delay before reading the number of ports from the controller to
	avoid getting 0 from it.
	----------------------------
2002-04-01 13:21:43 +00:00
joe
e7a842df9f Merge from NetBSD:
ohci.c (1.83), ohcireg.h (1.16), ohcivar.h (1.21)

	===================================================================
	date: 2000/03/29 01:46:26;  author: augustss;
	A first stab at support for isochronous transfers.
	===================================================================
2002-04-01 13:18:11 +00:00
mike
8012d3553d Fix some whitespace style bugs. 2002-04-01 09:45:05 +00:00
mike
beecc37c73 o Implement <sys/_types.h>, a new header for storing types that are
MI, not required to be a fixed size, and used in multiple headers.
  This will grow in time, as more things move here from <sys/types.h>
  and <machine/ansi.h>.
o Add missing type definitions (uint16_t and uint32_t) to
  <arpa/inet.h> and <netinet/in.h>.
o Reduce pollution in <sys/types.h> by using `#if _FOO_T_DECLARED'
  widgets to avoid including <sys/stdint.h>.
o Add some missing type definitions to <unistd.h> and note the ones
  that still need to be added.
o Make use of <sys/_types.h> primitives in <grp.h> and <sys/types.h>.

Reviewed by:	bde
2002-04-01 08:12:25 +00:00
mike
2938faca93 Implement a fine-grain control system which allows header developers
to control the exposure of macros and prototypes depending upon the
POSIX, X/Open, or ISO C version an application has requested.

Submitted by:	wollman
Reviewed by:	bde, imp
2002-04-01 07:58:26 +00:00
alfred
52966059c3 Remove erronious destroy_dev. Not sure what the author's intent was here
but this makes the driver not panic my -current box.

Approved by: scottl
2002-04-01 06:09:17 +00:00
ken
5d1a9608c2 Fix 3 of the four problems with my last indentation fix. ("fixing" the
fourth would be a divergence from the prevailing style.)

Thanks to bde for catching this.

Pointed out by:	bde
2002-04-01 05:41:33 +00:00
jake
f9f52274db ktr changes to improve performance and make writing a userland utility to
dump the trace buffer feasible.
- Remove KTR_EXTEND.  This changes the format of the trace entries when
  activated, making writing a userland tool which is not tied to a specific
  kernel configuration difficult.
- Use get_cyclecount() for timestamps.  nanotime() is much too heavy weight
  and requires recursion protection due to ktr traces occuring as a result
  of ktr traces.  KTR_VERBOSE may still require recursion protection, which
  is now conditional on it.
- Allow KTR_CPU to be overridden by MD code.  This is so that it is possible
  to trace early in startup before pcpu and/or curthread are setup.
- Add a version number for the ktr interface.  A userland tool can check this
  to detect mismatches.
- Use an array for the parameters to make decoding in userland easier.
- Add file and line recording to the non-extended traces now that the extended
  version is no more.

These changes will break gdb macros to decode the extended version of the
trace buffer which are floating around.  Users of these macros should either
use the show ktr command in ddb, or use the userland utility which can be run
on a core dump.

Approved by:	jhb
Tested on:	i386, sparc64
2002-04-01 05:35:26 +00:00
ken
7bf585a15e Fix an indentation problem. 2002-04-01 03:59:47 +00:00
phk
ef82a51634 Here follows the new kernel dumping infrastructure.
Caveats:

The new savecore program is not complete in the sense that it emulates
enough of the old savecores features to do the job, but implements none
of the options yet.

I would appreciate if a userland hacker could help me out getting savecore
to do what we want it to do from a users point of view, compression,
email-notification, space reservation etc etc.  (send me email if
you are interested).

Currently, savecore will scan all devices marked as "swap" or "dump" in
/etc/fstab _or_ any devices specified on the command-line.

All architectures but i386 lack an implementation of dumpsys(), but
looking at the i386 version it should be trivial for anybody familiar
with the platform(s) to provide this function.

Documentation is quite sparse at this time, more to come.

Details:

ATA and SCSI drivers should work as the dump formatting code has been
removed.  The IDA, TWE and AAC have not yet been converted.

Dumpon now opens the device and uses ioctl(DIOCGKERNELDUMP) to set
the device as dumpdev.  To implement the "off" argument, /dev/null
is used as the device.

Savecore will fail if handed any options since they are not (yet)
implemented.  All devices marked "dump" or "swap" in /etc/fstab
will be scanned and dumps found will be saved to diskfiles
named from the MD5 hash of the header record.  The header record
is dumped in readable format in the .info file.  The kernel
is not saved.  Only complete dumps will be saved.

All maintainer rights for this code are disclaimed: feel free to
improve and extend.

Sponsored by:   DARPA, NAI Labs
2002-03-31 22:37:00 +00:00
phk
b19c49c220 The AAC, TWE and IDA diskdrivers cannot dump until I and msmith
have ripped all the i386 specific formatting code from their
dump routines.  Due to the potential for trashing disks, I did
not want to do this "blind".
2002-03-31 22:29:52 +00:00
phk
8c12e60532 Add the i386dump.c dumpsys() source file. 2002-03-31 22:28:28 +00:00
phk
54392107ee DA (scsi) and AD (ata) diskdrivers:
Make the dump routine do just writing of data.
2002-03-31 22:28:03 +00:00
phk
6d90a200e5 Add a new #include which describes the common header format for kerneldumps.
This design is my best effort and it is quite likely that people more used
to kernel dumps may want to change this subsequently so two levels of
version numbers are provided: one for the common header and one per
architecture.

Sponsored by:	DARPA & NAI Labs.
2002-03-31 21:48:08 +00:00
joe
e7edfcf2b8 Regen. 2002-03-31 21:38:38 +00:00
joe
7cf0682fdf Add more usb adapters, from NetBSD. 2002-03-31 21:38:05 +00:00
phk
ac4142e564 Implement the two "GEOM" ioctls DIOCGSECTORSIZE and DIOCGMEDIASIZE for
the non-GEOM code as well.  This simplifies the the kernel-dumping
and disk-management tools as less compatibility cruft will be needed.

Sponsored by:	DARPA and NAI Labs.
2002-03-31 21:17:12 +00:00
marcel
2830f94478 Only install the help file if we can find it. Use ${BASE}.help
in both the condition and for the install. We expect to find
the help file in ${.OBJDIR}.
2002-03-31 20:48:13 +00:00
alc
6985f3b63c Keep the reference to the file acquired in _aio_aqueue() until the operation
completes.  The reference is released in aio_free_entry().

Submitted by:	tegge
2002-03-31 20:17:56 +00:00
sos
d5be9373bd ATA100 is allowed on the HPT chips rev >= 3 2002-03-31 13:33:55 +00:00
alfred
abeff55bde Close some holes with p->p_args by NULL'ing out the p->p_args pointer
while holding the proc lock, and by holding the pargs structure when
accessing it from outside of the owner.

Submitted by: Jonathan Mini <mini@haikugeek.com>
2002-03-31 10:33:12 +00:00
bde
df30d6374f Support more than 32 sio unit numbers. The maximum unit number is now
(65536 * 32 - 1), but MAKEDEV only supports up to (32 * 32 -1).  Device
names use the unit number in base 32 for all "digits".

This required fixing an old bug in MAKEDEV:ttyminor().  Its arg was the
global $unit instead of $1.

Reminded by:	Valentin K. Ponomarenko <valka@krog.ukrtel.net>
MFC-after:	1 week
2002-03-31 09:15:43 +00:00
kato
cf12629bdc MFi386: revision 1.508. 2002-03-31 08:00:35 +00:00
phk
64158fc8ed A couple of bits survived Dans nukage of CV_DEBUG in favour of INVARIANTS,
take them out with tacticals.
2002-03-31 07:23:31 +00:00
phk
87273d930a Centralize the "bootdev" and "dumpdev" variables. They are still pretty
bogus all things considered, but at least now they don't camouflage as
being MD variables.
2002-03-31 07:15:28 +00:00
bde
aa2c17836e Hacks for measuring interrupt latency. Interrupt latency can be
measured accurately for periodic interrupts provided the interrupts
don't need to be serviced very quickly to keep their period almost
constant.  sio output interrupts have this property (interrupt service
can be delayed for up to 1 character time without the period changing).

This is non-optional and undocumented so that it can be added and
removed easily.  It has no significant effect unless it is enabled by
hacking on a variable using a debugger.  Hardclock and statclock interrupts
would work even better for this, at least on i386's, provided their
interrupt handlers are fast (as they are in -current but not in -stable
or in my version of -current).
2002-03-31 06:49:38 +00:00
alc
3778bbd36e Implement i386's (o)sigreturn() like the alpha's: Use copyin() to read
the osigcontext or ucontext_t rather than useracc() followed by direct user-
space memory accesses.  This reduces (o)sigreturn()'s execution time by 5-
50%.

Submitted by:	bde
2002-03-31 01:13:21 +00:00
alc
bd314bbdd7 Add a local proc *p in exec_new_vmspace() to avoid repeated dereferencing
to obtain it.
2002-03-31 00:05:30 +00:00
marcel
688cf86e24 Pass the address of the bootinfo block to the kernel in register
r8. Keep it at the hardwired address for now. Bump the version.
2002-03-30 23:52:34 +00:00
marcel
3d34c19920 Transition to a model where the loader passes the address of the
bootinfo block in register r8. In locore.s we save the address
in the global variable 'pa_bootinfo'. In machdep.c we compare
this value against the hardwired address, but don't depend on its
validity yet (ie: we still expect the bootinfo block to be at the
hardwired address). After a small amount of time, we'll flip the
switch and depend on the loader to pass us the address. From that
moment on the loader is free to put it anywhere it likes, provided
the machine itself likes it as well.

Add some verbosity to aid in the transition. We emit a message if
the loader didn't pass the address and we also emit a message if
there's no bootinfo block at the hardwired address.

While in locore.s, reduce the number of redundant serialization
instructions. A srlz.i is a proper superset of a srlz.d and thus
is a valid replacement. Also slightly reorder the movl instructions
to improve bundle density.
2002-03-30 23:25:22 +00:00
marcel
83aa1632bb Pass the physical address of the bootinfo block to the kernel in
register r8. We continue to write the bootinfo block at the same
hardwired address, because the kernel still expects it there.
It is expected that future kernels use register r8 to get to the
bootinfo block and don't depend on the hardwired address anymore.

Bump the loader version once again due to the interface change.
2002-03-30 23:00:05 +00:00
alc
84ad095a1c Correct a comment: sendsig() calls the MI vm_map_growstack() but
the corresponding comment refers to a MD grow_stack() that doesn't exist.
2002-03-30 20:58:08 +00:00
alc
34c6c68a2d Use the MI vm_map_growstack() instead of the MD grow_stack() in trap(). Remove
the MD grow_stack().
2002-03-30 20:44:31 +00:00
phk
2d4baab912 Move the "dumping" variable from systm.h to conf.h. 2002-03-30 19:58:31 +00:00
mdodd
ffd5de2849 Don't nowerror for sys/dev/pdq/pdq.c 2002-03-30 17:41:23 +00:00
sos
23978f436e Remove debug output in last commit. 2002-03-30 16:51:47 +00:00
sos
65dd7ee2d6 Add support for getting status (fan, temp, 5V and 12V levels) from
Promise Superswap enclosures.

Sponsored by: Advanis
2002-03-30 16:36:41 +00:00
bde
2f7ae9b739 Fixed handling of short reads in readdisklabel() and writedisklabel().
These functions use DEV_STRATEGY() which can easily return a short
count (with no error) for reads near EOF.  EOF happens for "disks" too
small to contain a label sector (mainly for empty slices).  The functions
didn't understand this at all, and looked for labels in the garbage
in the buffer beyond what DEV_STRATEGY() returned.  The recent UMA
changes combined with my local changes and configuration resulted in
the garbage often containing a valid but garbage label left over from
a previous call.

Bugs in EOF handling in -current limited the problem to "disks" with
size precisely LABELSECTOR sectors.  LABELSECTOR happens to be a very
unusual "disk" size since it is only 0 for non-i386 arches that don't
usually have disks with DOS MBRs.
2002-03-30 16:02:43 +00:00
bde
a9b7c63b29 In ffs_mountffs(), set mnt_iosize_max to si_iosize_max unconditionally
provided the latter is nonzero.  At this point, the former is a fairly
arbitrary default value (DFTPHYS), so changing it to any reasonable
value specified by the device driver is safe.  Using the maximum of
these limits broke ffs clustered i/o for devices whose si_iosize_max
is < DFLTPHYS.  Using the minimum would break device drivers' ability
to increase the active limit from DFTLPHYS up to MAXPHYS.

Copied the code for this and the associated (unnecessary?) fixup of
mp_iosize_max to all other filesystems that use clustering (ext2fs and
msdosfs).  It was completely missing.

PR:		36309
MFC-after:	1 week
2002-03-30 15:12:57 +00:00
nyan
cbfb12da8c MFi386: revision 1.55 2002-03-30 11:18:30 +00:00
sos
0fb3c06959 Use the raid lun not the magic when writing Promise config. 2002-03-30 11:15:46 +00:00
nyan
3ef5867e0b MFi386: revision 1.506. 2002-03-30 11:14:52 +00:00
marcel
dd7885b88d Add a quick and dirty way to determine where we're loaded from. We
only care if it's network or not at this time. If we're loaded from
the network, we set currdev (=loaddev) so that the kernel is loaded
from the network as well. In all other cases we initialize to disk.
This makes netbooting more convenient and can easily be enhanced to
do more elaborate checking.
2002-03-30 07:32:08 +00:00
marcel
64a996484d The EFI loader has been improved a lot since it was first added.
Most significantly (from an interfacing point of view) is the
support for the FPSWA pointer passing. Even though that was added
4 months ago, it's probably not a bad idea to bump the version
number to reflect this.
2002-03-30 04:54:54 +00:00
marcel
bafbd25360 Fix the initialization of the protocol:
o  Query the state field of the protocol mode to determine whether
   we need to start and/or initialize the protocol. When we're
   loaded across the network, the protocol has already been started
   and is already initialized. When no networking has happened yet,
   we have to start and initialize the protocol ourselves.
o  After initialization, we have to set the receive filters. Not
   doing this results in a deaf interface. We set the unicast and
   broadcast filters. Multicast may not be supported. This specific
   change fixes the problem we had that we could not netboot if
   the loader was started from the EFI shell.
o  To help future debugging, add a function that dumps the current
   mode of the interface. It's conditional on EFINET_DEBUG.
o  To help in runtime problems, emit a diagnostic message when we
   could not initialize the protocol properly.
2002-03-30 04:50:52 +00:00
dan
ade94cf622 Nuke CV_DEBUG in favour of INVARIANTS.
Approved by: jhb
2002-03-30 03:52:52 +00:00
marcel
08a102c3c4 Don't blindly dereference f->f_devdata as if it's always a pointer to
an efi_devdesc structure. When we're netbooting, f->f_devdata holds
the address of the network socket variable. Dereferencing this caused
some very unpredictable behaviour, including proper functioning.
So, as a sanity check, we first make sure f->f_dev points to our
own devsw. If not, the open will fail before we use f->f_devdata.

This solves the netboot hangs I invariably got whenever I used the
latest toolchain to compile the EFI loader.
2002-03-30 01:36:03 +00:00
marcel
fa19ce8844 o Make efinet_put a blocking call by waiting for the protocol
layer to signal transmission of the packet. This resolves the
   problem I'm seeing that an immediate call to net->Receive
   after calling net->Transmit returns EFI_DEVICE_ERROR. This
   condition seems to be sufficiently persistent that BOOTP and
   RARP fail.
o  While here, unify all functions to have 'nif' defined. Some
   have it as arguments. The others now have them as locals. We
   now always get the protocol interface by using the 'nif' var.

The current status of netbooting is that even though we now reliably
have BOOTP working (again), opening a file (ie loading a kernel)
across the network causes the loader to hang. I'm working on that now.
2002-03-29 23:10:15 +00:00