Commit Graph

41830 Commits

Author SHA1 Message Date
jdolecek baae0324b9 restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
  provide single struct emul per emulation
* elf:
  - kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
    per emulation and contains pointer to respective probe function
  - interp is allocated via MALLOC() rather than on stack
  - elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
  to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
  emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
  part of appropriate execsw[] entry
* constify couple of structures
2000-11-21 00:37:49 +00:00
soren 1a5d87c9fa Regen. 2000-11-21 00:25:43 +00:00
soren 219abdb871 Typo. 2000-11-21 00:25:35 +00:00
soren 6faa85c6d3 Note 3Com card support. 2000-11-21 00:25:20 +00:00
soren 6f8985cf15 Regen. 2000-11-21 00:25:04 +00:00
soren 7736bcc821 Add Prolific printer adapter. 2000-11-21 00:24:12 +00:00
soren e38c89a886 s/iRDA/IrDA/ 2000-11-21 00:20:30 +00:00
soren 1bbc3bd9b5 Same as sys/dev/md_root.c. 2000-11-21 00:18:03 +00:00
soren 0bb338521a Use dev/md_root.c. 2000-11-21 00:17:33 +00:00
soren d1b07f4fee Same as sys/dev/md_root.c. 2000-11-21 00:17:08 +00:00
soren 36ae7c2b02 Use dev/md_root.c. 2000-11-21 00:16:33 +00:00
soren 263f913967 Remove obsolete comment. 2000-11-21 00:15:20 +00:00
jdolecek e5b244c609 disable the LM_EXEC stuff for now, it doesn't work anyway
this will be fixed 'soon'
2000-11-21 00:11:38 +00:00
perseant c398987151 More locked_queue_* and lfs_avail accounting fixes from Jesse Off
<joff@gci-net.com>.  Remove a specious btodb() in lfs_fragextend, and
count blocks shrunk or removed by VOP_TRUNCATE in lfs_avail.
2000-11-21 00:00:31 +00:00
thorpej f595d8e741 Ooops, do the last only if MULTIPROCESSOR. 2000-11-20 21:18:07 +00:00
thorpej 13c94ca56c We've fixed enough bugs that we can actually acquire the scheduler
lock, jump into the idle loop, and run user code!  Yippee!
2000-11-20 20:40:17 +00:00
thorpej b37faa6ca5 Protect microtime_slock appropriately. 2000-11-20 20:37:52 +00:00
jdolecek bc146d0eb0 make const the struct emul * pointers passed/used in stackgap_init(),
stackgap_alloc()
2000-11-20 20:23:07 +00:00
thorpej e12f731db5 On the Alpha, interprocessor interrupts come in at the same priority
as normal device interrupts.  Because of this, we won't get IPIs while
servicing such interrupts.  This can lead to the following deadlock
scenario as reported by Bill Sommerfeld:
- Process runs on cpu1, but has FP state on cpu0.
- Process executes FP-using insn, causing an FP trap, which causes
  the kernel lock to be acquired.
- At roughly the same time, cpu0 receives a device interrupt, and attempts
  to acquire the kernel lock, which blocks since cpu1 already has it.
- cpu1 sends cpu0 a SYNCH FPU IPI, and waits for cpu0 to release its
  FP state.
- Since cpu0 cannot notice the IPI until it has processed the device
  interrupt, which it cannot do because it cannot acquire the kernel
  lock, we have deadlock.

Solve the problem by adding a spinlock interlock release hook which
checks for pending IPIs and processes them.

Idea from Bill Sommerfeld.
2000-11-20 20:17:13 +00:00
jdolecek 0630488eda fix typo 2000-11-20 20:07:36 +00:00
thorpej 3075dec01a Allow machine dependent code to specify a hook to be run when a
spinlock's interlock is released.

Idea from Bill Sommerfeld.
2000-11-20 20:04:49 +00:00
jdolecek 3b15e411a3 add moxa0 at isa entry, marked as experimental
This was not added also to other config files primarily because the
driver is not properly tested yet; this entry is primarily meant as an example
for those brave souls who want to try moxa.
2000-11-20 19:53:43 +00:00
scw b6f0a678dd Add support for the m68060-based machines: MVME-172 and MVME-177.
CPU support taken from a combination of NetBSD/amiga and NetBSD/x68k.

At this time, MVME-172 works but MVME-177 is untested. Since the '177
is otherwise identical to the MVME-167, this should *just work*.
2000-11-20 19:35:28 +00:00
jdolecek 1964a728da add moxa 2000-11-20 19:27:16 +00:00
thorpej fdfb847e3e Make ci_ipis volatile. 2000-11-20 19:25:43 +00:00
jdolecek c27af44fc0 Add an attachment for MOXA 168P isa multiport card. This code was
written by Christoph Badura.
This was reported to work by user of this code. It's not tested
by me, but it's probably more useful in tree anyway.
2000-11-20 19:24:39 +00:00
thorpej 7f059c8e69 Move IPI processing into a separate function. 2000-11-20 19:24:36 +00:00
thorpej 5a22e57dc3 Print the CPU ID while dumping trap info. 2000-11-20 15:33:39 +00:00
tsubai 11b48d8a4d Thermal Management Interrupt is available on 750, too. 2000-11-20 15:16:04 +00:00
tsutsui 2cd77d5700 Fix swapped keycode for '[' and ']'. 2000-11-20 14:55:15 +00:00
onoe 2819c7b688 Use DMA from mbuf instead of copy in transmit.
Still use memcpy in receiving because we must use buffer fill mode
	and many packets may share single receive buffer.

XXX: Workaround(?) for CXD3222: it fails to DMA for selfid packet according
to code placement. I'm not sure about the reason (cache? timing? bug?).

Fixed the bug: transmitter sometimes stop and OACTIVE bit of if_fw
never be cleared.
Fixed the bug: freeing free buffer.

Enable ieee1394_drain and ieee1394_watchdog for loss of fragment.
2000-11-20 12:12:18 +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
veego a174b8a595 simple_lock_held is only defined when you use LOCKDEBUG.
Put it for now in an ifdef LOCKDEBUG.
2000-11-20 06:36:02 +00:00
onoe 4e1e677996 regen.
CXD32222 -> CXD3222 (Sony OHCI Controller)
2000-11-20 06:23:13 +00:00
onoe e51b1f604e CXD32222 -> CXD3222 (Sony OHCI Controller) 2000-11-20 06:22:13 +00:00
thorpej 2f1e131332 Delete a block of code that was intended to get the second
CPU to handle interrupts, but prevents a whole slew of things
from working properly on the second CPU.  It is no longer
necessary now that several other bugs have been fixed.
2000-11-20 03:15:15 +00:00
thorpej fe5b367ce6 In Idle(), only switch to the idle PCB if we're not already running
on it, and make sure to deactivate the old process's address space,
as this will not otherwise be done by cpu_switch() later once we're
on the idle PCB.

Also, update some comments related to when s0 (i.e. the old process)
is NULL in the context switching code.
2000-11-20 02:44:45 +00:00
soren 046ce58634 Enable com at cardbus. 2000-11-20 02:00:46 +00:00
simonb f104ee65be Add a sysctl_rdminstruct() function - same as sysctl_rdstruct() but
can return short data if *oldlenp is less than len.
2000-11-20 01:46:56 +00:00
jdolecek 2faa9db8c1 cosmetic change in brand string handling (NULL vs. "")
drop Xeon from PIII Cascades entry, it should be handled by the brand id
support (pointed out by Scott Telford in private e-mail).
2000-11-19 23:38:22 +00:00
jdolecek 26fe6166ed check_pty(): simple_unlock() might have been called even if the lock was
not locked previously in some cases; unlock only if the lock is held
2000-11-19 22:34:56 +00:00
matt 95a8447ccf Add G4 specific exceptions (include AltiVec). 2000-11-19 20:48:20 +00:00
matt bb71a6b332 Add AltiVec VSCR definitions. 2000-11-19 20:41:04 +00:00
sommerfeld 2a0dca4bec Correct conditionalization of last change. 2000-11-19 20:11:12 +00:00
sommerfeld 8074b0b0b2 MULTIPROCESSOR: context switch to cpu's idle pcb before unlocking the
scheduler in idle so our stack doesn't get stolen out from underneath us.
2000-11-19 20:08:36 +00:00
sommerfeld c0c9c552c0 Fix obvious typo (don't mark current cpu as not running when doing a
broadcast IPI).
2000-11-19 20:05:25 +00:00
matt b1e1cfdb4a Add AltiVec VEC bit. 2000-11-19 19:52:37 +00:00
thorpej 87819535b2 Synch cpu_hatch() with the i386:
- print the same style message when the CPU is running.
- Initialize ci->ci_schedstate.spc_runtime on the CPU.
2000-11-19 19:18:19 +00:00
thorpej 69a3a857be As a temporary measure, protect microtime() with a simple lock.
XXX Needs to be rewritten from scratch.
2000-11-19 19:16:44 +00:00
martin 4a0283d9f0 Allow changing of settings via ioctl only for the superuser.
Fixes PR security/11524.
2000-11-19 18:48:44 +00:00