Commit Graph

1396 Commits

Author SHA1 Message Date
ad
4b293a84e1 Interrupt handling changes, in discussion since February:
- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
2007-12-03 15:33:00 +00:00
ad
dc26833bb6 - Factor out too many copies of the same bit of tty code.
- Fix another tty signalling/wakeup problem.
2007-11-19 18:51:36 +00:00
isaki
6ab6aa4fcf Use the same prototypes as libx68k.h. 2007-11-18 05:00:08 +00:00
isaki
ed972ce998 Correct filename in a comment. 2007-11-18 04:59:51 +00:00
isaki
3a7a8e72de x68k's floppy is 8*2 sect/cyl, not 18*2 sect/cyl. 2007-11-11 13:23:07 +00:00
isaki
61510aae55 ${PROG} depends on libsa and libiocs. 2007-11-11 05:33:12 +00:00
isaki
eaf7a401b6 Style fix. 2007-11-11 05:20:26 +00:00
ad
f2c57d8566 Call zs_lock_init() to set up the chanstate's lock. 2007-11-09 00:05:04 +00:00
ad
d37935697b Merge tty changes from the vmlocking branch. 2007-11-07 15:56:11 +00:00
ad
bd6663fc4d Don't set l_usrpri / spc_curpriority here. mi_userret() does it. 2007-11-05 20:37:48 +00:00
xtraeme
4ba09b41c3 Remove System V semaphores and share memory options to set the limits:
SEMMNI, SEMMNS, SEMUME and SHMMAXPGS.

They can be tweaked via sysctl now. Ports that were setting values on
them weren't touched, I only removed the ones that were commented out.
2007-11-04 14:34:19 +00:00
joerg
d238692c3e Initialise the callbacks for tty.t_rstrt_ch in ttymalloc
as all drivers but Sun/SPARC's kd.c use the same arguments.
Separate callout_reset into callout_schedule and the initial
callout_setfunc using that.
2007-10-18 18:54:56 +00:00
garbled
d974db0ada Merge the ppcoea-renovation branch to HEAD.
This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree.  Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches.  The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
2007-10-17 19:52:51 +00:00
ad
9f56dfa520 Merge brelse() changes from the vmlocking branch. 2007-10-08 18:02:53 +00:00
ad
2af68666da Merge disk init changes from the vmlocking branch. These seperate init /
destroy of 'struct disk' from attach / detach.
2007-10-08 16:41:05 +00:00
mhitch
9b0f085da1 68030 and 68040 processors consider the read portion of a read-modify-write
transfer as a write to ensure the memory is writable before starting any
transfer.  The fault status information does not reflect this in the 'read'
status bit (i.e. it shows up as a read access), so faults with a RMW access
to non-writable memory was not getting the correct protection.  The page would
be read-only and the instruction would fault over and over.

A specific example is when a process forks, and the child process attempts
to execute a RMW access to a data page, which is read-only because it's CoP
Copy-On-Write.

When checking if the page needs to be writablek, also check the locked transfer
and treat any locked transfer as a write.

68060 already handled this correctly, since it has separate read and write
fault bits, and both are set on a RMW access and the trap code was checking
the write status bit.

Fixes PR#36848.
2007-09-01 21:31:55 +00:00
kiyohara
44c89c7646 Replace to Matthew Orgass's slhci(4).
http://mail-index.netbsd.org/tech-kern/2007/06/26/0001.html
2007-08-15 03:53:08 +00:00
ad
9c6535a6de Add ci_cpuid where it's missing. 2007-08-04 09:49:51 +00:00
ad
66fefd117b It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
2007-07-29 12:15:35 +00:00
isaki
d9167e130a Clean up header file. 2007-07-16 07:29:59 +00:00
ad
63811f5275 Generic soft interrupts are mandatory. 2007-07-14 21:48:17 +00:00
isaki
61a446b076 Make it compilable after the merge of some vmlocking branch.
OK'ed by ad@.
2007-07-14 14:13:21 +00:00
ad
d21a1f43dc - Restore com.c 1.45, par.c 1.31. They were trashed due to file system
corruption on my machine.
- Adjust to match callout_init signature change.
2007-07-14 10:46:25 +00:00
isaki
b9fb40c553 Declare candbtimer_ch earlier. 2007-07-14 09:50:04 +00:00
ad
88ab7da936 Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
2007-07-09 20:51:58 +00:00
mhitch
a69c525cfd Ooops - I missed another call to trap. Fixes PR#36567. 2007-06-27 17:55:51 +00:00
isaki
b9c5a4c699 Remove _ZLIB_PRIVATE that should have been removed 10 years ago. 2007-06-23 10:50:24 +00:00
mhitch
d2eac2f631 Pass a frame pointer to trap() rather than the 'entire frame' trick. Gcc4
was optimizing away modifications to the frame contents (it's not nice to
trick gcc).  Pass the pointer as the first argument to reduce the number
of places that would be changed otherwise.  Fixes the getcwd regression
test on most m68k ports.
2007-06-12 03:34:28 +00:00
martin
c2534a819b Add pseudo-device agr to all GENERIC kernels where it might make sense
(commented out in some).
2007-06-04 08:55:18 +00:00
tsutsui
32b0b73c06 Move declarations of m68k common functions
from <machine/cpu.h> to <m68k/m68k.h>.
While here, remove some obsolete function decls.
2007-05-21 16:37:03 +00:00
isaki
d7f5331e03 Make it compilable with FDDEBUG. 2007-05-20 10:52:40 +00:00
mhitch
9385473585 Add missing call to lwp_startup() in lwp_trampoline() (which was renamed
from proc_trampoline to match the other ports).

A DIAGNOSTIC kernel will now boot and run.  LOCKDEBUG still doesn't work yet.
Also, my amiga no longer loses time.
2007-05-20 04:29:47 +00:00
isaki
38bf980ecb Use do { } while (0) to macro. 2007-05-19 14:25:26 +00:00
isaki
2440803ee4 Adapt to the merge of yamt-idlelwp branch.
tested on my X68030.
2007-05-19 14:19:39 +00:00
tsutsui
570ffc1b5b Update comments to sync yamt-km merge (Sysmap has been moved).
See also:
http://mail-index.netbsd.org/source-changes/2005/02/23/0004.html
2007-05-18 10:45:58 +00:00
isaki
23df019b96 Clean up white spaces and tabs. 2007-05-12 06:31:18 +00:00
isaki
9b78dfb5bb Remove a local block for readability. 2007-05-12 06:28:41 +00:00
isaki
5b51f6777d Remove an unnecessary semicolon. 2007-05-12 06:17:38 +00:00
msaitoh
8ce1f4fff2 fix typos 2007-04-29 20:23:34 +00:00
isaki
174e071c25 Remove obsoleted #undef. 2007-04-29 05:31:00 +00:00
isaki
59684b33a0 Make it compilable with DEBUG. 2007-03-21 05:15:50 +00:00
drochner
ab07e481e4 It doesn't make sense to specify "configuration" and "interface"
locators for uhub because a hub can't have sub-devices.
This might be sanity-checked eventually.
Same for ubt now after the change to device attachment.
2007-03-14 12:27:20 +00:00
isaki
e1947f9eb2 Include appropriate header file. 2007-03-11 08:22:33 +00:00
isaki
d30ec9eee3 white space, indent and KNF. 2007-03-11 08:09:23 +00:00
isaki
64e649bb89 Merge #ifdef _KERNEL stuff into one place.
Suggested by tsutsui@.
2007-03-11 07:57:37 +00:00
isaki
2a35e6919b Remove #ifdef _KERNEL since this file is no longer exported.
Suggested by tsutsui@.
2007-03-11 07:57:05 +00:00
isaki
3a58b5c6d0 Stop installing <machine/intr.h> on x68k.
Suggested by simonb@ and tsutsui@.
2007-03-11 06:16:02 +00:00
isaki
16cf7dc30e Include <machine/intr.h> only in _KERNEL.
Suggested by tsutsui@.
2007-03-11 06:15:20 +00:00
isaki
44f16b3b10 Remove an extra white space. 2007-03-11 06:01:05 +00:00
thorpej
32a8b62d33 - Shrink ipl_cookie_t from 32-bits to 16-bits (large enough to hold
an SR value or an IPL_* constant).
- Take advange of the smaller ipl_cookie_t to shrink kmutex_t from
  16 bytes to 8 bytes by overlapping storage where possible.
- Implement a RAS-based _lock_cas() for mc68010 systems (Sun2).  See
  sun68k/sun68k/isr.c.

Tested on various m68k platforms, but NOT Sun2.  In any case, at least
Sun2 compiles now.
2007-03-11 05:22:24 +00:00
he
7ee7450e6f Cast to char* before doing pointer arithmetic. 2007-03-05 20:55:45 +00:00
he
9f6b24c0fa Cast to char* before doing pointer arithmetic. 2007-03-05 20:48:42 +00:00
he
f1f47464be Cast to char* before doing pointer arithmetic. 2007-03-05 20:38:19 +00:00
tsutsui
d5a5c6095d Allocate msgbufaddr in pmap_bootstrap.c where it's initilized,
and move its declaration into <m68k/pmap_motorola.h>.
2007-03-05 12:50:15 +00:00
tsutsui
2735750cca Add (char *) casts on pointer arith. 2007-03-05 12:37:53 +00:00
tsutsui
980acc7d7b Remove an unnecessary cast and use (char *) on pointer arith. 2007-03-05 12:30:37 +00:00
tsutsui
cdfa69a5f8 - add missed '*'
- vmmap is (char *) in pmap_motorola.h
2007-03-05 12:26:55 +00:00
christos
53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
tsutsui
1b20cebad5 Hide #include <m68k/softintr.h> inside #ifdef _KERNEL in <machine/intr.h>
to avoid exporting unnecessary files to userland.
Should fix build.sh failure, which was pointed out by isaki@.

XXX: which userland program would require contents of <machine/intr.h>?
2007-03-04 05:28:38 +00:00
isaki
321252311a Delete old prototypes. 2007-03-04 03:25:33 +00:00
tsutsui
75e46e71a6 Global ssir (similated software intnerrupt request?) is now declared
in softintr.c so remove it from locore.s.
2007-03-04 02:17:15 +00:00
tsutsui
72c70a3609 Add MI softintr(9) support for x68k with common m68k/softintr.c.
Tested by isaki@ and Yasushi Oshima.

XXX: x68k/dev/com.c should be rewritten to use MI com(4).
2007-03-04 02:08:08 +00:00
isaki
c57dd8f6e4 -Wconversion is too strict. 2007-03-03 07:10:30 +00:00
thorpej
ae01c745cb TRUE -> true, FALSE -> false 2007-02-22 06:47:16 +00:00
mrg
4410329b87 add a pair of new bus_dma(9) functions:
int _bus_dmatag_subregion(bus_dma_tag_t tag,
				  bus_addr_t min_addr,
				  bus_addr_t max_addr,
				  bus_dma_tag_t *newtag,
				  int flags)
	void _bus_dmatag_destroy(bus_dma_tag_t tag)

that allow a (normally broken/limited) device to restrict the bus address
range it can talk to.  this is used by bce(4) to limit DMA addresses to
1GB range, the maximum the chip can address.

all this is from Yorick Hardy <yhardy@uj.ac.za> with input from several
people on tech-kern.

XXX: bus_dma(9) needs an update still.
2007-02-21 20:41:23 +00:00
ad
2d62904bd2 More spllowersoftclock() fallout. 2007-02-16 14:00:17 +00:00
ad
3363855a4a Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts
via a soft interrupt. In the near future, softclock will be run from process
context.
2007-02-16 02:53:43 +00:00
ad
b07ec3fc38 Merge newlock2 to head. 2007-02-09 21:55:00 +00:00
hubertf
142c2a33ba Remove duplicate #includes, patch contributed in private mail
by Slava Semushin <slava.semushin@gmail.com>.

To verify that no nasty side effects of duplicate includes (or their
removal) have an effect here, I've compiled an i386/ALL kernel with
and without the patch, and the only difference in the resulting .o
files was in shifted line numbers in some assert() calls.
The comparison of the .o files was based on the output of "objdump -D".

Thanks to martin@ for the input on testing.
2007-01-24 13:08:11 +00:00
isaki
0b16b54211 Bring back the comment which was lost at rev1.35 . 2007-01-08 10:06:29 +00:00
isaki
3bdf14cb4e Bring back the comment which was lost at rev1.22 . 2007-01-08 10:06:08 +00:00
yamt
3f0f3de613 update comments on NFS_V2_ONLY after nqnfs removal. no functional changes.
from Arnaud Lacombe.
2006-12-29 21:49:03 +00:00
yamt
8bf7662829 merge yamt-splraiseipl branch.
- finish implementing splraiseipl (and makeiplcookie).
	  http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
	- complete workqueue(9) and fix its ipl problem, which is reported
	  to cause audio skipping.
	- fix netbt (at least compilation problems) for some ports.
	- fix PR/33218.
2006-12-21 15:55:21 +00:00
scw
e07faf8a74 Replace the myriad copies of bounds_check_with_label() with a single MI
version.

Add disk_blocksize(9) so that disk drivers can record the physical
block size of a disk if it is different to DEV_BSIZE. Right now this
simply initialises dk_blkshift and dk_byteshift according to the
supplied block size. This information is used in the MI version of
bounds_check_with_label().
2006-11-25 11:59:55 +00:00
wiz
6919c6578c s/independant/independent/, from Zafer. 2006-11-24 22:04:21 +00:00
jmmv
7a13fe4abf Remove tmpfs's experimental status. OK'ed by core@. 2006-11-11 18:47:08 +00:00
bjh21
7acb866d02 All of the older COMPAT_?? options imply COMPAT_13, so there's no need to
check each one individually.
2006-11-11 16:58:04 +00:00
he
19b3e362f5 Work around the propagation of volatile-ness from struct to struct members.
OK'ed by nsmrtks.
2006-10-29 16:05:15 +00:00
mrg
648bbec934 in cpu_dumpconf(), don't panic() if we can't bdevsw_lookup() the
dumpdev.  this occurs when we try to set the dumpdev to a device
with no driver loaded.  this fixes PR#34872.

in sys_swapctl, if bdevsw_lookup() fails, set dumpdev = NODEV
before calling cpu_dumpconf().  (this also fixes PR#34872.)

XXX: cpu_dumpconf() should probably be changed to take a dumpdev
XXX: and return an error in such cases, but that is a much more
XXX: intrusive change.

XXX2: this is only run-tested on sparc64 and compile tested on a
XXX2: couple of platforms.
2006-10-21 05:54:31 +00:00
chs
e8295642bd remove MALLOC_NOINLINE, it doesn't do anything anymore. 2006-10-02 03:28:29 +00:00
elad
65792a0340 More from Matt Fleming:
Adapt to KAUTH_DEVICE_TTY_PRIVSET and KAUTH_DEVICE_TTY_OPEN.
2006-10-01 20:31:49 +00:00
elad
bdc51baebb Adapt MD code to KAUTH_DEVICE_TTY_OPEN, batch #2 from Matt Fleming, thanks!
Also, add forgotten splx() calls in some places.
2006-10-01 19:28:43 +00:00
pavel
c1ebd304cc Replace wrong tests for character device (st.st_mode & S_IFCHR) by
S_ISCHR. Originally discovered by Paul Stoeber in OpenBSD.

OK elad@.
2006-09-23 20:10:14 +00:00
gdamore
b7648fa4c0 Convert x68k to timecounters. This conversion is not tested, due to lack
of available test candidates.  It uses the previously unused (as far as I
can tell) Timer D, in freerunning mode.  It only uses a 1/200 prescaler
(20KHz), as anything faster would roll over too fast for the system timer.
(Gotta love 8-bit resolution timers!)  Approved for untested commit by core@.
2006-09-19 10:13:10 +00:00
gdamore
87f5e200d4 Convert references to "time" to calls to "getmicrotime()", needed for
conversion to timecounters.
2006-09-18 22:10:49 +00:00
gdamore
29dad6a290 Converted x68k to todr. Compile tested only, but it has a low probably
of breaking anything.
2006-09-14 01:18:11 +00:00
he
4c2420029f Add duplicate include protection to <dev/sun/kbio.h>.
Make the x68k port use this include file, so that what remains
is only the port-specific additions.
2006-08-28 17:15:24 +00:00
he
03d728a806 Collapse two more separate instances of MD vuid_event.h header
files to instead use the common <dev/sun/vuid_event.h> header.
2006-08-28 16:52:09 +00:00
christos
e0df1e4c51 PR/34283: Gene ENonymous: Add IPFILTER_LOOKUP to the default kernel options
Also remove CCITT,NS,NIP
2006-08-26 20:26:43 +00:00
tsutsui
6ff205ce76 Remove obsolete #options VERIFIED_EXEC, found by grep(1). 2006-08-26 07:59:21 +00:00
skrll
1a3062e81b s/adpater/adapter/
Prompted by PR/34195
2006-08-14 06:22:33 +00:00
christos
b300b74469 Disable SYSTRACE by default on all kernels (discussed with core) 2006-08-12 15:29:52 +00:00
mhitch
74f4d61b61 gcc4 fix: change a couple of volatile void functions. 2006-08-04 02:32:30 +00:00
mhitch
710f94acb4 gcc4 fix: needs string.h 2006-08-04 02:30:48 +00:00
mhitch
856bf4faf5 gcc4 fix: needs stdlib.h 2006-08-04 02:30:00 +00:00
mhitch
1b474f00d6 gcc4 fix: change prototype and definition of volatile void usage(). 2006-08-04 02:23:23 +00:00
mhitch
370e3a585e gcc4 fix: need to cast string variable. 2006-08-04 02:21:19 +00:00
mhitch
8511e80fdb gcc4 fix: gcc4 more strict on checking signed/unsigned. 2006-08-04 02:19:55 +00:00
mhitch
5a37c00320 gcc4 fix: gcc4 bug generates a label twice. This label can't be conveniently
ignored like bpendtsleep, but a clue from the commit skipping the bpendtsleep
label for vax provides a workaround.  Move the label to an earlier location
and gcc4 only generates one label.  The label just marks the start of
memory protected during a memory test, so excluding a little more memory
from that test should be fine.
2006-08-04 02:17:34 +00:00
drochner
84f50d1b92 don't install <machine/db_machdep.h>, this is kernel only 2006-07-26 19:54:56 +00:00