| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
- machine/ipl.h -> sys/ipl.h
- machine/mutex.h -> sys/mutex.h
|
|
|
|
|
|
|
|
|
|
|
| |
- Make softinterrupts (SWI's) almost completely MI, and divorce them
completely from the x86 hardware interrupt code.
- The ihandlers array is now gone. Instead, there is a MI shandlers array
that just contains SWI handlers.
- Most of the former machine/ipl.h files have moved to a new sys/ipl.h.
- Stub out all the spl*() functions on all architectures.
Submitted by: dfr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
include:
* Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The
alpha port is still in transition and currently uses both.)
* Per-CPU idle processes.
* Interrupts are run in their own separate kernel threads and can be
preempted (i386 only).
Partially contributed by: BSDi (BSD/OS)
Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh
|
|
|
|
|
| |
probe happens much earlier, and may come to very different conclusions
about the system's NPX setup.
|
|
|
|
|
|
|
| |
new macro SWI_LOW_MASK to give the mask for low priority SWIs instead
of hard-coding this mask as SWI_CLOCK_MASK.
Reviewed by: dfr
|
|
|
|
| |
to PNP0c04 (legacy ISA coprocessor support). Tourist info.
|
|
|
|
| |
#include "foo.h" headers.
|
| |
|
| |
|
| |
|
|
|
|
| |
the nexus without explicit code in the nexus to do so.
|
|
|
|
| |
Submitted by: BDE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
macros) to the signal handler, for old-style BSD signal handlers as
the second (int) argument, for SA_SIGINFO signal handlers as
siginfo_t->si_code. This is source-compatible with Solaris, except
that we have no <siginfo.h> (which isn't even mentioned in POSIX
1003.1b).
An rather complete example program is at
http://www3.cons.org/cracauer/freebsd-signal.c
This will be added to the regression tests in src/.
This commit also adds code to disable the (hardware) FPU from
userconfig, so that you can use a software FP emulator on a machine
that has hardware floating point. See LINT.
|
|
|
|
|
|
| |
though, on systems (386 mostly) that still have a seperate fpu, but it
might be possible to find systems where the FPU coprocessor is wired to
a different IRQ pin.
|
|
|
|
|
|
| |
to SIGFPE handling.
Reviewed by: Bruce Evans <bde@zeta.org.au>
|
|
|
|
| |
to the BUS_SETUP_INTR call.
|
| |
|
|
|
|
|
| |
and always succeeded as is required on SMP). Anyway, reverting this
still compiles and appears ok.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
i386 platform boots, it is no longer ISA-centric, and is fully dynamic.
Most old drivers compile and run without modification via 'compatability
shims' to enable a smoother transition. eisa, isapnp and pccard* are
not yet using the new resource manager. Once fully converted, all drivers
will be loadable, including PCI and ISA.
(Some other changes appear to have snuck in, including a port of Soren's
ATA driver to the Alpha. Soren, back this out if you need to.)
This is a checkpoint of work-in-progress, but is quite functional.
The bulk of the work was done over the last few years by Doug Rabson and
Garrett Wollman.
Approved by: core
|
| |
|
| |
|
| |
|
|
|
|
| |
and local variables, goto labels, and functions declared but not defined.
|
|
|
|
|
|
|
| |
device drivers, not in ioconf.c. Use a different hack in isa_device.h
so that a new config(8) is not required yet.
pc98 parts approved by: kato
|
| |
|
|
|
|
| |
(asm) string constants or hard long long constants).
|
|
|
|
| |
in __asm() statements while I'm here.
|
| |
|
|
|
|
| |
"last instruction" pointer.
|
|
|
|
|
|
| |
actually faster (more than 20% faster for zeroing 1 MB at boot time).
This fixes pessimized copying and zeroing on K6's and perhaps on other
CPUs that are misclassified as i586's.
|
|
|
|
|
| |
This also zaps a DPT option from lint; it wasn't referenced from
anywhere.
|
|
|
|
| |
Ifdefed #includes that are not used in the SMP case.
|
|
|
|
|
|
|
| |
in <machine/cpu.h>. Moved the declarations to <machine/cputypes.h>.
Fixed style bugs in the moved code. Fixed everything that depended on
the nested include. Don't include <machine/cpu.h> (in the changed files)
unless something in it is used directly.
|
|
|
|
| |
Requested by: Bruce.
|
|
|
|
| |
Reviewed by: John Dyson
|
|
|
|
|
|
|
| |
Work done by BSDI, Jonathan Lemon <jlemon@americantv.com>,
Mike Smith <msmith@gsoft.com.au>, Sean Eric Fagan <sef@kithrup.com>,
and probably alot of others.
Submitted by: Jnathan Lemon <jlemon@americantv.com>
|
|
|
|
|
|
|
| |
This eliminates all the APIC code, and thus several routines that
would otherwise need to be made MP-safe.
Reviewed by: Bruce Evans <bde@zeta.org.au>
|
| |
|
|
|
|
| |
it is understood to work now (and has been for quite a while apparently).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This eliminates a lot of #ifdef SMP type code. Things like _curproc reside
in a data page that is unique on each cpu, eliminating the expensive macros
like: #define curproc (SMPcurproc[cpunumber()])
There are some unresolved bootstrap and address space sharing issues at
present, but Steve is waiting on this for other work. There is still some
strictly temporary code present that isn't exactly pretty.
This is part of a larger change that has run into some bumps, this part is
standalone so it should be safe. The temporary code goes away when the
full idle cpu support is finished.
Reviewed by: fsmp, dyson
|
|
|
|
|
|
|
| |
isa.c (slightly) more portable and will make my life developing the really
portable version much easier.
Reviewed by: peter, fsmp
|
|
|
|
|
| |
<machine/ipl.h> to those files that were depending on getting SWI_*
implicitly via <machine/cpufunc.h>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are various options documented in i386/conf/LINT, there is more to
come over the next few days.
The kernel should run pretty much "as before" without the options to
activate SMP mode.
There are a handful of known "loose ends" that need to be fixed, but
have been put off since the SMP kernel is in a moderately good condition
at the moment.
This commit is the result of the tinkering and testing over the last 14
months by many people. A special thanks to Steve Passe for implementing
the APIC code!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
have successfully built, booted, and run a number of different ELF
kernel configurations, including GENERIC. LINT also builds and
links cleanly, though I have not tried to boot it.
The impact on developers is virtually nil, except for two things.
All linker sets that might possibly be present in the kernel must be
listed in "sys/i386/i386/setdefs.h". And all C symbols that are
also referenced from assembly language code must be listed in
"sys/i386/include/asnames.h". It so happens that failure to do
these things will have no impact on the a.out kernel. But it will
break the build of the ELF kernel.
The ELF bootloader works, but it is not ready to commit quite yet.
|
|
|
|
|
| |
it when it is not used. In most cases, the reasons for including it
went away when the special ioctl headers became self-sufficient.
|
|
|
|
| |
ready for it yet.
|
|
|
|
| |
saving the state (see rev.1.17).
|
|
|
|
|
|
|
|
| |
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
|