Commit Graph

1031 Commits

Author SHA1 Message Date
thorpej
c8988c2caa Add an idle loop routine for the QED RM52xx family. This uses the
RM52xx `wait' insn to power down the pipeline.
2001-05-29 17:51:55 +00:00
mrg
3783ca5d30 define _KERNEL_OPT as well as _KERNEL. we will use this in the future to
get kernel "opt_foo.h" headers, rather than _KERNEL && !_LKM.
2001-05-29 02:20: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
hubertf
9422f74ca8 Allow overriding the 'install' target.
(I have a nice 'install' target for cobalts here, but that only works there.
 I guess I'll put that into htdocs now that the cobalt port uses Makefile.mips)
2001-05-23 02:35:40 +00:00
simonb
a411a63d8e Add the processor IDs for the 4Kc and 5Kc CPUs and some MIPS32/64
coprocessor 0 registers.
2001-05-15 21:48:50 +00:00
nisimura
96398342f4 Rather better to have |= to make sure spl0 condition, allowing to preserve
processor model specific SR bit pattern on pcb0 initialization.
2001-05-15 06:01:23 +00:00
thorpej
4efd12ca44 Set SR to PSL_LOWIPL rather than MIPS_INT_MASK | MIPS_SR_INT_IE,
as the former accounts for some mips3-related options.

From Rafal K. Boni.
2001-05-11 02:03:01 +00:00
thorpej
0976e733f4 Correct args to SYSCALL_DEBUG related function calls.
From Rafal K. Boni.
2001-05-11 01:42:32 +00:00
nisimura
7ec840fbe5 Add comment to tell what cpu_fork() does around at its bottom.
What's wrong; the initial SR value in pcb0 gets overwritten before
the first kthread_create1() is called.  For a normal process which
has user mode it doesn't matter because proc_trampoline() makes
the process to have spl0 during exception return path to user mode,
however, kthreads stay in kernel mode mistakenly left in splhigh
condition.  The trouble is visible as severe clock drifts when
system activity is high.
2001-05-08 06:02:14 +00:00
nisimura
580e36f497 Make sure to have spl0 condition whenever a new thread of control
is created.  System kthreads are mistakenly left splhigh state.

pcb0 has an initial SR value for spl0 condition which are expected to
be propagated to all of children
2001-05-08 05:36:01 +00:00
simonb
6a64a03f21 Remove prototype for non-existant function. 2001-05-06 12:50:45 +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
thorpej
c9d1eae045 Size the number of initial color bins based on the size and
associativity of the L1 cache.

Note, doesn't really do anything for virtually-indexed caches,
but it doesn't hurt them, either.
2001-05-02 21:23:03 +00:00
thorpej
cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
thorpej
2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +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
nisimura
da9a00c583 Add PRiD register imp value 0x2d for Toshiba TX4900 family. 2001-04-24 08:03:44 +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
cd31bdd2b7 Make sure virtual_end is initialized before calling uvm_pageboot_alloc(),
and garbage-collect the virtual_avail variable (it is not necessary in
this pmap implementation).
2001-04-23 17:14:17 +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
5871b80f00 Use uvm_pageboot_alloc() for early memory allocation, rather than
calling pmap_steal_memory() directly.  On these platforms, since
uvm_pageboot_alloc() is a wrapper around pmap_steal_memory(), there
is no functional change.  This is merely for API consistency.
2001-04-22 18:21:48 +00:00
thorpej
cfb5c7ed9f Make pmap_virtual_space() a required pmap function, even on platforms
which have pmap_steal_memory().  This is to reduce the API differences
between pmaps that implement pmap_steal_memory() and pmaps which do
not.

Note that pmap_steal_memory() needs to adjust *vstartp and/or
*vendp only if it used addresses within the range provided to UVM
via the pmap_virtual_space() call.  I.e. it is not necessary to do
so in any current pmap_steal_memory() implementation.
2001-04-22 17:22:57 +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
7f10ba88b1 #define away pmap_update() in <machine/pmap.h> so that no function
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).
2001-04-21 23:51:14 +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
drochner
676bacb4ea include "opt_ddb.h" explicitely 2001-03-28 18:03:49 +00:00
tsutsui
864a597f2d Define ${OBJCOPY}.
XXX: Should we use ${CROSSDIR} here or not?
2001-03-28 17:03:48 +00:00
simonb
5aa49b6404 Delete unused uvtopte() macro. 2001-03-23 01:27:59 +00:00
chs
11fe9ca446 use ubc_winshift instead of ubc_winsize in pmaps to set up kernel
virtual space.  the latter isn't initialized yet when the value is needed.
fixes PR 12440.
2001-03-21 03:16:05 +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
shin
fb20946774 keep V0 value (system call number) and restore it in exception frame,
when error is ERESTART. otherwise, user process will re-issue syscall
with broken system call number and get SIGSYS signal and terminate.

patch made by Jason R Thorpe <thorpej@zembu.com>. tested by me.
2001-02-12 10:32:14 +00:00
jdolecek
8b24036797 Require the machine-dependant DDB commands to be in db_machine_command_table[]
and link it directly to db_command_table[] so that it's not necessary
to do this at runtime. Make db_machine_command_table[] const on all ports.
g/c now unneded stuff, like db_machine_commands_install(), db_machine_init()

Patch written by enami.
2001-01-22 13:56:55 +00:00
ur
4c458e5c42 Fix register name typo. 2001-01-20 07:23:21 +00:00
shin
2e0943daa2 - fix prototype of db_mips_variable_func(). 2001-01-19 01:41:36 +00:00
tv
e58532a4bf No-op commit to force update to a non-"-kk" revision. 2001-01-18 17:47:58 +00:00
jdolecek
d5d431e8ae make db_[e]regs[] const 2001-01-18 10:54:27 +00:00
thorpej
9f5a22b3ee New syscall entry implementation based on the Alpha version
as hacked by mycroft.
- Use syscall_intern() to give a process a plain or fancy
  syscall based on ktrace flags.
- Avoid copying from the trapframe into a local array as much
  as possible.

Yields roughly 5% improvement on a 25MHz R3000 (DECstation 5000/200)
on a simple syscall benchmark.

There's still some work that can be done using __HAVE_MINIMAL_EMUL.
2001-01-16 06:01:26 +00:00
thorpej
61473e63f9 Define __HAVE_AST_PERPROC. 2001-01-14 22:32:57 +00:00
thorpej
da57125f23 Now that we won't lose signotify()'s while we're asleep, go ahead
and to signal processing in ast() again.
2001-01-14 21:22:56 +00:00
thorpej
53d2115d66 Make the astpending flag per-process. 2001-01-14 21:18:39 +00:00
thorpej
a3ec356d52 splimp() -> splvm() 2001-01-14 03:22:04 +00:00
thorpej
fd0ca62926 Put signal posting back in userret() for now; for it to work
properly, we need to make astpending a per-process variable.

Pointed out by mycroft.
2001-01-14 00:39:48 +00:00