Commit Graph

38 Commits

Author SHA1 Message Date
bjh21 aa34be4532 Make "options ARMFPE" work again.
Mostly due to Richard Earnshaw.
2001-03-04 14:32:12 +00:00
bjh21 c25aec3d9f PCB convergence, part the first:
Move the pointer to the current user trapframe from struct mdproc to struct
pcb (as on arm26).  Only tested by compiling kernels on arm32 and
hpcarm (dnard seems to be incomplete anyway).  Someone should try running one.
2001-02-28 18:15:42 +00:00
bjh21 f983a837ed Add multiple-include protection, and include <machine/cpus.h> here (where
it was actually needed).
2001-02-26 16:40:00 +00:00
mycroft a8ac146577 Adjust for userret() interface change. 2000-12-12 19:45:47 +00:00
mrg b564830503 remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 08:44:03 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
thorpej a7d0570e67 First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

	- Global state: sched_qs (run queues), sched_whichqs (bitmap
	  of non-empty run queues), sched_slpque (sleep queues).
	  NOTE: These may collectively move into a struct schedstate
	  at some point in the future.

	- Per-CPU state, struct schedstate_percpu: spc_runtime
	  (time process on this CPU started running), spc_flags
	  (replaces struct proc's p_schedflags), and
	  spc_curpriority (usrpri of processes on this CPU).

	- Every platform must now supply a struct cpu_info and
	  a curcpu() macro.  Simplify existing cpu_info declarations
	  where appropriate.

	- All references to per-CPU scheduler state now made through
	  curcpu().  NOTE: this will likely be adjusted in the future
	  after further changes to struct proc are made.

Tested on i386 and Alpha.  Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
2000-05-26 21:19:19 +00:00
thorpej 1140468205 Use preempt(), not an open-coded equivalent (which won't be
equivalent for long).
2000-05-24 16:48:33 +00:00
cgd c9c2181ed9 provide an __ELF__ version of _C_FUNC and _C_LABEL, convert the assembly
#defines in asm.h to use them, and convert code which needs to use C labels
to use _C_LABEL as well.  (I can't see any reason why the label vs. function
differentiation shouldn't be GC'd; i only added uses of _C_LABEL.)  This
should help if this port is converted to use ELF, and was checked by
compiling all kernels in arm32/conf (with some driver removals and some
MI header fixups re: common blocks) with an arm-linux ELF toolchain.
1999-10-26 06:53:41 +00:00
mark 865f2563e1 Remove inclusion of sys/device.h
Declare exception_errors as const.
1998-05-01 15:35:43 +00:00
mark 077c15ab4d Remove some redundant .req statements.
Make various entry points non-profiling.
1998-04-01 22:55:05 +00:00
mark c67078a448 Update arm_fpe_[gs]etcontext() functions to take a struct fpreg pointer
as the second argument.
1998-02-22 23:39:53 +00:00
mark 5a2727a17e Fix arm_fpe_[gs]etcontext() prototype declarations to take a
struct fpreg pointer as the second argument.
1998-02-22 23:38:18 +00:00
mark b360e67c2e arm32 kernel source restructure
- Removed explict profiling calls from the assembly routines
  - Use the *ENTRY() macros on all assembly functions.
  - Clean up exception strings.
1997-10-14 07:56:48 +00:00
mark ec553ec8c0 New version of the ARM FPE core built. This core does not have all the
builtin veneer code. Instead this veneer code has been moved to kernel.
This removes the need for any runtime fixups of the fpe.
1997-07-08 19:41:28 +00:00
mark 649a90497e No need to check for CPU_ARM7500 being defined as this option implies
CPU_ARM7 which has to be checked anyway.
1997-02-03 03:12:09 +00:00
mark cc3383de63 Fixed a couple of STM^ instructions lurking in the FPE core. 1996-12-27 01:46:07 +00:00
mark 02d0fd2ea5 Added function fpe_set_execption_mask() to allow the FP exception mask
to be manipulated.
During initialisation the exception mask is set to allow divide by zero
and overflow exceptions to be signaled.
1996-12-27 01:39:14 +00:00
mark 58e481e13b Call mcount() for all fpe core entry points if GPROF and PROFILE_ASM
are defined.
Switch to SVC32 mode before delivering FP exceptions and switch back
to UND32 mode afterwards before exiting.
1996-10-15 01:37:50 +00:00
mark 24e50982df Report the core identity string now available from the core header when
booting.
After assembling the post FP processing callback branch call
sync_icache() if CPU_SA110 is defined.
Return a valid signal code when raising a SIGFPE exception so
the cause of the SIGFPE can be determined.
Added the functions arm_fpe_getcontext() and arm_fpe_setcontext()
to obtain the FP context in a FPE independant form for the ptrace()
syscall.
1996-10-15 01:31:28 +00:00
mark 0d48d902ea New build of the ARM FPE core. The core header now has a version
number field and an core identity string pointer.
Labels are now defined for all the entry points in the core header
structure so that the linker can relocate the branches to the core.
The core entry points are now branch instructions relative to the
start of the core so the address of the core function does not have to
be calcuated are call time.
1996-10-15 00:49:10 +00:00
mark a6bf04810f Include <machine/fp.h> and <machine/reg.h>
Define the two new fields added to the FPE core header in
the arm_fpe_mod_hdr_t structure.
Added prototypes for arm_fpe_getcontext() and arm_fpe_setcontext().
Updated the prototypes for arm_fpe_core_loadcontext() and
arm_fpe_core_savecontext() to pass a fp_context_frame pointer.
1996-10-15 00:42:46 +00:00
mark 9d18e41fd8 No longer need the relocation function arm_fpe_mod_reloc() as this is now
sorted out at link time.
fpe_arm_header is now the header structure for the fpe and no longer
a pointer to a header structure.
1996-08-21 20:21:05 +00:00
mark 7b8910c01d Vastly simplified the FPE stubs code now that there are labels for all the
core entry points. i.e. the linker does the work rather than the stub code.
Optimised transferring the trapframe between UND32 and SVC32 mode stacks
in the fpe_post_proc handler.
Added experimental code to handle must of userret in UND32 mode. This means
that the copy of the trapframe and the switch to SVC32 mode is only needed
if mi_switch() has to be called. (This saves a vast number of pointless
trapframe copies).
1996-08-21 20:16:30 +00:00
mark 3142731d09 Re-written FPE core header.
Added branches relative to the start of the module and labels to the various
entry points.
All other offsets are now relative to _fpe_arm_start.
This removes the need for boot time relocation of the FPE.
1996-08-21 20:10:04 +00:00
mark e37583ac84 Removed the prototype arm_fpe_mod_reloc(). 1996-08-21 20:06:26 +00:00
mark d4a21812c0 Updated the arm_fpe_boot() prototype. 1996-06-12 19:37:37 +00:00
mark bbf3f35a4c Pass the cpu structure to the FPE boot function so that the FPU class
and type can be updated if a FPA is detected.
1996-06-12 19:37:03 +00:00
mark b2d569c95e Fixed compiler warnings generated with -Wall. 1996-04-26 21:02:49 +00:00
mark 4973a32e6d RCS Id police. 1996-03-18 19:54:53 +00:00
thorpej 5c67e5fad9 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 01:16:48 +00:00
mark c1b23518d2 ARM FPE is now secure i.e. user processes cannot use FP instructions
to access kernel memory.
1996-02-23 22:20:43 +00:00
mark 23d71d4d59 Fixed undefined instruction handler chaining. The FPE will now correctly
pass on an undefined instruction if it was not an FP instruction.
1996-02-15 22:45:21 +00:00
mark ab9201ff05 Replacement for armfpe.c. This is much nicer. 1996-02-15 22:44:31 +00:00
mark 1f4ced2016 armfpe.c was messy. Removing it in and replacing its function with
armfpe.s
1996-02-15 22:42:17 +00:00
mark 94fa0b2f1b post instruction emulation callback now expects a trapframe structure
to be passed as well as the fp frame.
FPE<->kernel glue code now builds a trapframe structure for passing in
and out of the post instruction emulation callback.
Signal delivery during FP emulation now works correctly.
1996-02-05 16:51:52 +00:00
mycroft fc9d84fb46 assym.s -> assym.h
(Some ports did this already.)
1996-02-02 02:34:09 +00:00
mark 386ad2ff0f Initial commit of the NetBSD/arm32 port. 1996-01-31 23:14:53 +00:00