Commit Graph

709 Commits

Author SHA1 Message Date
fredette
2b9b967cc2 Add a CPU_68010 macro. 2001-05-03 20:55:11 +00:00
fredette
166d9e1ede Add an EXTBL macro. 2001-05-03 20:53:44 +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
kleink
99054d7a6c Add definitions for C99 fastest minimum-width integer types. 2001-04-26 16:25:19 +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
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
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
leo
3aabea5c70 Remove '_KERNEL' conditionalizing. This break userland apps.
Noted by Steve Allan.
2001-04-09 05:35:32 +00:00
tsutsui
06c28be1fe Install byte_swap.h on make includes. 2001-04-06 14:11:20 +00:00
is
3a27b85296 This only works with data registers. 2001-04-04 19:53:05 +00:00
leo
a22b0cbf4d Optimize bswap16() and bswap32() functions to inline assembly. 2001-03-30 20:00:05 +00:00
fredette
3eb7866aaa Added support for the 68010 bus error frame. 2001-03-28 23:08:15 +00:00
is
8931aeb7a9 Don't use the frames' provided EA yet; something is wrong. 2001-03-01 22:01:52 +00:00
chs
c5030d24f4 rename round() to fpu_round() to avoid a name conflict with
the "round" assembly function in FPSP when building with ELF.
2001-02-18 20:05:58 +00:00
chs
59674580ab missed an underscore in previous. 2001-02-07 23:30:27 +00:00
chs
aaf5efe492 fix previous to work with a.out as well. 2001-02-07 06:13:21 +00:00
chs
f889fd6ff9 remove signal trampoline stuff since it'll never be used in the kernel.
clean up the ELF support.
2001-02-05 12:37:33 +00:00
chs
5f244b1055 conditionalize the ddb hook on DDB && DEBUG_FPE rather than DDB && DEBUG,
since that's the condition under which we include the header file that
allows it to compile.
2001-02-05 12:35:13 +00:00
jmc
ece49e13a9 Back out last change. m68k.h is now in cpu.h (which got updated in between
my noticing this problem here on a sun3).
2001-02-04 23:53:31 +00:00
jmc
36f1b05b1f Include m68k/m68k.h to pickup definition for fputype. 2001-02-04 10:13:08 +00:00
jdolecek
d5d431e8ae make db_[e]regs[] const 2001-01-18 10:54:27 +00:00
scw
7aaf4adfb6 const'ify the 1st parameter of db_var_short() to account for the
recent "struct db_variable" change.
2001-01-18 09:49:02 +00:00
is
b90c4c82d9 Make this actually sort-of-work for 68060 w. disabled FPU (tested), 68LC060,
and I suspect, 68LC040 and 68040V machines. Method used:

1. do NOT use the frames effective address at all
2. do NOT use the frames next instruction address, but
3. restore the "this instruction" pc into the pc field of the frame at the
   beginning of the emulation, if we got a frame format 4.

TODO:
A. find the bug in the usage of the frame EA, and revert to using it.
B. find the bug in the usage of the frames next instruction address, and
   consider whether it's worthwhile to use it.
C. make the emulation complete.... FEXP FETOM1, and the trigonometric functions
   are missing.
2001-01-05 19:54:30 +00:00
takemura
c5fd828440 replace 'long long' with int64_t to compile stand alone program with
compiler other than GCC.
2001-01-03 10:08:55 +00:00
itojun
efa2b7073c make mbstate_t bigger (32 -> 128 bytes).
XXX if you have libc after citrus locale import, please recompile libc,
and your applications that use mbstate_t (rather rare).  really sorry
for the mess.
2000-12-26 10:35:28 +00:00
jdolecek
e9e91a0fb5 split off thread specific stuff from struct sigacts to struct sigctx, leaving
only signal handler array sharable between threads
move other random signal stuff from struct proc to struct sigctx

This addresses kern/10981 by Matthew Orgass.
2000-12-22 22:58:52 +00:00
itojun
823498203f populate _BSD_MBSTATE_T_. add warning regarding to rune_t. 2000-12-21 06:03:47 +00:00
scw
4350a7f2b7 Unification of the m68k syscall() function. 2000-12-19 21:09:54 +00:00
kleink
7ed30e9594 This code wasn't written in Utah or Berkeley. 2000-12-13 09:41:57 +00:00
scw
b875ed466e Some micro-optimisations to _spl() and _splraise(), saving one instruction
in the former, and three to seven in the latter.
2000-12-11 20:05:33 +00:00
kleink
9cee15bd12 In the ELF toolchain, use __mcount instead of mcount. 2000-12-07 10:14:08 +00:00
is
7223efb0b9 Make this new-GAS ready. Code by Steve Woodford. 2000-12-06 21:31:05 +00:00
scw
71ca01981e Prepare for the m68k ELF transition:
o Add register prefixes for the benefit of gas.new
 o Wrap global symbols in the m68k/asm.h macros
 o Fix `#' comments so the source can be run through the C pre-processor
2000-11-30 21:00:51 +00:00
jdolecek
c969c9196c make this usable also standalone 2000-11-26 12:02:16 +00:00
jdolecek
17a9fd0da5 split m68k SunOS and SVR4-specific sigcode.s code to sunos_sigcode.s
and svr4_sigcode.s respectively
adjust individual m68k port's locore.s to include new sigcode files if
appropriate
2000-11-26 11:47:23 +00:00
leo
f4420dcb03 Revert previous change. I cannot see why this ever worked... Pointed out
by Steve Woodford.
2000-11-22 12:39:03 +00:00
leo
c9b9b0253d %%<reg> -> %<reg> 2000-10-19 12:15:53 +00:00
is
4e2cf3688b fpu_emulate.h:
the fmovecr constant table has the internal format
  of the constants. So, when changing the mantissa size by a
  non-multiple of 32 bits, we'd have to change this table, too. As
  all other code changes just chopped of the least significand
  32bit word of the mantissa, we correct the mantissa size instead
  to (115 - 32 == 83) bits.
fpu_fmovecr.c:
  put a safety belt in, to catch the next person who doesn't know this.
fpu_int.c:
  in one place, the reduction of the mantissa size was overlooked.
fpu_log.c:
  as the most significand 32bit word of the mantissa was changed back to the
  old format, change back the table indexing code, too.

This should fix PR 11045.
2000-09-22 19:47:58 +00:00
minoura
575a64a7af Correct comments. 2000-09-19 03:17:59 +00:00
scw
0dc48bfa8f Add a /t' modifier to the m68k ddb's trace' command. This enables
one to perform a kernel traceback of any (non-swapped-out) process in
the system. For example, to show the traceback for PID 178:

  db> t/t 0t178
  trace: pid 178 at 0xabcd68
  _mi_switch(0x109f60) + 164
  ...
  db>
2000-08-10 08:02:35 +00:00
tshiozak
51a53de0d5 Preparation for the future introduction of multibyte locale.
- MB_LEN_MAX is increased to 32.
 - To ensure binary compatibility for old executables
   under multibyte locale, versioned setlocale is added.
 - __mb_len_cur definision is added in setlocale.c
   and enable it in stdlib.h .
   It is also important for multibyte locale stuffs,
   but I just forgot.
2000-08-08 22:31:13 +00:00
itojun
d738f90fd7 raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory.  MHLEN is too small
  already (less than 80) and there are chances for unwanted packet loss due
  to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
  (even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
  extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.
2000-06-30 17:55:11 +00:00
mrg
28d898391b remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 08:10:45 +00:00
kleink
bb2ed0f487 G/c _BSD_INTPTR_T_ and _BSD_UINTPTR_T_. 2000-06-27 05:53:22 +00:00
kleink
47b5c5e3b1 Resolve some formatting nits; add __intptr_t and __uintptr_t. 2000-06-27 04:58:51 +00:00
kleink
e695f72a2e Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
2000-06-26 15:42:16 +00:00
mrg
4c698e84f6 <vm/vm_param.h> -> <uvm/uvm_param.h> 2000-06-26 14:58:58 +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
kleink
133ea38323 Add a WEAK_ALIAS() macro. 2000-06-23 12:18:45 +00:00
veego
4fc3cd3c3d We don't need my name in this file. 2000-06-14 16:11:24 +00:00
minoura
d4d1b4cce4 Argument modreg of fpu_decode_ea() is actually an opecode.
That bug prevented awk(1) to work.
2000-06-13 12:28:13 +00:00
jhawk
3ac3c9b124 Oops, omitted the rename from last.
Function in this file is db_stack_trace_print(),
not db_stack_trace_cmd().
2000-05-27 16:44:41 +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
jhawk
8e44b27348 Rename the machine-specific stack trace printing functions
from db_stack_trace_cmd() to db_stack_trace_print(),
and add an additional argument, a function pointer for an
output routine (i.e. printf() or db_printf()).

Add db_stack_trace_cmd() in db_command.[ch], calling
db_stack_trace_print() with db_printf() as the printer.

Move count==-1 special handling from db_stack_trace_print() [nee
db_stack_trace_cmd()] to db_stack_trace_cmd() [nascent here].

Again, I'm unable to test compilation on all affected platforms,
so advance apologies for potential brokenness.
2000-05-26 03:34:24 +00:00
minoura
6943d5dd19 defopt FPSP. 2000-05-14 14:13:53 +00:00
thorpej
39f8e55cfc On the m68k, the most efficient type for __cpu_simple_lock_t is
an unsigned char, since that is what the `tas' instruction uses.

While I'm here, implement the __cpu_simple_lock family of routines.
Why?  One, because they're easy.  Two, so Steve can get master/slave
MVME systems talking across the backplane.  :-)
2000-05-02 05:17:45 +00:00
thorpej
855b79db92 Let each platform typedef the new __cpu_simple_lock_t, which should
be the most efficient type used for the atomic operations in the
simplelock structure, and should also be __volatile.
2000-05-02 04:41:04 +00:00
thorpej
f51470a514 Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED.  These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case).  Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
2000-04-29 03:31:45 +00:00
scw
8e95e817ec Move <machine/cpu.h> above <m68k/*.h> so we get M680x0 #defines
for those m68k ports which define them in the former file.
2000-04-15 20:31:27 +00:00
is
97df1401a1 Move original Motorola files to the "dist" subdirectory, in response
to PR 9626 by Kris Shannon.
2000-04-14 20:24:29 +00:00
jdolecek
cef3c93f82 Switch to MI ns_cksum.c - the MD ns_cksum.c is equivalent to it
(modulo some u_intX_t vs. u_char type usage). In particular, the
MD version didn't contain any MD code.
2000-04-06 13:37:49 +00:00
is
1edce49e66 Bug fixes for 68020only or 68030only machines, by Aymeric Vincent. 2000-04-05 19:38:33 +00:00
minoura
78b105698a Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.
2000-04-02 15:35:47 +00:00
kleink
230876cf26 Merge parts of chs-ubc2 into the trunk:
* Remove the casts to vaddr_t from the round_page() and trunc_page() macros to
  make them type-generic, which is necessary i.e. to operate on file offsets
  without truncating them.
* In due course, cast pointer arguments to these macros to an appropriate
  integral type (paddr_t, vaddr_t).

Originally done by Chuck Silvers, updated by myself.
2000-03-26 20:42:21 +00:00
tron
e86957458a Install "machineendian_machdep.h". 2000-03-17 22:36:31 +00:00
mycroft
9e21b6555a In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
2000-03-17 00:09:18 +00:00
mycroft
02905321b2 Foolish consistency. Mainly, always use underscores and sys/endian.h. 2000-03-16 15:09:34 +00:00
soren
95054da1a1 Fix doubled 'the's in comments. 2000-03-13 23:52:25 +00:00
kleink
a9ebf7bb8c Define ISO C99 (unsigned) long long (min, max) symbols. 2000-03-07 19:31:49 +00:00
thorpej
fd8c03cf44 Allow arch-specific code to specify in4_cksum() like it can specify
in_cksum().
2000-02-14 21:42:50 +00:00
kleink
36e6bc645e Improve namespace test macros a bit. 2000-02-05 14:04:36 +00:00
kleink
82464e46d6 Add a C99-style va_copy macro. 2000-02-03 16:16:06 +00:00
tsutsui
11c8f56d48 Revert STRIPPROG -> STRIP 2000-02-01 05:25:24 +00:00
tsutsui
e61f177ab1 STRIP -> STRIPPROG 2000-01-19 16:29:54 +00:00
aymeric
20a96dc688 make DCIAS work for 020-only / 030-only kernels 2000-01-15 17:08:03 +00:00
kleink
693059feda const -> __const and include <sys/cdefs.h> earlier; fixes PR lib/9052
by Takahiro Kambe.
2000-01-04 14:20:05 +00:00
kleink
11e6c54cfc C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
1999-12-23 10:15:05 +00:00
scottr
8759c4e95e Add m68k_seg_offset() and m68k_page_offset() to complement m68k_trunc_seg()
m68k_trunc_page(), respectively.  Motivated primarily by a desire for
code clarity and symmetry.
1999-12-12 07:45:46 +00:00
ragge
0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00
minoura
13d97a81a4 pmap_enter() change. 1999-11-18 15:19:26 +00:00
thorpej
f16bb11bf0 Add register prefixes. 1999-11-10 23:17:21 +00:00
thorpej
c718a7c548 Add register prefixes. 1999-11-10 00:13:59 +00:00
thorpej
ae13d86f18 Add register prefixes. 1999-11-10 00:01:32 +00:00
chs
f4dbce1e9a in copy{in,out,}str(), return an error if maxlen == 0. 1999-11-07 17:31:37 +00:00
thorpej
7e538afd49 Add register prefixes. 1999-11-06 17:42:31 +00:00
he
5d30149598 Provide multiple inclusion protection. 1999-11-03 00:47:21 +00:00
frueauf
4f3fdd1096 fix typo: s/EM_68k/EM_68K/ 1999-10-30 22:56:29 +00:00
thorpej
3b435a7396 Add register prefixes. 1999-10-25 23:48:07 +00:00
kleink
522cbf0248 Update to match new SVR4-style definition names in <sys/exec_elf.h>. 1999-10-25 13:55:06 +00:00
jdolecek
7f589dba84 rename the MD Debugger() to cpu_Debugger()
add MI Debugger() which switches to console if wscons is used prior
to calling cpu_Debugger()
1999-10-12 17:08:56 +00:00
itohy
a5c3c08c66 Add missing TBIA() definition for 68030-only machine. 1999-09-27 04:43:40 +00:00
itohy
694f6286e8 Make it compile again. 1999-09-27 04:18:45 +00:00
is
490ccb0747 vm_offset_t -> vaddr_t or paddr_t, as appropriate. 1999-09-25 21:19:48 +00:00
is
75321f3ae6 vm_offset_t -> db_addr_t (mostly), v_addr_t (one place). 1999-09-25 21:11:55 +00:00
is
c861d2e5d4 Replace leftover vm_offset_t's by paddr_t or vaddr_t, as appropriate.
Rename variables/parameters from "va" to "pa" where they are a paddr_t.
Correct DCIAS to take a paddr_t (instead of vaddr_t).
1999-09-25 19:27:35 +00:00
frueauf
aa39b12fb0 add missing #include <compat/svr4/svr4_lwp.h>. Ok'd by Klaus Klein. 1999-09-23 16:37:04 +00:00
minoura
42b87a3a7d #ifndef _M68K_CACHEOPS_H_ - #endif. 1999-09-23 15:10:18 +00:00
simonb
3c185af5fd Include <sys/endian.h> after defining whether where are little- or
big-endian.  i386, pc532 and vax still include <machine/byte_swap.h>
and define macros for the {n,h}to{h,n}*() functions.  mips also
defines some endian-independent assembly-code aliases for unaligned
memory accesses.
1999-08-21 05:53:50 +00:00
simonb
06a92524c2 Include <sys/bswap.h> for function prototypes. i386, pc532 and vax
still include <machine/byte_swap.h> and define macros for some of
the bswap*() functions.
1999-08-21 05:39:51 +00:00
simonb
299578ebd5 Spell "privilege" correctly (correct spelling from Jonathan Stone). 1999-08-16 02:59:22 +00:00
thorpej
eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
minoura
4901b4afde Use of pointer to register variables. 1999-08-05 14:57:38 +00:00
thorpej
b2781586c4 Normalize include paths. 1999-07-09 02:32:28 +00:00
thorpej
3ebbe095e0 Change the pmap_extract() interface to:
boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.
1999-07-08 18:05:21 +00:00
scottr
3c26ad58a1 Someone forgot to tell ddb that SWAP is not PEA. 1999-06-09 07:53:22 +00:00
briggs
59422960ea PR 7220 from Ken Nakata:
I've fixed most (not all) m68k FPE bugs that give bogus
calculation results, esp. fsqrt instruction.  Also, the internal FP
representation has been reduced from 115-bit mantissa to 67-bit
mantissa which reduced the required mantissa operation roughly by one
fourth.  I've done an extensive (though not exhaustive - it's
impossible!) test on the internal routines by feeding them randomly
generated FP numbers, and found that the new code is more precise than
MC68040 FPU (it seems to have a rounding bug).

[ Only change was to keep fpu_calcea.c's name instead of renaming to
  fpu_ea.c in Ken's patch.  --akb ]
1999-05-30 20:17:48 +00:00
christos
62a2dac0d8 whitespace... 1999-05-04 13:57:19 +00:00
christos
c596c324e3 Define __builtin_*() for lint 1999-05-03 16:30:31 +00:00
kleink
d34d0ccf51 * Change multiple inclusion protection symbols to use the standard naming
convention (not that it should matter for assembly).
* Provide an additional set of _C_LABEL() macros for ELF.
* Provide a PIC_PLT() macro for the benefit of ELF.
1999-05-01 19:20:52 +00:00
kleink
69845becd3 Use _C_LABEL() for [fs]ubail symbols. 1999-05-01 19:17:06 +00:00
christos
bd3e05dcd4 Add sunos_sigcode, sunos_esigcode trampoline that uses trap 1 1999-04-29 16:20:44 +00:00
kleink
ed74932033 Add COMPAT_SVR4 for m68k. 1999-04-19 21:22:56 +00:00
kleink
36e329cd5b Define FP as a synonym for A6. 1999-04-19 21:19:08 +00:00
kleink
6a9c669828 Move linux_reenter_syscall() to a common location and rename it to
reenter_syscall() - it's going to be shared with COMPAT_SVR4 and soon be
used by native code.
1999-04-19 20:58:37 +00:00
minoura
aae9b1588b Typo fix. 1999-04-18 00:36:36 +00:00
kleink
a3417847c3 * Declaration mismatch: len is a size_t, not a pointer to one.
* Userlevel header: remove argument names from declaration, use
__{BEGIN,END}_DECLS to ensure correct linkage.
1999-04-13 16:52:37 +00:00
scw
e20f288fe5 Add a check to my last 'fix' which ensures the fault really
did happen in kernel mode.
1999-04-05 17:17:04 +00:00
scw
f7a019c61a Fix a problem I noticed a while back but had too many other things
in the air to deal with it.
Basically, following a kernel fault (eg. dereferencing a NULL pointer
in kernel mode) a DDB 'trace' did not show the function where the
fault occurred. For example:

	db> trace
	_Debugger()
	_panic()
	_trap()
	faultstkadj()
	_pool_drain()
	_uvm_pageout()
	_start_pagedaemon()
	_proc_trampoline()
	db>

The 'faultstkadj()' line here is bogus. It is shown because the return
address to 'trap()' happens to point there, and since faultstkadj() has
no stack frame, DDB assumes it was the faulting function. In this example,
the _real_ function was pool_reclaim(), but you would have to look at
the program counter at the time of the fault to figure that one out.

This fix makes the trace command do the dirty work for you by grubbing
around in 'trap()'s argument list to find the *real* PC value at the
time of the fault, replacing the 'faultstkadj()' line with the real
function's name.
1999-04-04 11:33:02 +00:00
minoura
e58c614810 CADDR1 and CADDR2 should not be used here. 1999-03-31 14:18:49 +00:00
mycroft
9c6b797796 Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.
1999-03-26 23:41:25 +00:00
mrg
7b93dd1117 remove opt_uvm.h 1999-03-25 00:41:46 +00:00
mrg
d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
thorpej
a77ccfe460 Garbage-collect. 1999-03-20 01:40:25 +00:00
perry
d446fb449c exterminate ovbcopy. patches provided by Erik Bertelsen, pr-7145 1999-03-12 22:42:30 +00:00
is
e6da344c31 Update. 1999-02-22 22:07:37 +00:00
is
74ad0ecb0d Generate the MIT-assembler-format files statically. They nearly never change,
and if so, should be generated via the new Makefile and committed, too.
1999-02-22 21:25:05 +00:00
is
2c7fa23c38 Fix Copyright dates 1999-02-16 23:34:10 +00:00
is
dc068e0d1f Assign my files to The NetBSD Foundation, Inc. 1999-02-16 22:46:55 +00:00
hubertf
dcd5f59c0a RCS ID police 1999-02-15 04:14:54 +00:00
is
b0f697496e Provide a minimal instruction/data cache synchronization C binding.
(The function has always been in the kernels as special trap #12).
In response to PR 4951 by Hauke Fath.
1999-02-09 22:32:33 +00:00
is
b85f4a5e4d Remove redundant code (leftover from editing). 1999-01-30 21:54:49 +00:00
mycroft
897a8a7f29 Mark [hn]to[nh][ls]() with __const__, so they are subject to CSE. 1999-01-24 12:55:01 +00:00
mycroft
ec253b6315 Use __builtin_next_arg(). Fixed PR 6862. 1999-01-22 14:14:32 +00:00
thorpej
cd3a2c5a2a Eliminate use of CPP symbol "mc68020". 1999-01-15 23:15:50 +00:00
bouyer
dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
itohy
b50a4adc36 Eliminate `void *' arithmetic. 1999-01-09 19:23:26 +00:00
thorpej
da572a137f Argh, fix the ANSI CPP version of the a.out WARN_REFERENCES(). 1998-12-02 21:16:46 +00:00
thorpej
a6f7e0c05a Implement WARN_REFERENCES(). 1998-12-02 00:58:42 +00:00
perry
0c20c72cf9 (mostly) fix kernel tags support. from Frederick Bruckman in pr-6445. 1998-11-15 20:36:30 +00:00
is
c6457000db Fix obvious typo in DEBUG code 1998-10-25 21:58:25 +00:00
is
8caffffa3e Activate cleandir (and distclean), as suggested in PR 6244 by
Frederick Bruckman.
1998-10-14 20:45:43 +00:00
scottr
8c9bf4e881 Use the size field to distinguish between ADDX and ADDA. Fixes a problem
pointed out by Paul Goyette.
1998-10-07 06:08:47 +00:00
scottr
651280426e Fix a problem pointed out by Paul Goyette: print_reglist() forgets that
it had a range of registers to print if A7 is among them.
1998-10-07 05:27:13 +00:00
thorpej
ec897ee047 Fix a problem reported by Michael Hitch. Basically, our libc relies on the
non-standard way of invoking sigreturn, specifically a side-effect that I
overlooked.  Thus, longjmp's return value was getting clobbered.

Sigh, so burn trap #3 just as sigreturn.

XXX We need an SVR4-style {get,set}context(2) to avoid wasting new
XXX trap vectors in the future.
1998-10-05 00:00:17 +00:00
thorpej
c1e5866bbe Fix a typo in a comment. 1998-10-04 23:56:17 +00:00
scw
acce9b3b1b Make this compile again when DEBUG is defined. 1998-10-03 21:58:52 +00:00
thorpej
ab915f7483 Oops, missing immediate qualifier, pointed out by Chas Williams. 1998-10-02 02:02:46 +00:00
thorpej
9e2b536bef Update for signal changes. 1998-10-01 20:41:29 +00:00
thorpej
586b0b3d1b Implement compat_13_sys_sigreturn(). 1998-10-01 01:03:56 +00:00
thorpej
ae2fcdc40a Oops, typo. 1998-10-01 00:22:02 +00:00
thorpej
c227be8efc Expect the syscall number to push to be in register d0. 1998-10-01 00:11:11 +00:00
thorpej
fa582abe7f Move trap #1 and trap #2 handlers here. Trap #1 handler now places
the cpmpat_13_sigreturn13 syscall number into d0 before calling the
sigreturn stub.
1998-09-30 23:52:32 +00:00
thorpej
db9f3cbe30 Use the new special syscall entry point, and specify SYS___sigreturn14.
Makes the sigcode grow by 4 bytes.

Note that we are no longer able to use the HP-UX breakpoint "sigcodetrap"
hack here, as a result.  This means that BSD programs can no longer be
debugged by HP-UX debuggers.  *Sniff*  Don't break my heart...
1998-09-30 22:38:17 +00:00
thorpej
f52431f2a3 Use the symbolic constant SYS_exit. 1998-09-30 22:26:28 +00:00
thorpej
1ce207046d Adapt to signal changes. 1998-09-30 21:55:02 +00:00
thorpej
aaec09ab91 Pull in <m68k/frame.h> if __M68K_SIGNAL_PRIVATE, for sigstate. 1998-09-30 21:52:45 +00:00
thorpej
f6ea7521d7 Put the sigstate and sigframe definitions in signal.h, protected by
__M68K_SIGNAL_PRIVATE.
1998-09-30 21:04:48 +00:00
mycroft
b7f86e40fa The smallest positive normalized number in extended precision is 2^-16383.
Underflow handling is different from i387.
1998-09-27 04:54:49 +00:00
thorpej
43f5b65e23 Define the new sigcontext structure. 1998-09-15 23:14:40 +00:00
thorpej
a034a22862 Need 21 longs for jmp_buf now, due to 128-bit signal mask (and use
of the sigcontext structure in the jmp_buf).
1998-09-15 23:06:41 +00:00
lukem
c9db84ecc9 distclean is a synonym for cleandir 1998-09-05 15:15:14 +00:00
leo
a27ab73aae Nuke vm_offset_t/vm_size_t. 1998-09-02 11:16:31 +00:00
mycroft
530fef3c8d Assign my copyrights to TNF. 1998-08-15 10:34:43 +00:00
mycroft
df9baf2311 Assign copyrights to TNF. 1998-08-15 03:51:30 +00:00
mycroft
6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
eeh
a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
kleink
546365a27e _POSIX_SOURCE -> _POSIX_C_SOURCE 1998-08-06 11:25:04 +00:00
mycroft
a24dbc8065 (Always) (practice) (safe) (macro expansion). 1998-07-31 15:07:41 +00:00
mycroft
da2e61d160 Delint. 1998-07-27 13:55:32 +00:00
is
2a78f6986c no semicolon, please 1998-07-25 09:24:17 +00:00
veego
1b46ebe1d9 Add elf_machdep.h to the INCS list. 1998-07-12 17:53:29 +00:00
thorpej
2aaf359b9f Add m68k relocation types. 1998-07-12 01:39:06 +00:00
thorpej
639cc899cf Basic elf_machdep.h for m68k; doesn't include relocations, yet. 1998-07-12 01:17:58 +00:00
jonathan
466e784ee1 defopt DDB. 1998-07-04 22:18:13 +00:00
kleink
1fbd0b3749 GC the unused `physadr' type, which was not able to hold a complete physical
address on 2 architectures anyhow.  Also, move the definition of the `label_t'
type inside _KERNEL protection, since it is specific to the in-kernel
setjmp()/longjmp() implementations.
1998-06-14 20:09:22 +00:00
cgd
651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
kleink
a97fc2f180 If any of _ANSI_SOURCE, _POSIX_C_SOURCE or _XOPEN_SOURCE are defined, don't
provide any identifiers other than sig_atomic_t.
1998-05-25 20:59:01 +00:00
is
7a0f63f982 Back out the defopt for M680?0. As pointed out to me, this breaks ports which
dont use the M680?0 the way Amiga, Atari, Mac68k, and X68k do. I must have
missed this in the past discussion about this project.
1998-05-24 19:32:34 +00:00
is
6a6812fd92 Move M680[2346]0 to opt_m68kcpu.h.
XXX Some explicit dependencies could be removed now from the individual
arch/$ARCH/conf/Makefile.$ARCH files, but this is still to be done.
1998-05-23 20:51:06 +00:00
dbj
4d7d7e4b9d Fixed stack trace address printing lossage when no symbols are available. 1998-05-14 10:15:44 +00:00
kleink
687ea7404c Fix some arithmetics lossage on typeless pointers. 1998-05-08 16:55:15 +00:00
thorpej
1686aca01d Pull in opt_gateway.h as appropriate. 1998-04-29 23:11:00 +00:00
kleink
a53c1863fe Provide definitions for intptr_t and uintptr_t, signed resp. unsigned integral
types large enough to hold any pointer.
1998-04-27 17:39:10 +00:00
scottr
0dfa8582c5 Make type explicit for egcs, from Erik Bertelsen in PR 5287.
Dump the register qualifier while we're here, as suggested in the PR.
1998-04-13 02:51:32 +00:00
thorpej
f766e521be In kcopy(), make sure we save and restore the old fault handler; kcopy()
is called from uiomove(), which may be in the code path of servicing
a non-fatal page fault caused by a copyin() or copyout().

Originally suggested by Steve Woodford.
1998-03-04 06:39:14 +00:00
veego
b6ca941200 Sync it with the i386 version so lint doesn't complains about an syntax
error for __warn_references.
1998-02-28 12:20:25 +00:00
thorpej
11490942aa Nuke memcpy() from here; it's in libkern. 1998-02-27 21:38:31 +00:00
scw
ef52501a4f Implement changes for UVM. 1998-02-22 11:33:10 +00:00
mycroft
065e369ab5 Remove random.s. 1998-02-22 08:35:33 +00:00
mycroft
8776736cea Move to libkern. 1998-02-22 08:34:35 +00:00
mycroft
d47ec6f1ae Include correct information for long doubles (mc68881 extended precision). 1998-02-18 10:24:45 +00:00
thorpej
2b06ffd5f9 Add support for UVM. 1998-02-15 21:19:34 +00:00
thorpej
8559f25d47 Implement kcopy(), like bcopy(), but aborts if a fault is encountered.
Required for UVM.
1998-02-15 21:18:45 +00:00
mycroft
b5c132e4d2 Prototype __flt_rounds() consistently. 1998-02-03 01:26:20 +00:00
is
b3fa451227 Amiga uses the common m68k/sig_machdep.c now. Also moved its definition from
the other 68k ports' files.${port} to arch/m68k/conf/files.m68k.
1998-02-01 21:23:24 +00:00
perry
6f57e5c573 multiple include protect machine/limits.h, fixes pr 4473 (from Mika Nystrom) 1998-01-09 22:23:44 +00:00