Commit Graph

246 Commits

Author SHA1 Message Date
itojun ef1a3ce53b the kernel for SH3-based WinCE machines (little endian), by uch.
MACHINE=hpcsh, MACHINE_CPU=sh3el.

bootloader: ftp://f77.nop.or.jp/users/uch/hpcboot/
original patch: ftp://f77.nop.or.jp/users/uch/hpcsh/

sys/sh3/sh3/md_root.c: add #ifdef MEMORY_DISK_DYNAMIC
2001-01-17 05:21:47 +00:00
itojun d8ba6d06be procfs_machdep is per port (not per CPU). 2001-01-17 00:44:33 +00:00
fvdl c7f1462f3e Add machdep file for procfs. Currently only used for linux-style
/proc/cpuinfo (only active when procfs is mounted with -o linux).
For ports other than the i386 this currently produces an empty
string.
2001-01-17 00:07:18 +00:00
marcus bc9ea0aebd Dreamcast uses a different realtime clock than the builtin RTC. 2001-01-16 00:34:44 +00:00
thorpej 45de366b2e Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
and place the definition in <machine/types.h>.  This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
2001-01-14 23:50:28 +00:00
thorpej a3ec356d52 splimp() -> splvm() 2001-01-14 03:22:04 +00:00
thorpej d85a75f583 Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
2001-01-14 02:00:37 +00:00
itojun 6378ac40ee pass the right $CPP 2001-01-09 02:31:37 +00:00
itojun 828bec041b committed local change by mistake :-) 2001-01-04 09:49:29 +00:00
itojun a8507fa1e7 pkgsrc/cross/sh-* do not supply cpp 2001-01-04 08:55:08 +00:00
itojun 26b1bcce00 cc -v is too verbose 2001-01-04 08:39:53 +00:00
itojun a629edfcca use -O1 for now, -O2 dies 2001-01-04 07:55:32 +00:00
itojun da0e17f08c fix pathname to meet pkgsrc/cross/sh* 2001-01-04 07:51:50 +00:00
itojun 8a58f991f6 content were mixed up 2001-01-04 07:50:23 +00:00
itojun 156bea1018 nuke obsolete Makefile templates.
split build-sh3 into two, for sh3e[bl].
2001-01-04 07:09:47 +00:00
itojun 1e7e3274f4 split MACHINE_ARCH sh3e[lb]. userland build still needs checking. 2001-01-04 07:03:21 +00:00
itojun 10e1d3091a share sys/arch/sh3/conf/Makefile.sh3 across sh3-based architectures.
cleanup param.h a bit.
2001-01-03 18:14:44 +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
jdolecek cacec11253 delete obsolete comment 2000-12-17 15:52:39 +00:00
tsubai 0763c14571 Make this compile again. 2000-12-15 01:16:48 +00:00
marcus 724713366e Made weak_alias create correct labels on sh-elf. 2000-12-14 18:47:30 +00:00
msaitoh 007d059977 - fix \n conversion from \n\r to \r\n
- cleanup
2000-11-22 21:14:25 +00:00
msaitoh d077acc4e9 const struct sysent 2000-11-22 21:12:28 +00:00
chs c62d17a551 rationalize the use of b_flags for geteblk() buffers.
rather than assigning to the whole field, set or clear individual flags,
which implies that the B_BUSY and B_INVAL flags will remain set.
this allows us to make the assertion in brelse() that B_BUSY is set,
which is the purpose of all this.
2000-11-20 08:24:08 +00:00
msaitoh 3ba9161ab2 check whether SH4_PCMCIA is defined or not.
fixes PR. 11441.
2000-11-08 01:03:03 +00:00
msaitoh d254039699 Add support stacktrace when a function contains "mov #n,r3; sub r3,r15" 2000-11-02 13:08:25 +00:00
eeh 8c3f6a0d10 Adapt to new line discipline scheme. 2000-11-02 00:37:56 +00:00
msaitoh d191cbf210 add interrupt mode into wdog
To use:

	ioctl(fd, SIOWDOGSETMODE, &val)

	val:	WDOGM_RESET	-> reset when counter expired
		WDOGM_INTR	-> print PC when counter expired (new!)

This interface is still under experimental.
2000-10-31 02:04:12 +00:00
msaitoh 13bed0a344 - fix error handing in getc.
Now we can handle BREAK signal and framing error correctly.

- cleanup.
2000-10-31 01:08:41 +00:00
is 126ba78048 We do wired page accounting. Tell UVM about this. 2000-09-28 14:03:38 +00:00
thorpej 72a24b4eae Add an align argument to uvm_map() and some callers of that
routine.  Works similarly fto pmap_prefer(), but allows callers
to specify a minimum power-of-two alignment of the region.
How we ever got along without this for so long is beyond me.
2000-09-13 15:00:15 +00:00
msaitoh 2b1674cc62 remove extra #endif 2000-09-08 19:52:13 +00:00
msaitoh 2cb1f4181a sync with i386's revision 1.133:
It's legal to mmap pages in the lower part of the stack (<limit),
	and use them, so allow this by relaxing the check for it.
2000-09-08 19:48:12 +00:00
msaitoh 772c846544 delete an obsolete comment. 2000-09-08 18:46:39 +00:00
tsubai 9fdd44d404 DDB single step and stack trace support. 2000-09-08 10:15:23 +00:00
tsubai d0078c839c Add breakpoint(). 2000-09-06 11:25:13 +00:00
tsubai 96f1451685 Downcase mnemonics. 2000-09-04 23:18:36 +00:00
tsubai 600169a9a3 Make this (at least) compile on sh3. 2000-09-04 23:11:42 +00:00
tsubai bf4246e37a Disassembly support in DDB. 2000-09-04 23:02:42 +00:00
tsubai cdbe0b9ec9 Add DDB hook. 2000-09-04 22:44:18 +00:00
tsubai 5f39c378a3 Correct label_t size. 2000-09-04 22:18:43 +00:00
msaitoh 8d1b1036ff - move MMUCR_VALIDBITS definition into mmureg.h.
- access correct address in cacheflush().
2000-09-04 05:48:35 +00:00
msaitoh e44c80532c sh3 disassembler written by Akinori Koketsu. 2000-09-01 22:25:36 +00:00
tsubai a964ecd1a9 Correct iosize. 2000-09-01 10:43:33 +00:00
tsubai c6615ed380 Initialize pv_head locks. 2000-08-30 09:55:28 +00:00
thorpej 4db6fc7542 Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity.  Its use in
roundrobin() still needs some work.
2000-08-25 01:04:06 +00:00
thorpej 58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +00:00
tsubai f406aae2d2 MD part of mcount. 2000-08-22 11:25:49 +00:00
thorpej 23a7f255d4 Make sure we provide splsched() as described in spl(9). 2000-08-21 02:06:31 +00:00
msaitoh 7369c6d979 add an INTEVT code for WDT 2000-08-17 00:01:53 +00:00
msaitoh 90f4e30815 2nd argument of SYS___syscall(code, ...) is quad alignmented.
On little endian mode, 1st argument is not r5 but r4.
2000-08-09 22:11:17 +00:00
tv 8df356a34f %r, %n -> db_format_radix() 2000-08-09 20:09:25 +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
msaitoh e049977033 check _BYTE_ORDER instead of BYTE_ORDER 2000-08-02 11:32:41 +00:00
msaitoh dafe13f724 callout()->callout_reset() 2000-07-11 18:46:22 +00:00
msaitoh 7f0eba7ad8 make spllower() return void. 2000-07-06 04:31:04 +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 fa00dc597a remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:44:02 +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 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
simonb 889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
kleink 133ea38323 Add a WEAK_ALIAS() macro. 2000-06-23 12:18:45 +00:00
fvdl 1ee7d22c0b Remove prefix construction for softdeps. Add SOFTDEP option to GENERIC. 2000-06-22 20:27:49 +00:00
msaitoh 03cf0ea64a clear ORER, FER and PER bit of the SCSSR reg.
(This bits aren't cleared automatically)
2000-06-19 09:32:00 +00:00
msaitoh 4d2677e3a0 clear the ER bit of the SCSSR2 reg.
(This bit isn't cleared automatically)
2000-06-19 09:30:35 +00:00
tsubai 5afb55f9cd child_return() should take void *arg. 2000-06-07 11:34:17 +00:00
tsubai bebb7b9aee Remove child_return prototype; it is now in sys/proc.h. 2000-06-07 11:23:17 +00:00
soren a9aa2abf94 defopt SYSCALL_DEBUG. 2000-06-06 18:52:30 +00:00
mycroft e9deffe0bf Move a bunch of the COFF definitions into exec_coff.h, so they can be used by
other code.   XXX Not tested on SH3 yet.
2000-06-04 16:23:59 +00:00
thorpej 7a5ce477cb When allocating new PT pages during early bootstrap (i.e. before
pmap_init() has finished), make sure to zero them.
2000-06-02 17:46:37 +00:00
matt 33763f10cf Fix a missing cases of devpp -> booted_device, partp -> booted_parition 2000-06-01 17:42:59 +00:00
matt 9169d99f2a Don't pass booted_* to findroot/getdevice, access them via the globals.
Also, make findroot static.  This eliminates unneeded clearing of them
and make their use consistent among the ports.
2000-06-01 15:38:20 +00:00
matt c9aff328d9 Make booted_device global (and booted_parition for consitency).
Eliminate it from header files and other extern definitions.
2000-06-01 00:49:49 +00:00
thorpej e03e9e8086 Rather than starting init and creating kthreads by forking and then
doing a cpu_set_kpc(), just pass the entry point and argument all
the way down the fork path starting with fork1().  In order to
avoid special-casing the normal fork in every cpu_fork(), MI code
passes down child_return() and the child process pointer explicitly.

This fixes a race condition on multiprocessor systems; a CPU could
grab the newly created processes (which has been placed on a run queue)
before cpu_set_kpc() would be performed.
2000-05-28 05:48:59 +00:00
sommerfeld 40339b39f9 Reduce use of curproc in several places:
- Change ktrace interface to pass in the current process, rather than
p->p_tracep, since the various ktr* function need curproc anyway.

 - Add curproc as a parameter to mi_switch() since all callers had it
handy anyway.

 - Add a second proc argument for inferior() since callers all had
curproc handy.

Also, miscellaneous cleanups in ktrace:

 - ktrace now always uses file-based, rather than vnode-based I/O
(simplifies, increases type safety); eliminate KTRFLAG_FD & KTRFAC_FD.
Do non-blocking I/O, and yield a finite number of times when receiving
EWOULDBLOCK before giving up.

 - move code duplicated between sys_fktrace and sys_ktrace into ktrace_common.

 - simplify interface to ktrwrite()
2000-05-27 00:40:29 +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
jhawk f3528d725d Interface change: db_printsym() takes a third argument, pr, a function
pointer indicating how to print the symbol. This allows db_printsym()
to called in places where db_printf() is not an appropriate output
function.

While straightforward, apologies in advance if I've introduced any minor
syntax errors; I was unable to test compilation this on all the affected
platforms.
2000-05-25 19:57:30 +00:00
thorpej 1140468205 Use preempt(), not an open-coded equivalent (which won't be
equivalent for long).
2000-05-24 16:48:33 +00:00
msaitoh a797322f08 supports single step! 2000-05-10 20:28:33 +00:00
hubertf 9f48bba3ae Add "install" target, so "make install" after building the kernel
does something useful.  The target can be redefined by putting a
install-kernel-${MACHINE_NAME} target that fits your needs into
/etc/mk.conf.
2000-05-09 00:56:21 +00:00
thorpej 6a33c86623 HAVE_GCC28 -> HAVE_EGCS, and make it match gcc 2.9 as well. Also,
make the use of -Wno-uninitialized explicit, don't rely on a compiler
hack to do it for us.
2000-05-09 00:32:19 +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
tsubai 1be338dabc GC VM_MBUF_SIZE. 2000-04-25 12:31:10 +00:00
tsubai 63fca4fecb Use P1SEG to map pool pages. 2000-04-25 12:17:06 +00:00
tsubai 88a555948c Sync with current i386 pmap.c. 2000-04-24 08:40:21 +00:00
msaitoh e61941261f remove a debug log 2000-04-20 14:04:04 +00:00
msaitoh 25f1ebacc1 add a copyfault routine into the TLB miss handler 2000-04-20 14:02:41 +00:00
tsubai 8bd19349a1 Fill paa_busname field in pcmciabus_attach_args. 2000-04-20 11:51:27 +00:00
msaitoh 7e7033d239 Catch the breakpoint trap ("trapa #0xc3") and send SIGTRAP.
Now works breakpoint and continue!

TODO: single step
2000-04-13 23:00:42 +00:00
msaitoh 8796b43e1c remove sys_vtrace() 2000-04-13 15:54:27 +00:00
msaitoh c750d5f42d - save/restore more registers in process_{read,write}_regs()
- return EINVAL in process_sstep (temporary)
2000-04-13 15:51:26 +00:00
msaitoh 9c13ab1d7c KNF 2000-04-13 15:45:11 +00:00
msaitoh ca4ca0111c exports MACH and MACL registers, too. 2000-04-13 15:41:55 +00:00