6129 Commits

Author SHA1 Message Date
luoqi
a60ffa3c1c Unbreak VESA on SMP. 1999-05-12 21:39:07 +00:00
luoqi
e76b0bad24 VM86_FRAMESIZE is now the size of vm86 frame, not the number of 4-byte words.
Requested by:	Bruce
1999-05-12 21:30:51 +00:00
peter
c49cd856cf Fix dev_t/minor problems 1999-05-12 19:01:30 +00:00
phk
b2ad81f0dc Fix dumpon. It passes a udev_t from userland to kernel, that needs a
udev2dev() before we use it.

It really should pass a name like swapon does.
1999-05-12 07:40:50 +00:00
bde
d3fa28edce Updated a comment (Crtat is no longer bogusly shared with syscons).
Don't declare a nonexistent variable.
1999-05-12 04:59:27 +00:00
phk
7e26ca1d1a Divorce "dev_t" from the "major|minor" bitmap, which is now called
udev_t in the kernel but still called dev_t in userland.

Provide functions to manipulate both types:
        major()         umajor()
        minor()         uminor()
        makedev()       umakedev()
        dev2udev()      udev2dev()

For now they're functions, they will become in-line functions
after one of the next two steps in this process.

Return major/minor/makedev to macro-hood for userland.

Register a name in cdevsw[] for the "filedescriptor" driver.

In the kernel the udev_t appears in places where we have the
major/minor number combination, (ie: a potential device: we
may not have the driver nor the device), like in inodes, vattr,
cdevsw registration and so on, whereas the dev_t appears where
we carry around a reference to a actual device.

In the future the cdevsw and the aliased-from vnode will be hung
directly from the dev_t, along with up to two softc pointers for
the device driver and a few houskeeping bits.  This will essentially
replace the current "alias" check code (same buck, bigger bang).

A little stunt has been provided to try to catch places where the
wrong type is being used (dev_t vs udev_t), if you see something
not working, #undef DEVT_FASCIST in kern/kern_conf.c and see if
it makes a difference.  If it does, please try to track it down
(many hands make light work) or at least try to reproduce it
as simply as possible, and describe how to do that.

Without DEVT_FASCIST I belive this patch is a no-op.

Stylistic/posixoid comments about the userland view of the <sys/*.h>
files welcome now, from userland they now contain the end result.

Next planned step: make all dev_t's refer to the same devsw[] which
means convert BLK's to CHR's at the perimeter of the vnodes and
other places where they enter the game (bootdev, mknod, sysctl).
1999-05-11 19:55:07 +00:00
luoqi
05e390eef7 Yet another place I missed when increasing trapframe size, which causes problem
to SIGFPE handling.

Reviewed by:	Bruce Evans	<bde@zeta.org.au>
1999-05-11 16:29:21 +00:00
luoqi
2aba1f764a Do not hardcode size of struct vm86frame.
Submitted by:	Jonathan Lemon <jlemon@americantv.com>
1999-05-11 16:04:40 +00:00
luoqi
a1f40ee3e7 Trap frame size has increased by 4.
Submitted by:		Kazutaka YOKOTA <yokota@freebsd.org>
1999-05-11 15:57:42 +00:00
sos
9a5315b2f6 Make the driver work on HP8100 and the newer Philips that does not
support the rezero command.
1999-05-11 10:39:27 +00:00
jb
de4a37716d Change the INIT_PATH option example to use colons instead of semi-colons
(per rev 1.122 of sys/kern/init_main.c).
1999-05-11 10:10:39 +00:00
bde
cf3df57f13 Fixed reset handling for motor off resets. I first fixed this together
with other reset handling in rev.1.83 but broke it in rev.1.120.  The
breakage didn't seem to cause any problems even on the system which had
problems ("extra" interrupts and botched handling thereof) before rev.1.83.
It only affects multi-floppy systems anyway.
1999-05-11 04:58:30 +00:00
alc
4c92d6c2c9 The Intel Pentium Pro's performance counters are 40 bits wide. The Intel
manuals specifically say that reading the counters using the rdmsr
instruction returns a 64 bit value of which the higher 24 bits are
undefined. The code that reads the counters should then clear the
high 24 bits.

PR:		 i386/10632
1999-05-11 01:54:52 +00:00
bde
d2071f7fb8 Fixed checking for maddr/msize conflicts. It was complete nonsense,
but was fairly harmless because not many devices have statically
configured msizes (none should have, but old-bus is missing post-probe
checks for maddr/msize conflicts, so sizes had to be statically
configured for maddr/msize conflict checking to actually work).

PR:		11146 (side issue)
1999-05-10 23:19:58 +00:00
phk
c54537a0af correct params for sndmmap(). Don't bogo-initialize fields we don't
understand.
1999-05-10 18:13:30 +00:00
dfr
e65cf80c48 Add missing suspend/resume methods. 1999-05-10 17:56:23 +00:00
peter
8b9aff36cb Move the mfs_getimage() prototype to mfs_extern.h duplicating it
everywhere.
1999-05-10 17:12:45 +00:00
bde
f36324ceec [Forgot to commit this in the batch a few days ago.]
Fixed profiling of elf kernels.  Made high resolution profiling compile
for elf kernels (it is broken for all kernels due to lack of egcs support).

Renaming of many assembler labels is avoided by declaring by declaring
the labels that need to be visible to gprof as having type "function"
and depending on the elf version of gprof being zealous about discarding
the others.  A few type declarations are still missing, mainly for SMP.

PR:		9413
Submitted by:	Assar Westerlund <assar@sics.se> (initial parts)
1999-05-10 10:51:25 +00:00
peter
b7c07a9146 Clean out some unused leftovers from before the split from the old isa.c. 1999-05-09 23:56:00 +00:00
peter
a3b1d73c6f Un-duplicate DO_SETBITS() (it was identical for both SMP and !SMP).. 1999-05-09 23:40:29 +00:00
peter
0495271733 For what it's worth, idelayed is declared as a volatile in the headers,
and even though it's not used in this file make it a volatile here too.
1999-05-09 23:32:29 +00:00
peter
593dd5803d loadandclear() uses an atomic instruction (even on SMP, where it's an
implicitly LOCK'ed instruction), so there shouldn't be any harm in making
it volatile pointer compatable for one of the users of it.  It seems to
generate the same code regardless.
1999-05-09 23:30:01 +00:00
peter
1b1bfd57f3 #ifdef BRIDGE around a goto label used by the bridge code to silcence a
warning.
1999-05-09 23:24:47 +00:00
peter
185b976c2d Move KERNEL?=kernel to top of the file where it's more obvious and add
a pointer to 'makeoptions' and /etc/make.conf.
Catch a few stray "kernel" hardcoded references.
Move the kernel.debug and related kernel build rules together.
1999-05-09 22:42:17 +00:00
peter
6130341758 Put an example of 'makeoptions KERNEL=foo' to replace the old
'config foo' functionality.
1999-05-09 22:26:10 +00:00
phk
c1234a50af don't confuse units and devices. 1999-05-09 20:29:04 +00:00
n_hibma
96c746be96 Reserve 124 for USB Communications Class Drivers 1999-05-09 19:38:19 +00:00
peter
78e46d3bff s/main/mi_startup/ for the kernel entry point so that egcs doesn't get
upset about it (and generate things like __main() calls that are reserved
for main()).  Renaming was phk's suggestion, but I'd already thought about
it too.  (phk liked my suggested name tada() but I decided against it :-)

Reviewed by:	phk
1999-05-09 19:01:49 +00:00
peter
1913ab4429 Move a couple of bits of (now) static content from config(8) (ie: %LOAD)
directly into the Makefile.  Remove references to swapkernel.c, it's
not generated by config(8) now.  (The previous config commits had
generated it, but they had an unused 'char *' in them).
1999-05-09 18:57:02 +00:00
peter
41b420910c Simplify the COMPAT_PCI_DRIVER/DATA_SET hack. We can add:
#define COMPAT_PCI_DRIVER(name,data) DATA_SET(pcidevice_set,data)
.. to 2.2.x and 3.x if people think it's worth it.  Driver writers can do
this if it's not defined.  (The reason for this is that I'm trying to
progressively eliminate use of linker_sets where it hurts modularity and
runtime load capability, and these DATA_SET's keep getting in the way.)
1999-05-09 17:07:30 +00:00
phk
3e9a4fabc3 Oops. If ROOTDEVNAME isn't defined, have -r call -a. 1999-05-09 16:56:09 +00:00
phk
1ce3de9409 no longer used. 1999-05-09 16:46:38 +00:00
phk
f3f6ab89ed Major lobotomy of config(8). The
config kernel mumble mumble

line has been obsoleted and removed and with it went all knowledge of
devices on the part of config.

You can still configure a root device (which is used if you give
the "-r" flag) but now with an option:

        options         ROOTDEVNAME=\"da0s2e\"

The string is parsed by the same code as at the "boot -a" prompt.

At the same time, make the "boot -a" prompt both more able and more
informative.

ALPHA/PC98 people:  You will have to adapt a few simple changes
(defining rootdev and dumpdev somewhere else) before config works
for you again, sorry, but it's all in the name of progress.
1999-05-09 16:46:01 +00:00
peter
5350e97b5a Fix a couple of warnings and some bitrot in comments. 1999-05-09 16:04:14 +00:00
peter
586a0280e6 Always use the module system, rather than in an #ifdef. 1999-05-09 15:57:52 +00:00
peter
5182d28347 Quiet a warning, put a #if 0 around some (I believe) unused static structs. 1999-05-09 13:21:06 +00:00
peter
cecd2635d9 Move opt_sio.h options to conf/options and activate in isa/sio.c 1999-05-09 13:10:49 +00:00
phk
e05bc3b49a Unconfuse DEV_MODULE() and DEV_DRIVER_MODULE() about the difference between
a major number for a dev_t.
1999-05-09 13:00:50 +00:00
phk
e8f4fc4a1d add some amount of sanity to the way the gdb stuff finds its device.
I'm not too happy about the result either, but at least it has less
chance of backfiring.

This particular feature could be called "a mess" without offending
anybody.
1999-05-09 10:51:13 +00:00
phk
83bed983cb Yet a major/dev_t confusion
Spotted by Bruce.
1999-05-09 10:42:39 +00:00
phk
aa8b804336 Yet another place which knew too much. Still not sure how much
good this does in the end.
1999-05-09 10:25:30 +00:00
phk
5311a954e6 fix some DRIVER_TYPE / INTR_TYPE confusions. 1999-05-09 09:56:52 +00:00
phk
3323f4372e Duh, bdevsw() takes dev_t arg. 1999-05-09 07:56:36 +00:00
yokota
143736b6b7 Reserve a major number for the frame buffer device. 1999-05-09 05:02:15 +00:00
yokota
58c19147f4 Make apm_probe() properly return an error code when APM BIOS calls
failed, so that the apm driver won't be attached.
1999-05-09 04:58:13 +00:00
dfr
e4989c23fe Move the declaration of the interrupt type from the driver structure
to the BUS_SETUP_INTR call.
1999-05-08 21:59:43 +00:00
peter
deb89b149e Add some notes about the globalness of certain things like interrupts
and ISA DMA channels (ie: on most PCI systems, they are not.. they are
on the ISA side of the PCI-ISA bridge and could be duplicated if there
were multiple PCI-ISA bridges, say in a laptop docking station), while
the APIC resources would be global on SMP systems.
Also, revert a previous change, change some printfs back to panics.
1999-05-08 21:34:34 +00:00
peter
fdb0bbc895 GC some #if 0 junk 1999-05-08 21:28:39 +00:00
peter
89b231e27d Don't print 'interrupting at irq nn' on the x86 family, it's not all
that big a deal just yet and isn't worth a whole line on the boot screen.
This could change later in the face of multi-ISA-bus (eg: laptop docking
stations with two independent ISA busses) and SMP/APIC systems.  The Alpha
already has multiple interrupt destinations to deal with.
1999-05-08 20:24:44 +00:00
peter
3f78b53e89 I'm sick of the automatic rename of /kernel to /kernel.old while doing
development that leads to lots of crashes during boot.

I have made a 'reinstall' target (like in ports, and reinstall.debug)
This is most useful if you want to keep /kernel.old as a known bootable
kernel.  If you test a new kernel and have to reboot for a fix, a
'make reinstall' will install the new kernel over the top of the old
non-viable one, leaving the old one untouched.  This is mainly meant
for development, not general users.
1999-05-08 20:04:39 +00:00