Commit Graph

548 Commits

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