Commit Graph

172 Commits

Author SHA1 Message Date
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
msaitoh 9a41bed54e move the Interrput Priority Level (IPL_*) definitions into MD part. 2000-04-13 15:36:09 +00:00
chs a6d33cc1f2 add a new function vn_marktext() for exec code to let others know
that the vnode is now being used as process text.
2000-04-11 04:37:47 +00:00
thorpej d37f3bd4ee Use UVM_PGA_ZERO in pmap_alloc_ptp(). 2000-04-10 06:34:11 +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
thorpej 2bc5adb20e Instead of checking vm_physmem[<physseg>].pgs to determine if
uvm_page_init() has completed, add a boolean uvm.page_init_done,
and test against that.  Use this same boolean (rather than
pmap_initialized) in pmap_growkernel() to determine if we are
being called via uvm_page_init() to grow the kernel address space.

This fixes a problem on some i386 configurations where pmap_init()
itself was needing to have the kernel page table grown, and since
pmap_initialized was not yet set to TRUE, pmap_growkernel() was
choosing the wrong code path.

Fix tested by Havard Eidnes.
2000-04-02 20:39:14 +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
msaitoh 35ba37f2f7 fix the sci[f]cninit() bugs to work both SCI and SCIF at the same time. 2000-03-27 16:24:08 +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
thorpej 7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +00:00
msaitoh 826aac6ff8 - Use macro
- RTCCNT is not 16000Hz but 16384Hz (not used)
- fix the bug in 16bit int <-> BCD conversion macro (SH4)
2000-03-20 20:44:32 +00:00
msaitoh 7052a2af38 Add the definitions of SH4's TPSC field of TCR register
(This field is not compatible with SH3's)
2000-03-20 20:36:58 +00:00
msaitoh ff49b7006c move MMUCR register definitions into mmureg.h 2000-03-20 20:30:33 +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
kleink ad7dbd825c Define ISO C99 (unsigned) long long (min, max) symbols. 2000-03-07 19:33:00 +00:00
msaitoh 6e7f2e9779 SH4! 2000-02-24 23:32:26 +00:00
msaitoh da0ae51fcf variable start address of the main memory (now we can use
the area 2 as main memory with "options IOM_RAM_BEGIN=0x88000000")
2000-02-24 19:42:35 +00:00
msaitoh 7ae4a95c4d multiple interrputs!!! 2000-02-24 19:01:24 +00:00
msaitoh 3559e78ed2 include <machine/endian.h> 2000-02-24 17:19:57 +00:00
msaitoh dddc24af60 G.C. 2000-02-24 17:18:30 +00:00
msaitoh f51b1c6783 add RCSID and copyright 2000-02-24 17:10:16 +00:00
msaitoh e2cc2d00d7 watchdog timer 2000-02-24 17:07:34 +00:00
msaitoh 0e12305a13 global variable declaration 2000-02-24 16:42:54 +00:00
msaitoh e0c3daee1d remove PMAP_NEW 2000-02-23 21:14:12 +00:00
msaitoh 58369df4e9 Fix the bug which cause invalid slot exception under SH4.
This exception doesn't occurs under SH3
2000-02-22 02:17:05 +00:00
msaitoh c02e68b1f5 calculate checksum correctly 2000-02-22 02:14:16 +00:00
msaitoh c956cdcabe bugfixes:
o SCI accesses SCI registers (not SCIF) correctly
 o If there is serial inputs in boot time, it could hangup in interrupt routine
 o some cleanups(KNF)
2000-02-22 01:37:11 +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
thorpej dded044fc2 Update for the NKMEMPAGES changes. 2000-02-11 19:25:12 +00:00
msaitoh 986d236119 remove COMPAT_NOMID stuff 2000-02-06 13:13:20 +00:00
kleink 36e6bc645e Improve namespace test macros a bit. 2000-02-05 14:04:36 +00:00
cgd 7d16ac338c add __BROKEN_CONFIG_UNIT_USAGE #define, becuase these ports do very
wrong things with device configuration data "cf_unit" information.
2000-02-05 00:13:22 +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 b0fbaa33fb Remove obsoleted macros. 2000-01-26 09:44:10 +00:00
drochner 8eb798e603 define a "BUS_SPACE_MAP_PREFETCHABLE" flag which basically means that
device accesses are idempotent (but should not be cached by the CPU)
2000-01-25 22:13:17 +00:00
tron 04eb110431 Add "dependall" target for comfort. 2000-01-24 20:36:06 +00:00
sommerfeld aa195e816f Fix PR9240: comment above cpu_fork() out of synch with reality on most ports.
(comment change only, but was wrong for more than just i386).
2000-01-20 22:18:54 +00:00
thorpej a0397a2573 Move callout initialization to a single location; no need to duplicate
that code all over the place.
2000-01-19 20:05:30 +00:00
tsutsui e61f177ab1 STRIP -> STRIPPROG 2000-01-19 16:29:54 +00:00
thorpej 4f27a98702 Use b_cylinder as defined in sys/buf.h 2000-01-18 19:48:02 +00:00
msaitoh c330a893d5 - check whether tv_usec == 1000000, too.
- set the reload count of the timer unit 1 correctly
  (Timer unit counts from TCOR to 0 (i.e. the length of the counts equals
  to TCOR + 1)).
- use macros.
2000-01-17 21:54:32 +00:00
msaitoh 8cf5a56c3f add some bit definitions 2000-01-17 21:41:13 +00:00
kleink 6910891781 Add NAN constant glue for sh3. 2000-01-17 16:27:53 +00:00
msaitoh 150090f9b8 inittodr() and resettodr() supports SH4 2000-01-15 02:46:30 +00:00
msaitoh 5cb845afcd remove SH3_PHYS_TO_P1SEG macro 2000-01-14 21:02:40 +00:00
msaitoh 1e15a3117c use clock_subr.c 2000-01-14 19:41:36 +00:00
msaitoh 06c297195a in_cksum.c ->in_cksum.S 2000-01-14 19:20:32 +00:00
msaitoh f485f2635c add SH3_{PHYS,P1SEG,P2SEG}_TO_{PHYS,P1SEG,P2SEG} macros 2000-01-14 19:09:35 +00:00
msaitoh 69fcc26071 write through bit (SH4) 2000-01-14 16:06:11 +00:00
msaitoh 2d4348b99d in_cksum.S (bi-endian) 2000-01-14 15:47:42 +00:00
msaitoh 80d920c3d0 block prototype definitions with _LOCORE (for .S) 2000-01-14 15:46:02 +00:00
msaitoh ac8d6acaa7 add cpgreg.h and pfcreg.h for "make includes" 2000-01-14 13:58:06 +00:00
msaitoh cf37b6ff3b KNF 2000-01-12 14:40:27 +00:00
msaitoh 08b1e4a63f enable cpu_coredump() 2000-01-07 12:01:00 +00:00
msaitoh b3fa48ba9d implement send/recieve break signal routines 2000-01-07 10:50:14 +00:00
msaitoh 1020615169 use PSL_IMASK macro 2000-01-07 00:13:24 +00:00
msaitoh 518cfb0bde userret() if the user process will be killed.
Now the NetBSD/sh3 works very stable!
2000-01-03 02:55:25 +00:00
msaitoh b75406e24f remove exec_coff.h 2000-01-02 13:40:55 +00:00
msaitoh da3eeac505 EXEC_COFF cleanup 2000-01-02 13:39:49 +00:00
msaitoh b682f09cbb fix missing SCI IRQ mask/unmask code. 1999-12-27 10:50:41 +00:00
msaitoh 1d5d46cad0 round_page(data_segment_size), too 1999-12-24 08:32:58 +00:00
msaitoh 05781b11af back to previous one (suggested by cgd) 1999-12-24 08:29:23 +00:00
msaitoh 8427734872 move sysctl definitions into ${MACHINE}/include/cpu.h 1999-12-21 22:19:16 +00:00
msaitoh 1e7bb23911 add some register definitions 1999-12-21 22:06:04 +00:00
msaitoh 79f94c37ab G.C. 1999-12-21 18:21:53 +00:00
msaitoh 45cbcdba34 round textsize only if the binary is demand-pagable
(for backward compatibility)
1999-12-17 08:25:35 +00:00
msaitoh e7924755fa - round_page(ep_tsize). This fixes a bug which cause panic in pmap_enter_pv().
- DPRINTF cleanup.
1999-12-16 16:50:08 +00:00
msaitoh 650e62ebf5 demand paging for ZMAGIC SH COFF binary! 1999-12-09 08:33:15 +00:00
msaitoh f7bd242b6f calculate microtime() correctly. 1999-12-08 20:39:45 +00:00
msaitoh e7c433b9d5 fix copyinstr(9) bug (from Charles M. Hannum). 1999-12-08 17:12:21 +00:00
ragge 26e1b45757 clrnd()/clbase() discarding. 1999-12-05 11:56:30 +00:00
ragge 0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00