Commit Graph

456 Commits

Author SHA1 Message Date
tsutsui
8d3aeb9abc Rewrite user space access functions which use gcc's "labels as values"
extension in asm to avoid unexpected code omission during optimization
which causes wrong return value on faults.
2003-03-20 17:45:14 +00:00
tsutsui
f86b0e1741 In tlb_exception(), don't panic immediately on access at va == 0
from kernel mode if fault hander is set.
2003-03-09 16:14:29 +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
itohy
850cd09532 - Change __cpu_simple_lock_t from int to unsigned char.
This makes simple lock work on big-endian platforms.
- Assembly-level optimization of __cpu_simple_lock_try().

OK'd by Gregory McGarry.  Closes PR port-sh3/20311.
2003-02-14 03:02:41 +00:00
tsutsui
cce861a437 Make sure cache_sh[34]_op_*() functions actually inlined. 2003-01-25 04:21:01 +00:00
thorpej
49784e4bd0 Merge the nathanw_sa branch. 2003-01-18 06:33:41 +00:00
uwe
a391e8bea6 Add sh7709 INTEVT2 codes for IRQs, PINTs, IRDA and ADC. 2002-12-29 02:47:07 +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
6ff0a8ba21 Initialize pools in pmap_init(); the low-water mark must be set when
it is safe to allocate pages via the normal mechanism.
2002-12-16 07:18:30 +00:00
thorpej
7affeb0071 Add support for RAS (initially added by me on nathanw_sa branch). 2002-12-16 02:15:58 +00:00
thorpej
9ad045c958 Use MI setrunqueue()/remrunqueue(). 2002-12-16 01:56:47 +00:00
thorpej
e8cc3884de Rename __LDPGSZ to AOUT_LDPGSZ, to accurately reflect what it is. 2002-12-10 17:14:02 +00:00
thorpej
78ea2dd367 Use __LDPGSZ (which must be == USRTEXT) as the text address for a.out
executables, and eliminate the USRTEXT constant, which was only used
by the a.out exec code.
2002-12-10 05:14:24 +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
msaitoh
76c101443c add some definitions for P[VR]R register 2002-11-13 14:00:27 +00:00
tsutsui
fe505e00b7 Make sure to stop timer count before writing timer counter registers
in tmu[12]_oneshot(). Otherwise sometimes interrupts would be lost.
2002-11-10 04:30:10 +00:00
tsutsui
d7fe782b4f Add _reg_bset_[124]() and _reg_bclr_[124]() macro for
SH embeded device registers.
2002-11-08 14:58:25 +00:00
itohy
ba91c01b07 Fix asm usage. "tf" is an output operand, not an input. 2002-11-04 08:12:30 +00:00
itohy
babe417446 Initialize UTLB/ITLB data array 1 to zero.
If the VPN / PPN are not aligned to page boundary (the page size
is set by SZ bits in data array 1, which are random when power-up time),
unexpected exception occurs in some rare case, it seems....
Initialize SZ to zero (1KB page).  Also, clear VPN / PPN to zero just in case.

Make __sh4_itlb_invalidate_all() static.
2002-11-04 01:31:43 +00:00
jdolecek
e0cc03a09b merge kqueue branch into -current
kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
2002-10-23 09:10:23 +00:00
chs
993948e989 count executable image pages as executable for vm-usage purposes.
also, always do the VTEXT vs. v_writecount mutual exclusion
(which we previously skipped if the text or data segment was empty).
2002-10-05 22:34:02 +00:00
thorpej
89bf5a8f8e Add trailing ; to CFATTACH_DECL. 2002-10-02 15:52:22 +00:00
thorpej
217c799fe7 Use CFATTACH_DECL(). 2002-10-01 21:24:43 +00:00
thorpej
f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej
6c88de3b53 Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller.  Use it
rather than invoking cfattach->ca_match directly.
2002-09-27 03:17:40 +00:00
thorpej
d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
simonb
63096043b3 Use "#define\t" instead of "#define ". 2002-09-22 08:30:56 +00:00
chs
c081614ea2 it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not.  doh.
2002-09-22 07:53:39 +00:00
chs
55e1f79335 add pmap_remove_all() hook (empty on most platforms so far). 2002-09-22 07:17:08 +00:00
gmcgarry
45d41256f3 Update for cpu_switch() prototype change. No functional change. 2002-09-22 05:40:35 +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
gmcgarry
9fdf5b4b9e Implement CPU spinlocks. Compile-tested only. 2002-09-16 09:12:50 +00:00
gehenna
77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
thorpej
139cdc3125 Make nbuf, nswbuf, and bufpages unsigned. Make all operations on these
variables unsigned, and update places where their values are printed.
2002-08-25 20:21:33 +00:00
msaitoh
3bc4d0b5aa remove extra CRLF conversion 2002-08-16 08:56:27 +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
tsutsui
b55adcb049 Fix disklabel handling on sh3 ports:
- By default, use disklabels in the native endian.
- With options BSDDISKLABEL_EI, kernels can read/write labels
  in the opposite endian.
- With options COMPAT_MMEYE_OLDLABEL, kernels accept labels
  in format used on old mmeyes.
  (Some old mmeyes have "the bootstrap kernel to load kernel from disks"
   on their flash ROMs and it is not easy to update kernels on the ROMs.)
- While here, use leXXtoh() to read some values in MBR.
2002-07-22 15:11:09 +00:00
mjl
395027b4be Correct obviously switched args to memset() 2002-07-18 02:07:13 +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
thorpej
7f7f0f86bd When delivering a signal, arrange for the handler to be invoked
directly.  The trampoline is now used only for the return, and
makes it another 2 instructions shorter.
2002-06-23 18:49:33 +00:00
thorpej
508e2dcf41 When delivering a signal, don't push the signum, code, and context pointer,
or handler onto the stack.  Instead, just stuff them into the correct
argument registers (handler is a "4th arg").
2002-06-23 18:35:05 +00:00
christos
3b50728cf4 MD systrace gluons. 2002-06-17 16:32:57 +00:00
uch
ba28fa4dc2 change disklabel to
16 partition.
 no bsd area of the disk.
2002-05-22 15:01:33 +00:00
msaitoh
7c10da8b66 fix some overflow cases. 2002-05-19 15:10:46 +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
uch
3fb2a4d436 cosmetic changes. 2002-05-10 15:28:45 +00:00
uch
4e8a77d890 clean up disassembler code. 2002-05-10 15:27:05 +00:00
uch
55326aaa7e remove COMPAT_13 staff. No 1.3 release of sh3 port. these are trace of
i386 port.
2002-05-10 15:25:12 +00:00