Commit Graph

533 Commits

Author SHA1 Message Date
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