Commit Graph

254 Commits

Author SHA1 Message Date
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
bjh21
ca5024c3a1 Add code to point out to the user if their CPU isn't supported, and to
suggest what kernel options to use to get it to work.
2001-03-10 21:27:06 +00:00
bjh21
b362a4bef3 Change the meaning of cpu_class. It now has one value for each core we
support, which corresponds to one for each CPU_* option, or one for each
cpufunc structure.

Also remove some more residual code for the support of multiple and non-ARM
CPUs.
2001-03-10 20:15:46 +00:00
bjh21
c24be229f5 Don't allow the I and F (IRQ and FIQ disable) flags to be set in the PSR
by sigreturn.  This prevents user processes disabling interrupts by messing
with their signal context.
2001-03-10 20:08:55 +00:00
rearnsha
bf5e18af99 Add param.h to INCS. 2001-03-10 18:32:25 +00:00
bjh21
0bcb071684 Correct CPU_ID_ISOLD() and CPU_ID_IS7(). 2001-03-10 16:19:59 +00:00
bjh21
f6c36838ae Use the same undefined-instuction handler on both arm26 and arm32. The handler
is derived mostly from the arm32 version, but with a check for an obscure ARM2
bug thrown in.

arm26 fpu and cpu drivers use the new interface for catching undefined
instructions.
2001-03-08 21:30:35 +00:00
thorpej
2c4c690f14 Add the BUS_DMA_STREAMING flag. 2001-03-07 22:42:16 +00:00
bjh21
4ada0ac792 Create cpufunc_null_fixup() to replace all the CPU-specific abort-fixup
routines that did nothing.
2001-03-06 22:29:13 +00:00
matt
b7cd0eeaac Move arm32/arm32/ast.c to arm/arm32/ast.c 2001-03-06 07:52:35 +00:00
bjh21
3ec18a1616 General prettification (mostly comments). 2001-03-05 23:29:32 +00:00
bjh21
78eae7d026 ANSIfy. 2001-03-05 23:14:22 +00:00
bjh21
83b8de43dd Move undefined.c from sys/arch/{arm32/arm32,hpcarm/hpcarm} to sys/arch/arm/arm
in preparation for making it usable on arm26 as well.
2001-03-05 23:06:14 +00:00
bjh21
25ec015449 Merge setregs() from sys/arch/arm32/arm32/machdep.c,
sys/arch/hpcarm/hpcarm/machdep.c and sys/arch/arm26/arm26/vm_machdep.c
into sys/arch/arm/arm/arm_machdep.c.
2001-03-04 23:25:00 +00:00
matt
d6fc837c17 more vm_offset_t/vm_size_t -> {p,v}{addr,size}_t changes
move pmap_* declarations to pmap.h.  fix conflicts this
exposed (e.g different definitions for pmap_bootstrap).
2001-03-04 19:05:55 +00:00
bjh21
0618726202 ANSIfy while I'm here. 2001-03-04 15:40:17 +00:00
bjh21
496829a88b Make compat_13_sys_sigreturn() work on arm26, and move it from
arch/arm/arm32/compat_13_machdep.c to arch/arm/arm/compat_13_machdep.c.
2001-03-04 15:27:03 +00:00
bjh21
aa34be4532 Make "options ARMFPE" work again.
Mostly due to Richard Earnshaw.
2001-03-04 14:32:12 +00:00
bjh21
ab8e9aaefd Add CPU ID for ARM7500FE (determined empirically from two I've got here). 2001-03-04 14:26:26 +00:00
matt
93c0e77b0f Only define MACHINE & MACHINE_ARCH in port-dependent param.h.
Everything else (since it's common) is from <arm/arm32/param.h>
2001-03-04 08:28:51 +00:00
matt
58438fb425 Move compat_13_machdep.c, strstr.c, copystr.S, bcopyinout.S, and
bcopy_page.S to arm/arm32 and remove port-local copies.
2001-03-04 08:25:38 +00:00
matt
4679f9115c Convert some vm_size_t to vsize_t/psize_t. Change vaddr_t to paddr_t
where appropriate.
2001-03-04 07:30:19 +00:00
matt
f97f725bc9 Remove OFW hooks. Allow ports to add there own hooks via
ARM_EXTRA_DB_COMMANDS.
2001-03-04 05:40:03 +00:00
matt
4a5fdbf390 disksubr*.c are now shared. Start moving files from ../../arm32/arm32 2001-03-04 05:17:41 +00:00
matt
8655276e9a Move these from arm32/arm32 2001-03-04 05:11:41 +00:00
matt
4e6f220e99 Move these from arm32/arm32 2001-03-04 05:08:43 +00:00
matt
7d33ba27bf Move from arm32/arm32. s/vm_offset_t/vaddr_t/g 2001-03-04 05:08:09 +00:00
matt
79efd2285e These are same between arm32 & arm26. 2001-03-04 05:06:51 +00:00
matt
6755bfc8c1 s/vm_offset_t/vaddr_t/g 2001-03-04 04:15:58 +00:00
matt
7af4578cfc s/vm_offset_t/vaddr_t/g 2001-03-04 03:40:58 +00:00
bjh21
40333cf8fd Kill cpu_host and cpu_flags: they weren't having any practical effect. 2001-03-03 21:34:00 +00:00
bjh21
c32dba2092 Remove support for /dev/cpu*. This code has never done anything useful anyway. 2001-03-03 18:04:34 +00:00
bjh21
2a91058dd3 Remove spurious declaration of initialise_fpe(). 2001-03-03 17:49:58 +00:00
bjh21
2029721f3f NCPU will always be 1 if this file is being compiled at all, so don't bother
checking it.
2001-03-03 17:46:31 +00:00
bjh21
f578e88d0f Re-design identify_arm_cpu() to use a table of CPU types. This also makes
it easy for it to identify lots of CPU types, so have it do that too.
2001-03-03 17:09:25 +00:00
bjh21
5b15e666a1 ARM7100 -> ARM710A, following information from reinoud. 2001-03-01 23:45:56 +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
b4e78a4e60 Large overhaul for arm26 compatibility. This file is now even more of a mess
than it was.
2001-02-28 00:17:18 +00:00
bjh21
748ec610af opt_armfpe.h isn't arm32-specific any more. 2001-02-27 17:57:55 +00:00
bjh21
4b483d7606 Move "options ARMFPE" to files.arm, so generic ARM files can use it. 2001-02-27 17:56:31 +00:00
bjh21
088fe8f336 <arm/armreg.h> isn't arm26-specific any more. 2001-02-27 17:42:16 +00:00
bjh21
22260fa7fd Tidy up ARM7500 restrictions.
Also insist on precisely one of PROG32 and PROG26's being turned on.
2001-02-27 17:35:49 +00:00
reinoud
5b52fda1e6 cpu_number() macro has no args 2001-02-27 16:00:27 +00:00
reinoud
639dd9ffea Rollback of patch ... there was a bug in the proc.h 2001-02-27 15:39:57 +00:00
bjh21
807ebaec96 Stop using #ifdef arm32, since future NetBSD/arm ports are likely
not to provide it.

For things which are historical oddities of NetBSD/arm26, use #ifndef arm26.
For things which are inherently dependent on the size of program space in use,
use #ifdef PROG32 (and include opt_progmode.h).
2001-02-27 14:11:30 +00:00
bjh21
00b8524181 KNF 2001-02-27 14:00:24 +00:00
reinoud
38fb2a9227 Due to changes in ../sys/proc.h ``cpu_wait(p)'' is now a function due to the
prototype defined it in ... added it to arm/vm_machdep.c since all ARM machines
are still single processor anyway
2001-02-27 00:16:48 +00:00
bjh21
6584a7e79d This file doesn't need <machine/cpus.h>. 2001-02-26 16:33:10 +00:00
bjh21
5a5316cafe Nothing in this file needs <sys/param.h>, so stop including it. 2001-02-26 16:04:22 +00:00
bjh21
51a131dac3 The cpu_local and cpu_cd elements of struct _cpu were utterly unused. Remove
them.
2001-02-26 14:52:11 +00:00
bjh21
2ff5d800ab Fix up indentation, and remove a spurious set of braces. Should be no
semantic change from the last revision.
2001-02-26 14:01:58 +00:00
bjh21
03737e3e40 fpe-sp, and the associated "options FPE", was deleted in 1997. G/C references
to it.
2001-02-26 13:45:07 +00:00
reinoud
bb5b27eed9 Putting the param.h back into the arm32 resp. hpcarm include directories 2001-02-26 00:08:41 +00:00
bjh21
3fb058011a Move arm32 ports over to using <arm/armreg.h>, so <cpu.h> mostly contains
NetBSD-specific definitions.

This also entails some changes to the way CPU identification is done.  I hope
I've got it right.
2001-02-25 21:31:13 +00:00
bjh21
bdc357ddfa Guess a CPU ID for the ARM700 as well. 2001-02-25 19:10:28 +00:00
bjh21
c7c73cbe90 The cpu_type element of struct _cpu was only used in identify_arm_cpu().
Make it a local variable.
2001-02-25 18:40:26 +00:00
bjh21
9dcb8e583c Add possible CPU ID for ARM7500 (based on arm/cpu.h).
Add macros to distinguish the three formats of CPU ID.
2001-02-25 17:49:34 +00:00
bjh21
740551d1d1 Add PROG32 and PROG26 options.
These are intended to indicate what size of program space is in use, and hence
how to get at the PSR bits.  They're currently set automatically by the CPU
type options.
2001-02-25 17:23:11 +00:00
bjh21
716d92bdc2 COPY_SIGCODE is never referenced in the kernel, and the comment attached to it
is out of date. Assume it's obsolete and g/c it.
2001-02-25 17:04:54 +00:00
bjh21
6f2aa0d0ba Allow "cpu" to have children. In the long term, this may be the best way to
handle co-processors.  In the short term, it's a necessary hack to get arm26
kernels to configure.
2001-02-25 15:31:39 +00:00
reinoud
142f62c206 Moved the mainbus files to the arm/conf/file.arm from the arm32 and the
hpcarm/conf/files.hpcarm
2001-02-24 21:43:01 +00:00
reinoud
086a93939c Part 2 of merge.... the dissapearance of mainbus from arm32 and hpcarm;
these parts were a 100% the same and i've included the extensions made by
hpcarm in the tree.
Checked for occurence of MD parts; none found.
2001-02-24 19:38:01 +00:00
toshii
f46f7e3e62 Make hpcarm kernel compile again. 2001-02-24 09:58:43 +00:00
ichiro
d3ce44c170 some include files added newly write into Makefile. 2001-02-24 07:24:36 +00:00
bjh21
6b7ad3aa3e __HAVE_NWSCONS and __HAVE_DEVICE_REGISTER are MACHINE-dependent. 2001-02-23 22:02:43 +00:00
reinoud
c1f753f9b4 Big patch for merging common include files of the new hpcarm tree and the old arm32
tree into the new arm substree. All moved files are relinked with a stub that included
the file from the new location; this might be done better later.
2001-02-23 21:23:45 +00:00
bjh21
352dfb6c36 Update to support VFP formats. Also a half-hearted attempt at armeb support.
Note that I'm using __VFP_FP__ to indicate compilation with VFP-format
floating-point data.  There doesn't (currently) seem to be a standard define
for this purpose.  __VFP_FP__ was suggested by Richard Earnshaw.
2001-02-21 17:43:50 +00:00
bjh21
887895c344 Add CPU_ID_CPU_MASK. Different, but (I hope) more useful definition than
arm32 currently uses.
2001-02-21 17:41:58 +00:00
bjh21
32a800e5c0 Install <arm/endian_machdep.h>. 2001-02-17 14:57:08 +00:00
bjh21
8b601afaf3 Re-introduce <arm/endian_machdep.h>, this time using GCC's idea of the target
endianness.
2001-02-17 14:55:44 +00:00
bjh21
9b6de1da90 Move cpu_coredump() from arm32/arm32/vm_machdep.c to arm/arm/vm_machdep_arm.c.
Also ANSIfy it and use it on arm26.
2001-02-13 22:54:25 +00:00
simonb
e07c392eed Fix typo in header filename. 2001-02-13 14:11:30 +00:00
bjh21
284047a2b2 Move sendsig() and sys___sigreturn14() from arm26/arm26/vm_machdep.c and
arm32/arm32/machdep.c into arm/arm/sig_machdep.c, merging and ANSIfying in
the process.

The code is based on the arm32 version, so I don't think anything should break
there.
2001-02-13 13:19:52 +00:00
bjh21
a4e55e0f13 Shared ARM ptrace(2) implementation. Mostly the same as the arm32
version, but with some #ifdefs for arm26.

Also, don't define PT_STEP, since we don't implement it.  This should
reduce code size a little.
2001-02-11 17:03:04 +00:00
bjh21
9826a76781 Common <arm/reg.h> (and hence common struct reg) for ARM.
This is theoretically backward-incompatible on arm26, but GDB doesn't work there
yet anyway.
2001-02-11 14:51:55 +00:00
bjh21
1178bf4219 Initial potentially sharable <arm/armreg.h>. Used by all arm26 code. 2001-01-22 22:10:39 +00:00
bjh21
8805bd8b56 Unify arm26 and arm32 trapframe structures. The unified trapframe is the same
shape as the old arm32 one, but there are a few #defines to keep arm26 code
happy.  Anything that depends on the precise shape of the trapframe,
and especially on being able to treat it as an array of registers, has been
updated.
2001-01-20 17:14:19 +00:00
bjh21
2c20803b63 Add extra constants defined by ARM ELF revision B01. 2001-01-18 23:50:50 +00:00
bjh21
48f4b0ea72 Tidy up some comments. 2001-01-18 21:54:28 +00:00
bjh21
2c89ce7e74 Add <arm/frame.h>, for shared stack frame structures. Currently, only sigframes
are common.
2001-01-18 21:48:25 +00:00
bjh21
6b017eaa04 Add ARMv5 instructions: BLX, CLZ, BKPT, MCR2, MRC2, CDP2, LDC2, STC2.
Also correct a comment.
2001-01-18 21:41:09 +00:00
bjh21
e1e042445c A bit of extra discussion based on the latest ARM ARM. 2001-01-18 20:42:03 +00:00
bjh21
8df387473f Move <machine/signal.h> into shared directory. 2001-01-13 17:02:36 +00:00
bjh21
70d40a123c Make db_disasm_interface const. 2001-01-13 16:53:27 +00:00
bjh21
f52101bc64 Make all the disasm_interface_t arguments const, thus allowing us to
allocate them statically in the text segment.  Do so for disassemble().
2001-01-13 16:52:01 +00:00
bjh21
792b8500bc ANSIfy, un-__Pify, and in the case of disassem.c, add an RCSID. 2001-01-13 16:44:25 +00:00
bjh21
78c0ba909e Separate out sigcode into its own file, since it's shared by arm26 and arm32. 2001-01-13 00:06:50 +00:00
bjh21
e4cacac41c Storing four-byte pointers to two-character strings is silly. All the
auxilliary tables used by the disassembler are now char[][].

The main table still uses pointers because:
 - the longest instruction name, "imbrange" is >7 characters long, which would
   make the field length wasteful.
 - GCC spots that most of the formats are shared and makes them pointers to the
   same string, so turning them into char[8] would be counter-productive.
2001-01-12 23:33:07 +00:00
bjh21
ca0f6df99d Move all the nasty big tables into the text segment. This isn't much use in
the kernel at present, but maybe one day when we have a ROMmable kernel...
2001-01-12 22:44:08 +00:00
bjh21
cdae07e857 Correct comments (the code does support LDF, STF, LDC, STC).
Support BX (for completeness).
Correct spelling of SWP.
2001-01-12 22:19:15 +00:00
bjh21
e9bb2a7916 Correct immediate constant handling: bits [11:8] are a rotation, not a shift.
Also add support for the "P" modifier to TEQ, TST, CMP and CMN, and don't
bother displaying the "S" bit for these instructions.

Together, these correct the disassembly of 0xe33ff3c2 (an instruction in
arm26 irq_handler() from "teqs r15, #0x08000000" to "teqp r15, 0x08000003".
2001-01-12 21:56:18 +00:00
bjh21
d6928b5422 Prototypes for disassemble_readword() and disassemble_printaddr(). 2001-01-12 21:35:48 +00:00
bjh21
a5ef6e1f81 Move db_disasm.c into sys/arch/arm/arm. Use arm26 version, since it should
generate smaller compiled code.
2001-01-12 21:31:51 +00:00
bjh21
a4047bf10c Move the generic ARM disassembler from arm32/arm32 to arm/arm. 2001-01-12 13:43:11 +00:00
bjh21
6fa98146d5 Start merging actual code in arm32 and arm26:
arm32/arm32/in_cksum_arm32.c -> arm/arm/in_cksum_arm.c

Also move specification of other checksum stuff to files.arm, even though we
use the MI code for that.
2001-01-11 23:27:26 +00:00
bjh21
5159a10d97 Share <machine/elf_machdep.h> between arm26 and arm32. 2001-01-11 22:28:06 +00:00
bjh21
dc037466f5 Install all the headers (arm32 does). 2001-01-11 21:05:03 +00:00
bjh21
1add2fd369 Remove <arm/endian_machdep.h>, since we might get a big-endian ARM port
some time.
2001-01-11 21:03:10 +00:00