Commit Graph

706 Commits

Author SHA1 Message Date
darrenr
960df3c8d1 Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records.  The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
martin
a394980af5 Move (and unify) PMAP_DEBUG and FPU_EMULATE here - it is tested in
shared files.
2003-06-24 19:55:22 +00:00
martin
d505b18964 Make sure to include opt_foo.h if a defflag option FOO is used. 2003-06-23 11:00:59 +00:00
kleink
776138ea69 Rename <sys/float_ieee.h> to <sys/float_ieee754.h>, following libc's
convention for these.
2003-05-12 15:22:53 +00:00
thorpej
36da248c07 Back out the following chagne:
http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html

There were some side-effects that I didn't anticipate, and fixing them
is proving to be more difficult than I thought, do just eject for now.
Maybe one day we can look at this again.

Fixes PR kern/21517.
2003-05-10 21:10:23 +00:00
thorpej
b77900c3c2 Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM.  Machine-dependent code is
responsible for initializing them before main() is called.  Anything
that steals KVA must adjust these variables accordingly.

This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().

This also eliminates some kludges such as having to burn kernel_map
entries on space used by the kernel and stolen KVA.

This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code,
this giving MD code greater flexibility over the bounds of the managed
kernel virtual address space if a given port's specific platforms can
vary in this regard (this is especially true of the evb* ports).
2003-05-08 18:13:12 +00:00
scw
8c5c893bf7 Add a BKPT_ADDR() macro which gives MD code a chance to munge a
breakpoint address before it's used. Currently a no-op on all but sh5.

This is useful on sh5, for example, to mask off the instruction
type encoding in the bottom two address bits, and makes it possible
to do "db> break $rXX" instead of manually munging the address.
2003-04-29 17:06:03 +00:00
bjh21
4be7a2dcf3 Add a new feature-test macro, _NETBSD_SOURCE. If this is defined
by the application, all NetBSD interfaces are made visible, even
if some other feature-test macro (like _POSIX_C_SOURCE) is defined.
<sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE,
_POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve
existing behaviour.

This has two major advantages:
+ Programs that require non-POSIX facilities but define _POSIX_C_SOURCE
  can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS.
+ It makes most of the #ifs simpler, in that they're all now ORs of the
  various macros, rather than having checks for (!defined(_ANSI_SOURCE) ||
  !defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.

I've tried not to change the semantics of the headers in any case where
_NETBSD_SOURCE wasn't defined, but there were some places where the
current semantics were clearly mad, and retaining them was harder than
correcting them.  In particular, I've mostly normalised things so that
_ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE,
_XOPEN_SOURCE and _NETBSD_SOURCE in that order.

Tested by building for vax, encouraged by thorpej, and uncontested in
tech-userlevel for a week.
2003-04-28 23:16:11 +00:00
bjh21
2020a72f18 Use <sys/float_ieee.h> rather than <sys/math_ieee.h>, which doesn't exist. 2003-04-20 12:57:43 +00:00
christos
a2dfb1b570 PR/3012: Greg A. Woods: Write all float.h files [except the vax of course]
in terms of float_ieee.h
2003-04-19 23:05:28 +00:00
nathanw
ff28c51cc0 Make cpu_getmcontext() run the PC through ras_lookup() so that kernel
getcontext() plus userlevel setcontext() (as used in libpthread) respects
the atomicity of RAS regions.
2003-04-11 22:02:28 +00:00
thorpej
9a8042f242 Use PAGE_SIZE rather than NBPG. 2003-04-08 22:57:53 +00:00
thorpej
cc2c493bc4 Use PAGE_SIZE rather than NBPG. 2003-04-02 07:35:54 +00:00
thorpej
61f1732f44 Use PAGE_SIZE rather than NBPG. 2003-04-01 23:54:11 +00:00
kristerw
820df2464a Remove unneeded cast that prevents PC_REGS from being used as lvalue. 2003-03-30 02:03:12 +00:00
jklos
ba44f83888 Fix from Frederick Bruckman to get current kernels booting again. 2003-03-05 05:56:26 +00:00
tshiozak
31e2cbf0b5 add some ISO C 1995 I18N functions and types:
btowc, wctrans, towctrans, wcscoll, wcsxfrm, wctype_t and wctrans_t.
2003-03-02 22:18:11 +00:00
perry
1f4ad37fe3 "Utilize" has exactly the same meaning as "use," but it is more
difficult to read and understand. Most manuals of English style
therefore say that you should use "use".
2003-02-05 00:02:24 +00:00
kent
cd7d9faeaf Introduce BUS_DMA_NOCACHE, and bus_dmamem_map() of i386 supports it. 2003-01-28 01:07:51 +00:00
thorpej
5819507df3 Merge the nathanw_sa branch. 2003-01-19 16:30:13 +00:00
thorpej
a50e3bc1cb Merge the nathanw_sa branch. 2003-01-17 22:58:53 +00:00
kristerw
d320ba3418 Use "__asm __volatile" instead of "asm volatile" to pacify lint. 2002-12-29 14:40:35 +00:00
manu
4a06119a9d Pass the system call table to trace_enter() and ktrsys() so that it is
possible to use alternate system call tables. This is usefull for
displaying correctly the arguments in Mach binaries traces.

If NULL is given, then the regular systam call table for the process is used.
2002-12-21 16:23:56 +00:00
thorpej
e8cc3884de Rename __LDPGSZ to AOUT_LDPGSZ, to accurately reflect what it is. 2002-12-10 17:14:02 +00:00
lukem
0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
manu
d584ed9598 Add a realcode argument to trace_enter and ktrsyscall. realcode is the
original system call number, which can be negative for a Mach trap.
We cannot just replace code by realcode, because ktrsyscall uses it as
an index in the system call table, thus crashing the kernel when the
value is negative.
2002-11-15 20:06:00 +00:00
chs
f9c2080322 merge pmap.c for all 4k-page motorola-MMU (or compatible) m68k platforms. 2002-11-05 07:41:17 +00:00
chs
6348674004 merge pmap.h for all 4k-page motorola-MMU (or compatible) m68k platforms. 2002-11-03 19:56:27 +00:00
chs
95aae207e0 use a merged sys_machdep.c for all the motorola-MMU m68k platforms. 2002-11-03 02:29:37 +00:00
chs
42a0d8fa15 use "static __inline" instead of "extern __inline" so that we can
build without optimization.
2002-11-03 01:34:41 +00:00
chs
db6b326aab merge all the m68k copies of kgdb_machdep.c. 2002-11-03 01:11:58 +00:00
chs
bcfb5eee88 enhance the common m68k db_memrw.c to handle read-only kernel text
and switch all the motorola-MMU m68k platforms to use it.
2002-11-02 20:26:36 +00:00
chs
40e5b8394f finish conversion to the common m68k cacheops:
add support for machine-specific flavors of the ops for off-chip caches.
many thanks to Izumi Tsutsui for his help with this.
2002-11-02 20:03:04 +00:00
jdolecek
405d32e2db g/c local offsetof(), it's defined in libkern.h 2002-10-26 13:24:55 +00:00
chs
1c2419d28a merge the 12 copies of vm_machdep.c on the m68k platforms.
clean up some other stuff along the way, including:
 - use m68k/cacheops.*, remove duplicates from cpu.h.
 - centralize a few declarations in (all the copies of) cpu.h.
 - define M68K_VAC on platforms which have a VAC.
 - switch the sun platforms to the (now common) proc_trampoline().
 - do the phys_map thang on the sun platforms too, no reason not to.
2002-10-20 02:37:21 +00:00
chs
cb76676a56 merge pte.h for m68k w/ motorola or compatible MMU
(only 4k-page platforms so far).
2002-10-14 05:18:45 +00:00
wiz
b1c7ac0e6d "definitions" has lots of 'i's, but that's not reason to leave one out. 2002-09-29 23:23:56 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
simonb
63096043b3 Use "#define\t" instead of "#define ". 2002-09-22 08:30:56 +00:00
gmcgarry
dca80f08fd Add __HAVE_MD_RUNQUEUE flag for MD code to override MI run queue primitives. 2002-09-22 04:11:32 +00:00
briggs
0b956d0b8b Implement pmc(9) -- An interface to hardware performance monitoring
counters.  These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface.  Initially, the Intel XScale
counters are the only ones supported.
2002-08-07 05:14:47 +00:00
fredette
783b314624 Only declare and define syscall_fancy if KTRACE and/or SYSTRACE are defined. 2002-07-17 21:21:46 +00:00
drochner
79c6003c2b make sure struct proc and struct frame are declared 2002-07-13 12:30:11 +00:00
scw
bef00d4895 m68k syscall rototill:
- Switch all m68k-based ports over to __HAVE_SYSCALL_INTERN.
 - Add systrace glue.
 - Define struct mdproc in <m68k/proc.h> instead of <machine/proc.h>.
   (They were all defined exactly the same anyway, other than a couple
   of the MDP_* flags.)
2002-07-13 08:28:40 +00:00
scottr
3b09fcde6d Correct misplaced #endif that causes compile-time error if
neither M68040 nor M68060 are configured into the kernel.
2002-07-12 18:53:16 +00:00
thorpej
011d4d5f44 Add kernel support for having userland provide the signal trampoline:
* struct sigacts gets a new sigact_sigdesc structure, which has the
  sigaction and the trampoline/version.  Version 0 means "legacy kernel
  provided trampoline".  Other versions are coordinated with machine-
  dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
  the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
  trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions.  Instead,
  sendsig() looks up the handler by peeking in the sigacts for the
  process getting the signal (since it has to look in there for the
  trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
  its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later.  Kernel
version not bumped; we will ride the 1.6C bump made recently.
2002-07-04 23:32:02 +00:00
scottr
c509ab3f19 Add (unimplemented) cases to handle the 68020 and 68030 to
bus_dmamap_sync().  This corrects a fatal bug on at least some 68030-
based Macs. Closes PR 17180.
2002-07-04 18:09:59 +00:00
thorpej
584c5c23d3 During signal delivery, arrange to have the signal handler invoked
directly, using the trampoline only for the return path.  Saves a
"jsr" in the trampoline.

Reviewed, tested and OK'd by Steve Woodford.
2002-07-04 01:50:39 +00:00
thorpej
4c0113def4 Swap the order of the sigcontext and hardware state in the sigframe. 2002-06-23 21:31:12 +00:00
christos
3b50728cf4 MD systrace gluons. 2002-06-17 16:32:57 +00:00
yamt
0015b85918 make an auto const variable static. 2002-06-08 16:08:54 +00:00
thorpej
d941ddfee0 Don't use -traditional-cpp if HAVE_GCC3. 2002-06-04 21:39:09 +00:00
drochner
d2b9876081 move initialization of the "struct pglist" returned by uvm_pglistalloc()
from the calling code into uvm_pglistalloc() itself for consistency
and easier error handling
2002-06-02 14:44:35 +00:00
thorpej
9a97f023a3 Fix undefined operation (= is not a sequence point). 2002-05-30 20:56:26 +00:00
matt
855ee2e758 #include <db/db_extern.h> 2002-05-14 00:14:53 +00:00
matt
0a6d35b7ed Nuke local extern label_t *db_recover; it's now in <ddb/db_extern.h> 2002-05-13 20:30:07 +00:00
briggs
0844eedc55 bus_dma(9) pulled pretty much verbatim from next68k. 2002-04-10 04:36:20 +00:00
christos
83c2f7aaf5 compat signal array renaming. 2002-03-31 22:21:02 +00:00
simonb
d9ab16ba2f Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
  are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).
2002-02-26 15:13:19 +00:00
simonb
2d8577fb83 Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
 - Use the above for the __infinity and __nan constants on all
   architectures that use the standard ieee754 representation of
   those constants.
 - Add a single copy of various ieee754 math functions (frexp, isinf,
   isnan, ldexp and modf) that had numerous duplicates among the
   arch-specific directories.
 - Use the above functions on all architectures where the generic C
   versions where used.  Architectures that had local assembly
   routines are untouched (for those functions only).
2002-02-19 13:08:12 +00:00
thorpej
2ef9623f96 Define EF_CPU32 and EF_M68000. 2002-01-28 21:34:48 +00:00
thorpej
593454cde4 Fix asm constraints. Sun3 kernels built with the new toolchain boot now. 2002-01-25 16:42:22 +00:00
thorpej
232c19df9d A statement must follow a label. 2001-12-26 19:00:31 +00:00
chs
ed160d6aac make this compile again after -ffreestanding. 2001-12-24 18:20:50 +00:00
thorpej
51535d4bf5 Add support for dumping ELF-cormat core files. 2001-12-09 23:05:56 +00:00
briggs
c869df6afb The new toolchain wants to generate relocatable branches to globally-defined
symbols--even when the branches are local and would otherwise work with
bxx.b.  Compensate for this by shadowing the relevant labels with local
labels.
2001-12-09 01:43:13 +00:00
lukem
c0d0f0b31c convert from macros to static inlines. allen briggs confirms resultant code
is the same with -Ox, for x>0 (as expected).
2001-12-05 04:37:28 +00:00
kleink
e5341ee40f No point in installing svr4_machdep.h. 2001-11-28 13:14:12 +00:00
lukem
ecb81c3f6d - convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
  "options FOO=xxx"). options that take a value were converted to
  defparam recently.
- minor whitespace & formatting cleanups
2001-11-28 10:21:10 +00:00
fredette
7bed926c6e COMPAT_SUNOS requires the 1.3 sigreturn code, so include it
even if COMPAT_13 isn't defined.
2001-11-26 21:10:32 +00:00
lukem
03aef4723c cleanup:
options SPACE TAB
	makeoptions TAB
	psuedo-device TAB
	remove trailing whitespace
	replace multiple spaces -> tabs
	options "FOO" -> options FOO
	options "FOO=bar" -> options FOO=bar
	options "FOO=\"bar\"" -> options FOO="\"bar\""
2001-11-20 12:56:17 +00:00
tsutsui
1bc09f71dc Pass CPPFLAGS properly so that source files can include <machine/asm.h> . 2001-10-07 01:39:51 +00:00
chs
fee0c8e5ed support building fpsp with MAKEOBJDIRPREFIX. 2001-10-02 06:34:52 +00:00
wiz
456dff6cb8 Spell 'occurred' with two 'r's. 2001-09-16 16:34:23 +00:00
chris
0e7661f023 Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
2001-09-10 21:19:08 +00:00
fredette
3a6e3c55cb Added the crucial "packed" attribute to the type 8 frame structure. 2001-08-16 23:45:12 +00:00
jdolecek
a95aa7326a g/c _remque()/_insque(); use the C version in libkern 2001-08-13 06:10:09 +00:00
matt
c7d43df086 If = is in a constraint, it must be the first character. 2001-08-05 04:40:03 +00:00
tsutsui
6be7c15373 bcopy -> memcpy 2001-07-28 13:21:26 +00:00
tsutsui
88fbdda31f bcopy -> memcpy 2001-07-28 13:08:34 +00:00
scw
d228a76237 Use PCB_ONFAULT instead of hardcoding a value of 64. This is fine
for Amiga and Atari but not for other m68k ports which use m68k/pcb.h.
2001-07-12 17:17:45 +00:00
toshii
4866f1a22b Fix typo. s/extention/extension/ 2001-07-05 08:38:24 +00:00
christos
59abdecf4b Add a linux specific trapsignal() function. This is just a passthrough
on all platforms but the i386. On the i386 we look at T_PROTFLT and send
a SIGSEGV instead of SIGBUS. This makes allegro lisp 5.0 and pvs (a proof
verification system) to work.

XXX[1]: We need to go through each architecture and verify that we send
        the correct signal on each trap type.
XXX[2]: trap.c on all other architectures but i386 needs to be modified
        to s/trapsignal/(*p->p_emul->e_trapsignal)/g
2001-06-18 02:04:42 +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
fredette
e20baedfd4 Added prototypes for w16zero and w16copy, found
in the new w16copy.s.
2001-06-14 15:49:05 +00:00
fredette
c7154a0bfd Added two functions that zero memory and copy memory
in an optimized fashion using only properly aligned
8- and 16-bit accesses.
2001-06-14 15:38:16 +00:00
wiz
40ac848024 Fix various misspellings of compatible/compatibility. 2001-06-11 01:50:48 +00:00
mrg
67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
chs
6ebe782061 mcount() is named __mcount() on ELF, do the right thing. 2001-05-27 01:01:08 +00:00
chs
f5065c9c55 change the one non-extended asm back to using a single % before a
register name.  the rule is that extended asms should have the
regsiter-prefix %s escaped by doubling them, but non-extended asms
don't do the escaping thing, so there the %s should not be doubled.
2001-05-27 00:58:57 +00:00
fredette
878353d5a8 Added support for kernel cores on the sun2. This
increases sizeof(struct cpu_kcore_hdr).
2001-05-21 14:48:58 +00:00
fredette
4cb4a99c18 Don't define __LDPGSZ if it's already defined. 2001-05-18 15:34:28 +00:00
fredette
69c174610f Only on the 68010, define a different mcount() function,
one that doesn't use the memory-indirect addressing mode.
2001-05-18 15:33:03 +00:00
fredette
8160155f03 Only on the 68010, assemble versions of copypage
and zeropage that use the 68010's loop mode.
2001-05-18 15:31:38 +00:00
chs
1aeca5a83b define VECTOR() and friends in non-_KERNEL environments too. 2001-05-12 22:27:05 +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
fredette
53b83715c9 Now only define MACHINE_ARCH, _MACHINE_ARCH, and
MID_MACHINE if they haven't already been defined.
2001-05-03 20:59:55 +00:00
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