Commit Graph

254 Commits

Author SHA1 Message Date
lukem d84d2c6c85 add missing #include "opt_kgdb.h" 2001-05-30 15:24:23 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +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 11a9651c8f replace vm_page_t with struct vm_page *. 2001-05-26 21:27:10 +00:00
chs 118ddca24a replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}. 2001-05-26 16:32:40 +00:00
sommerfeld e2a08caf68 Replicate pte unmap change from i386 pmap.c
(fix kern/12554 workaround).
2001-05-25 23:34:44 +00:00
msaitoh cbcd644ce8 sigreturn() fix (from kleink) 2001-05-16 12:42:38 +00:00
tshiozak b1c2276feb Correct a simple bug in the recent commit (pmap.c:1.19) by thopej.
I guess he indents to prepare a temporary variable for saving the next
pointer of a list element, but he seems to forget to substitute the
pointer for the variable.  This often causes my dreamcast panic.
2001-05-13 19:41:17 +00:00
kleink dadbb7e784 There is no extended-precision format on sh3. 2001-05-03 13:19:52 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +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
thorpej d7e12660a3 Work around the problem that causes kern/12554. Basically,
there are some pathological cases that cause pmap_page_protect()
to be called on a wired page to revoke all mappings.  We
need to skip mappings that are actually wired to prevent Bad
things from happening later.

THIS IS JUST A WORK-AROUND.  We need to prevent the pathological
behavior from happening in UVM to begin with.  But it's unclear
what the right solution is there, right now.
2001-04-25 16:18:24 +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
uch 63ec3bc3fa dreamcast clock module was separated. 2001-04-23 11:20:41 +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
uch 103b08ffa1 make this compile again under SH4 2001-04-22 17:37:55 +00:00
uch 95f0d5c680 add RTC control register 1 defines. 2001-04-22 16:50:17 +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 15f731ee94 pmap_update() should not be equated with "flush entire TLB", it is
used to process deferred pmap operations.  Since these pmaps don't
defer anything, pmap_update() is a noop.
2001-04-21 17:25:01 +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
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
marcus b6c1c5d49a Altentries should also be marked as functions, to keep linker happy. 2001-04-09 20:31:20 +00:00
marcus e0d02d24d5 Mark syscalls as functions. 2001-04-09 15:52:59 +00:00
marcus 0640ad6ace When the endians are little, they are little. 2001-03-29 03:23:33 +00:00
matt f283c0a504 Use ${THISSH3} instead of ../.. ; not everyone builds in ../compile/FOO 2001-03-24 18:26:11 +00:00
chs e47583af2c missed some KERN_FAILUREs. 2001-03-18 23:43:53 +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
itohy 7ffa2a0375 Add RTC_OFFSET support to inittodr() on dreamcast.
No changes to other sh ports.
2001-03-07 00:47:22 +00:00
thorpej 51aeeceeaf Clean up TLB trap handling a little.
- When printing a user trap, include p->p_comm in the message.
- In the TLB fault handler, don't just go charging along if
  the fault can't be handled.  If we get a fatal kernel TLB
  fault, we need to panic!  Or, if DDB is enabled, call the
  Debugger().
2001-03-06 21:58:23 +00:00
msaitoh 0aa1f3d01e modify target name because we can't recommend to use pkgsrc/cross
(though I'm not the person who did such BAD modification)
2001-02-27 14:05:53 +00:00
msaitoh bba3f2423b add comment about $CPP
From source:

# XXX following definition is absolutely incorrect.
# Our cpp is not /usr/libexec/cpp but /usr/bin/cpp.
# True solution is:
#	1) copy /usr/bin/cpp into /usr/local/bin/sh-*-*-cpp
#	2) Edit CPP in sh-*-*-cpp correctly
#		(e.g. "CPP=`$CC -print-prog-name=cpp`").
#	3) Edit STDINCDIR in sh-*-*-cpp correctly
#		(e.g. STDINCDIR=/usr/local/sh-unknown-netbsdcoff/include)

# BROKEN
CPP=`$TARGET-gcc -print-prog-name=cpp`

# EXAMPLE
#CPP=/usr/local/bin/sh-unknown-netbsdcoff-cpp
#CPP=/usr/local/bin/sh-unknown-netbsdelf-cpp
2001-02-26 08:46:15 +00:00
msaitoh 6c4c53a461 add "MACHINE_CPU=sh3" 2001-02-26 08:24:20 +00:00
msaitoh bc759e0d8d check __LEADING_UNDERSCORE 2001-02-25 19:15:04 +00:00
msaitoh 526ce203e7 check __LEADING_UNDERSCORE instead of __sh3__ 2001-02-25 15:49:58 +00:00
uch e0a4623854 move disksubr.c define to machine-port. 2001-02-21 16:42:04 +00:00
uch 8ce0133cc8 add SH7709/SH7709A I/O port register define 2001-02-21 14:49:53 +00:00
msaitoh c090c1cfe5 temporary fix a serious pmap problem with dummy PMAP_{MAP,UNMAP}_POOLPAGE().
To fix correctly, set IOM_RAM_BEGIN with P0 addr instead of P1 addr and
fix machdep.c and pmap.c.
2001-02-19 17:51:22 +00:00
msaitoh 2633a5dcb5 _C_LABEL() 2001-02-14 17:57:31 +00:00
uch 78af56fcfd move VM_PHYSSEG_MAX, VM_NFREELIST, VM_FREELIST_DEFAULT defines to
machine/vmparam.h
2001-02-07 14:53:09 +00:00
uch 6a7b420b7e move machine-port specific file to machine directory.
for evbsh3, mmeye and dreamcast, use MI md_root.c
2001-02-06 16:45:19 +00:00
thorpej c8cdb12913 Add some comments about P/USEG 2001-02-02 18:25:04 +00:00
thorpej ef2315d256 Rewrite how mod/ref emulation is done. In particular, make
modified attribute checking actually work.  Previously, a
page could be reported as modified even if it wasn't!  This
is very bad, and e.g. caused the VM system to attempt to
"clean" pages of read-only files.

Only lip-services is paid to referenced attribute emulation.
This could be improved.
2001-02-02 02:28:18 +00:00