Commit Graph

351 Commits

Author SHA1 Message Date
simonb 023bdd2bf2 Use comments around the token after a #endif. 2001-08-31 04:44:54 +00:00
matt e4892d7157 When invaliding single icache line on XScale, the branch target buffer
also needs to be invalidated.  Also, but in the right sequence to empty
the pipeline on XScale.
2001-08-30 01:15:39 +00:00
chris 37fb92dcab Remove unused entries from the pcb. This is with a long term view of merging the arm26 and arm32 pcb's. 2001-08-27 11:39:43 +00:00
matt edc83ba7f4 Add xscale cpufuncs (using the sa110 ones when they are identical). 2001-08-27 00:00:27 +00:00
matt e8f317bba8 Add xscale cpu functions 2001-08-26 19:41:57 +00:00
matt 4e642cc5fd Add i80312 register definitions (just registers for now). 2001-08-26 19:25:47 +00:00
matt 08f4bcddf3 files file for xscale (i80312 aka iopxs) 2001-08-26 19:19:09 +00:00
bjh21 ed5e27cc44 Increase the size of a jmp_buf when using ELF, since this will be our last
chance to do so for a while.  We don't use the extra space yet, but VFP
support is likely to need it.
2001-08-25 14:45:59 +00:00
chris 140252be2b Arm has a vac, so we must use pmap_enter/remove for vmapbuf rather than k* versions, otherwise we may not be doing the right caching thing. 2001-08-20 21:52:09 +00:00
wiz d375535396 Fix typo in comment (suceed). 2001-08-20 11:49:11 +00:00
matt 4bc8190b62 Change local offset/label for irqhandlers to Lirqhandlers. Because in
ELF _C_LABEL(irqhandlers) == irqhandlers so we were getting self-referential
pointer which causes the IRQ to fall on itself.  [With this change the
netwinder kernel can now be *ELF* and boots to multiuser]
2001-08-19 07:29:26 +00:00
jdolecek c495131fe3 Move _insque()/_remque() to libkern. Once remaining uses would
be converted to <sys/queue.h> macros, _insque()/_remque() would be eliminated
altogether.
2001-08-12 08:35:31 +00:00
chris 0b0518e0dd Fix compile without DIAGNOSTICs enabled 2001-08-11 14:47:56 +00:00
chris 191de4d242 Checking a whole host of pmap changes:
Improved locking (not that we actually use it on a uniprocessor, but one day :)
Removed unneeded splvm's
tweaked pmap_clean_page code to only flush the cache if the page is mapped in the current pmap  (based on diff from richard E)
Adopted pv entry allocation mechanism from i386.
Laid framework for returning ptp's when we've finished with them rather than holding onto them till the process exits.
ptp's are now allocated with a uvm object for the pmap, means that we can walk a list to free them off in pmap_release, until they get freed off by pmap_remove.

Also implemented a page zeroing function when the processor is idling.  Note that hpcarm may wish to disable this.

I believe this code to be stable, if anyone has any problems please shout up.
2001-08-11 13:20:19 +00:00
chris c5de587666 Make use of pmap_kenter instead of pmap_enter for kernel buffers. 2001-08-11 13:00:48 +00:00
chris 163b9983d7 Add arm_trunc_page, similair to trunc_page but using a hardcoded PGOFSET. 2001-08-11 12:59:45 +00:00
chris 6cca1c3f58 Update to make use of a proper kenter implementation for vmapbuf and vunmapbuf. 2001-08-11 12:57:25 +00:00
chris 6e43d02452 Patch in Richard E's changes to bcopy page, the loop doesn't need unrolling as much as it currently is due to the overhead of the load/stores taking most of the time. (profiling shows minimal time difference) 2001-08-11 12:44:42 +00:00
bjh21 4dd0161267 Use STACKALIGN rather than &=~7. 2001-08-07 22:56:09 +00:00
bjh21 8fa03d16ac Add macros to hide the details of stack-pointer alignment. 2001-08-07 22:54:00 +00:00
bjh21 bd6d4d6b77 Use <arm/param.h> to get shared definitions. 2001-08-07 22:26:56 +00:00
bjh21 f37b49755f When delivering a signal, ensure that the stack is 8-byte-aligned. 2001-08-06 22:32:23 +00:00
chris 9522cf08d4 Share procfs_machdep.c across arm. 2001-08-05 13:09:45 +00:00
matt 9509e734a3 Force size_t formats/arge to be (u_long). I'd use 'z' for this but gcc
2.95.3
2001-08-05 05:07:27 +00:00
rjs faf8b4c913 Update from hpcarm with changes to probe routine and test for chip ID. 2001-08-01 14:02:58 +00:00
matt 03b77c0534 Add a CPU_XSCALE defopt (for eventual support). 2001-07-31 17:00:24 +00:00
rjs 6b65fea380 Remove unused hpc includes. 2001-07-30 16:23:09 +00:00
rjs 9013c85405 Update from hpcarm to remove iPAQ egpio code. 2001-07-30 16:20:06 +00:00
rjs 51bc7258f8 Update from hpcarm with MCP base definition. 2001-07-30 16:08:42 +00:00
rjs c79059dd3f Update from hpcarm to remove iPAQ and Jornada specific #defines. 2001-07-30 15:58:56 +00:00
rjs b85ae98e65 Update from hpcarm with MCP register definition. 2001-07-30 12:19:04 +00:00
rjs 495d108bd3 Update from hpcarm with cookie change. 2001-07-30 10:55:49 +00:00
rjs 9b65c24aa5 Remove unused LCD definitions. 2001-07-30 10:50:59 +00:00
rjs 1304d2220e Mirror removal from hpcarm. 2001-07-30 10:48:31 +00:00
rjs 499d1068e8 Update from hpcarm. 2001-07-30 10:46:08 +00:00
rjs e35b542831 Mirror removal from hpcarm. 2001-07-30 10:33:59 +00:00
rjs 730b1a57ac Copy from hpcarm. 2001-07-30 10:17:21 +00:00
chris fa4e4d9668 Rework the pmap_release code to not have to walk the ptpt, it now uses a uvm_object to track the allocated vm_pages, this means it can free off the entries in the uvm_object.
Testing shows that it's about 5% faster on the make configure step for gmake.
2001-07-29 12:45:27 +00:00
chris 89415a32e2 PR 13581
Add empty pmap.h and vmparam.h to make userland happier.
2001-07-29 09:50:07 +00:00
chris af16732a3a Fix for PR 13580.
Make sysarch include sys/stdint.h so it picks up the a definition of uintptr_t.
2001-07-29 08:37:56 +00:00
chris 9f04d8d670 A couple of tidy ups to pmap:
pmap_t -> struct pmap * in pmap.c and pmap.h
kernel_pmap -> pmap_kernel() everywhere.

Compiled and booted on riscpc and cats.
2001-07-28 18:12:43 +00:00
chris 4a126d9937 finish moving common arm32 bits out into arm/arm32. 2001-07-28 15:08:10 +00:00
chris 27f96e8440 Move the generic arm32 files into arm/arm32 from arm32/arm32, tested kernel builds on cats and riscpc. 2001-07-28 13:28:03 +00:00
chris 9c823196e0 Change -x into -X for linking, it makes traces more meaningful. 2001-07-28 13:24:24 +00:00
chris 37dc65af43 bzero->memset 2001-07-28 12:29:58 +00:00
matt 36dc943f75 Change ARM-ELF to LP64 friendly types. 2001-07-28 07:42:28 +00:00
matt 384a403ca5 Make sync_icache_args use more standard types. 2001-07-23 17:04:27 +00:00
takemura 64b6b76a21 You must set 'HPCFB_SWAP_*' if bytes are stored in reverse order, i.e.
little endian like order, however, usage of 'HPCFB_SWAP_*' was widely
misunderstood because it reminded you of 'RI_BSWAP' in raster operation.
Please note that 'RI_BSWAP' indicate that frame buffer byte order is different
from natural order of system while 'HPCFB_REVORDER_*' is independent of
system byte order.
2001-07-22 09:56:39 +00:00
thorpej babefc5331 Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
rjs c1539a6ba2 Add Jazelle mode flag. 2001-07-18 16:31:17 +00:00
matt bb9bd28fa8 Change way PIC stuff is emitted for ELF to be more flexible. 2001-07-16 05:43:32 +00:00
matt 59ce75e3e7 Need to emit PLT magic for PIC ELF files. 2001-07-16 05:42:50 +00:00
matt 7a4fca28c6 Add a GOTSYM which emits the right stuff to GOT symbols under ELF and/or
a.out.
2001-07-14 18:24:41 +00:00
matt 497b990687 Clarify when/where MACHINE & MACHINE_ARCH are defined. Add default
user-visible definitions.
2001-07-14 07:31:31 +00:00
matt 24a2b394aa Make <sysarch.h> valid for all arm platforms. Adjust/remove port-specific
includes as required.
2001-07-14 00:23:09 +00:00
matt c5e61ec6d5 Move user-visible MBUF constant here. Define MAXPHYS. Include DEV_BSIZE 2001-07-13 19:43:15 +00:00
matt d09cef0906 Gah!. Use the variable name (LINKENTRY). 2001-07-12 07:02:00 +00:00
matt 2d9f71a0d9 Fix a few things for NetWinder. NetWinder needs to override the
std entry point so add a hook for that.  Also pick up the port
specific .inc file from the right directory.
2001-07-12 06:25:07 +00:00
bjh21 ea353a48e1 Purge CPU_ARM7500. Thanks to Reinoud's work, it's no longer needed. 2001-07-10 20:43:57 +00:00
reinoud 8ca7d6ec9c Initial commit for merging A7000/NC with the RISCPC in order to get _one_
bootable GENERAL kernel for the 3 machines.

This is done by integrating the ARM7500 in a better way. In various places
the IOMD ID is checked and action is taken at runtime compared to
compiletime.

The small piece of assembler that is changed now uses the flag
`arm7500_ioc_found' that is set up by iomd.c at startup. When this chip
isnt found at startup it will skip reading the ARM7500 extended IRQ
registers and wont clear them either.

The next step will be getting the mode-definition files to the bootloader.
Currently they are compiled in.
2001-07-09 21:46:19 +00:00
reinoud 1f5b07de6a Changed the variable within the ARM6 late abort section from cpu_ctrl to
cpuctrl ...
2001-07-09 19:51:14 +00:00
rjs 72c860d841 Initial copy of SA11x0 support from hpcarm. 2001-07-08 23:37:52 +00:00
rjs 35dc2ba462 Initial copy of SA11x0 support from hpcarm. 2001-07-08 23:20:04 +00:00
chs b86053cc53 clean up pmap_k{enter_pa,remove}():
a page is allowed to be mapped normally when k-mapped.
use UVM_PGA_ZERO to get zeroed pages rather than zeroing here.
2001-07-08 19:44:43 +00:00
chris 4c32798eb8 Implement proper versions of kenter_pa and kremove, I've based them on versions provided by Richard E. 2001-07-06 20:15:13 +00:00
chris b8ceed365f Improve the vac_me_harder function, it is now slightly faster, however pmap_enter_pv is also now slightly slower, so they appear to balance out.
Note that I've some ideas in the works on how to improve the pv handling, so the slow down is short term only.

Also added non-advertising licence and copyright to myself and richard.
2001-06-25 23:22:38 +00:00
chris 407440a6b3 Add a pmap_map_ptes function to map another process page table entries into the current pmap (similair to pmap_pte) but this allows multiple use of it, rather than repeated calls of pmap_pte for pte, map_ptes returns a pointer to the va where the entries were mapped so it can be reused ptes can be found by indexing into it.
Update some of the functions that use pmap_pte to pmap_map_ptes.

Note that there's a dummy macro for pmap_unmap_ptes, this is because at some point locking will be needed, so we need to be able to unlock them.

Performance gain seems to be minimal, however long term it should help improve things.

This is similair to the i386 pmap_map_ptes, however it's based on a version from Richard Earnshaw.
2001-06-24 23:21:04 +00:00
chs 908aa6ff3d remove "machine vmstat" command, since "show uvmexp" does the same thing. 2001-06-24 07:32:20 +00:00
bjh21 690f56e57a Add a common <arm/param.h>, containing those few things that are obviously
common across all ARM systems.
2001-06-23 13:25:19 +00:00
bjh21 3622d4e282 Add <arm/endian.h> and remove the cats, dnard and netwinder versions, since
they're all the same (a redirect to <sys/endian.h>).
2001-06-23 12:20:27 +00:00
chris c3b7efe5d3 GC a couple of unused entries in the pmap struct 2001-06-22 09:12:11 +00:00
chris cca2bd293b Use a pool to store pmap structs. 2001-06-22 09:09:42 +00:00
chris 7383fda9e0 Remove defopt EBSA285.
Move the files from footbridge that are cats specific.
Remove EBSA285 kernel as people should be able to use the generic cats kernel for EBSA285 systems.
2001-06-20 22:14:32 +00:00
wiz ac951736bc `response', not `responce' 2001-06-19 13:45:52 +00:00
wiz f3f6c5b675 `accessible' only has one `a'. 2001-06-19 12:52:20 +00:00
bjh21 cb36bacea5 Merge arm32/dev/bus_space_notimpl.S and hpcarm/hpcarm/bus_space_notimpl.S
into arm/arm/bus_space_notimpl.S.  They were identical anyway.

This file has no excuse for being in assembler, but I'll leave that for another
day.
2001-06-18 22:26:15 +00:00
bjh21 80c5d7ab99 Move <arm/arm32/bus.h> to <arm/bus.h>, since it looks like it's going to be
necessary on arm26 as well.
2001-06-18 21:37:32 +00:00
thorpej 8eb3b954f1 Don't need to prototype child_return() here, it's in <sys/proc.h>. 2001-06-14 22:56:55 +00:00
nathanw 0adcac34e5 That's supposed to be <machine/io.h> in the XXX'd #ifdef, not a repeat
of <machine/bus.h>.
2001-06-13 17:52:43 +00:00
matt fa3621e3be Move netwinder_machdep.c to files.netwinder. Eliminate opt_netwinder.h and
use #ifdef netwinder insead.  XXX ebsa285_machdep.c should move to the cats
directory and files.cats
2001-06-12 17:10:25 +00:00
chris 1825c7b68a Move defopt FOOTBRIDGE to where it really should be in files.footbridge, which is where I should have left it. 2001-06-11 22:25:09 +00:00
matt 95be56d2e1 Only include dependency on include-dirs if the include directory doesn't
exist.
2001-06-11 17:50:34 +00:00
matt d87a9f23c3 Add common Makefile for arm ports. Only include (for now) machine/io.h
if arm32 is defined.  io.h is RISCPC specific and isn't needed for other
ports.
2001-06-11 17:44:38 +00:00
chris b0a79f686c Typo police: 28285 -> 21285
Also garbage collect the old kernel VM map defines for footbridge.
2001-06-09 10:44:10 +00:00
chris af8ce95972 Move the footbridge dir out of arm32 into arm. 2001-06-09 10:29:11 +00:00
chris 75d8b9d463 Checkin fix to ARM7TDMI support. As per patch from John Fremlin to
port-arm32.
2001-06-07 21:07:22 +00:00
bjh21 95fe4db7e3 Replace arm/arm32/db_trace.c and arm26/arm26/db_trace.c with a unified version
in arm/arm.  This version is based on the arm26 version, and includes dumping
the contents of stack frames, with automatic determination of the save code
pointer offset.
2001-06-05 09:25:05 +00:00
bjh21 261bd8f8ac Add get_pc_str_offset(), which returns the offset between the address of an
instruction that stores the program counter and the value of PC that's stored.
This can vary between ARM implementations, but is guaranteed to be constant on
a given one.
2001-06-05 09:19:32 +00:00
chris 878db7cfb8 Add support for ARM7TDMI, as provided in a patch from John Fremlin to port-arm32.
Shouldn't effect any currently in tree ports.
2001-06-03 18:32:33 +00:00
bjh21 e1fdb3abbf Rather than duplicating the LDM/STM/LDC/STC fixup code between
early_abort_fixup() and late_abort_fixup(), have the latter tail-call the
former.  This saves another 200 bytes, and I've found my ARM710a card now, so
I've even tested it.
2001-06-03 13:38:14 +00:00
bjh21 3c88c46567 In {early,late}_abort_fixup(), return ABORT_FIXUP_FAILED, rather than
panic'ing, if we hit an instruction we can't fix up.  This saves 250-odd bytes
of code, and should allow the caller to print a more useful message.
2001-06-02 22:30:07 +00:00
bjh21 f594a52dae late_abort_fixup: Get the indentation right! 2001-06-02 22:08:11 +00:00
bjh21 54a986d7fc Replace arm6_dataabt_fixup() and arm7_dataabt_fixup() with early_abort_fixup()
and late_abort_fixup(), based on the abort model in use, rather than the CPU
type.  This cleans up the code and makes it smaller.  Only tested on an
ARM6 -- I can't find my ARM710a card right now.
2001-06-02 21:03:32 +00:00
bjh21 7089595665 Initial cpufunc operations for ARM3. Not actually used yet. 2001-06-02 19:01:03 +00:00
bjh21 c81d426dcf Save R14 (in a proper stack frame) around {read,write}_multi_1, since page
faults can corrupt it on arm26.
2001-06-02 11:15:56 +00:00
bjh21 ac0d39dfe8 Add write_multi_1(). 2001-06-02 10:44:56 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
bjh21 f15491e9d3 Move the declarations of blockio.S functions from katelib.h to a new, exciting
<arm/blockio.h>.  katelib.h includes it for compatibility.
2001-05-30 00:16:36 +00:00
bjh21 d51c27dfa8 Add read_multi_1() which does what it says fairly fast. 2001-05-30 00:14:09 +00:00
bjh21 7d9a4dbad7 Move blockio.S from sys/arch/arm32/arm32 to sys/arch/arm/arm, since I want to
start using it on arm26.

hpcarm gets to keep its own version, since it's not identical and I haven't
got an hpcarm box to test.
2001-05-29 23:03:20 +00:00
chs e44e9dec8a replace vm_page_t with struct vm_page *. 2001-05-26 21:27:02 +00:00
chs 118ddca24a replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}. 2001-05-26 16:32:40 +00:00
chris cbf8e0eb95 Add a files.footbridge for inclusion by cats and netwinder. This is to make moving of the footbridge dir easier (when it eventually moves from arm32)
Also remove EBSA285 defopt from the netwinder file as the netwinder isn't an eval board.
2001-05-23 21:21:42 +00:00
chris 8901caf8ff Create an asm based version of in4_cksum based on the sparc version.
Also don't compute psuedo header for nxt == 0
2001-05-23 19:33:48 +00:00
bjh21 330163a77f Include opt_cputypes.h, since we use CPU_*. 2001-05-13 14:41:56 +00:00
bjh21 b9ded015f4 strstr() is no longer used in the kernel. G/C it. 2001-05-13 14:17:36 +00:00
bjh21 e2b24925d1 Use get_bootconf_option() to find boot options, rather than home-grown
strstr()-based hacks.
2001-05-13 13:53:08 +00:00
bjh21 0ea71ec5ea Make use of a.out or ELF symbols dependent on the compile-time definition of
__ELF__.
2001-05-13 13:51:08 +00:00
bjh21 e8fd2642a9 Don't include parse_cpu_options() unless we're going to use it. This fixes
a warning on arm26.
2001-05-13 13:50:01 +00:00
bjh21 2af5062ab7 Add <machine/bootconfig.h> on arm26, and add an <arm/bootconfig.h> for it to
include (since all the contents are MI).
2001-05-13 13:46:23 +00:00
bjh21 61044be691 Move get_bootconf_option() into a new file, sys/arch/arm/arm/bootconfig.c,
since it's in no way machine-dependent.  It's not really ARM-specific either,
but I don't think it's useful enough to be made part of the MI kernel.
2001-05-13 13:44:33 +00:00
bjh21 6d4648fa03 Move "defopt PMAP_DEBUG" into files.arm, since it's used by code in arch/arm. 2001-05-06 18:31:14 +00:00
bjh21 f9087c439b Move cpufunc stuff from arm32/arm32 to arm/arm. The only change involved is
to add recognition of the SA-1100 and SA-1110 for compatibility with hpcarm
(which is now using this code as well).
2001-05-06 18:01:42 +00:00
simonb 6a511e05e2 Be consistent with limit constants:
- use "U" suffix for unsigned constants
 - use "L" suffix for long constants
 - use "UL" suffix for unsigned long constants
 - use hexadecimal instead of decimal

Fixes build problems with vi (now that warnings/errors are enabled) on
mips, powerpc and arm platforms.
2001-05-04 15:12:32 +00:00
bjh21 8afb876f73 Make the common <arm/profile.h> work on arm26 and arm32, choosing whether
to munge R15 or not at runtime.  Also make it work with both ELF and a.out.
2001-05-04 00:11:15 +00:00
bjh21 262c7835b0 In an ELF kernel, don't try to find an a.out symbol table. 2001-05-02 19:10:29 +00:00
kleink fe3c9ceaf7 * Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
  explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
  macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
  intmax_t, pointer-type and size_t arguments.
2001-04-28 15:41:28 +00:00
bjh21 3a7710b605 Add ELF version of _PROF_PROLOGUE. 2001-04-26 23:20:02 +00:00
kleink 99054d7a6c Add definitions for C99 fastest minimum-width integer types. 2001-04-26 16:25:19 +00:00
thorpej fe664428c8 Garbage-collect pmap_page_index(). 2001-04-25 17:35:00 +00:00
bjh21 63692f5771 Rather large overhaul. Mostly cosmetic, but also:
Provide PROC_PC on arm26.
Provide working CLKF_INTR on arm26.
Make setsoftast a macro everywhere.
2001-04-24 18:20:21 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
thorpej 55044638aa Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej 69abdbf60c Undo a misguided previous change to the pmap_update() API. 2001-04-22 23:19:26 +00:00
thorpej 4738622712 Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
2001-04-22 00:33:59 +00:00
thorpej 82065e8a0b Update the comment for pmap_update(). 2001-04-21 17:13:12 +00:00
bjh21 630f137a5e Multiple-inclusion protection. 2001-04-21 15:47:32 +00:00
toshii 61ff48a82e In pmap_allocpagedir(), check if uvm_km_zalloc of ptpt is successful,
and handle alloc failure case.
2001-04-20 18:11:53 +00:00
matt 1a5fe5b583 Split cpu from mainbus so that cpu can attached to other buses (like ofbus). 2001-04-20 18:08:48 +00:00
rearnsha 50e1e30747 Put back that old (not) unused include file. But only include it
when ARMFPE is defined.  Since that is the only time we use it.
2001-04-18 20:27:33 +00:00
kleink f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink 739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
kleink 7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
kleink 9133b51cd8 Replace the 'unsigned __COMPILER_INT64__' construct with a new name,
__COMPILER_UINT64__, to be supplied - if such a case is made, it shouldn't
be assumed that the unsigned type-specifier may be applied to it.
2001-04-12 22:01:18 +00:00
reinoud d2b84b36d2 Removing an old unused include 2001-04-04 21:40:20 +00:00
toshii dfddb1e107 Increase spl_masks[] size by one and set the extra element to 0.
irq_entry accesses here.
2001-03-31 12:22:37 +00:00
bjh21 bfc2063e69 Create an ARM2-specific undefined-instruction handler which deals with the
undef/SWI bug and handles emulating SWP.

Untested bacuse my ARM2 machine isn't currently set up.
2001-03-17 18:12:09 +00:00
chs ac3bc537bd eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>
2001-03-15 06:10:32 +00:00
toshii 300d398485 Move references to arm/arm/disksubr*.c from files.arm to
files.{arm26,arm32,dnard}.
2001-03-14 14:39:45 +00:00
bjh21 c3c5158d00 Change the value of tf_pc in undefined-instruction handlers on arm32. It now
always points to the undefined instruction in question.  It's up to the
handler to advance it to the next instruction if it wants execution to
continue there.  This is how things have always worked on arm26.
2001-03-13 23:56:48 +00:00
bjh21 ce3ad2275b Update FPU detection to use remove_coproc_handler(). 2001-03-13 23:51:48 +00:00
bjh21 c72a18bddc Separate out the SIGTRAP (gdb breakpoint) generator from undefinedinstruction()
so it's no longer a special case.
2001-03-13 20:22:02 +00:00
bjh21 ce5529eabf Change undefined instruction handler to use a linked list for each
co-processor.  This is necessary so we can have several handlers for
CP0 (used as a catch-all for non-CP instructions).

Handlers are now removed using remove_coproc_handler(), rather than by calling
install_coproc_handler() with a NULL handler.

Because install_coproc_handler() can now allocate memory, there's a version
for use at boot time that doesn't.
2001-03-11 16:18:39 +00:00
bjh21 4624a1247e Make this suitable for use on arm26 as well. 2001-03-11 16:02:21 +00:00
bjh21 5f8b55f7c3 Pass a softc pointer around everywhere, and use it when we need the name of
the device.

Don't pretend that fpe0 and fpu0 exist as devices (they don't).

G/C a few items related to /dev/cpu* support.
2001-03-11 15:05:43 +00:00
bjh21 f61ad8fa80 G/C more unused elements of struct _cpu. 2001-03-11 00:14:56 +00:00
bjh21 d005972168 "needs-flag" for cpu is no longer needed. 2001-03-11 00:11:05 +00:00