more testing with different configurations, and work in a number of areas
(which I'm not able to do for a little while), but is at least functional
and stable on i386 with DPT adapters.
Mike Smith <msmith@freebsd.org> for pointing these out.
- Ensure that we get AENs: reserve one CCB/command block for parameter
retrieval, and chain AEN retrievals that are the result of an interrupt.
wdc drivers (like macppc's obio IDE interface) can use it. Also add
support to both wd attach line and to wdc_print_modes() to print
Ultra/{33,66,100} for respective UDMA modes (From Manuel Bouyer).
Use PAGE_SIZE instead of OHCI_PAGE_SIZE for each DMA mem.
OHCI_PAGE_SIZE(2kB) will be round up PAGE_SIZE, anyway.
XXX: need more sophisticated way to manage buffer.
Clear IntEvent first not to lose SelfIDCompleted in multiple bus reset.
Be careful not to clear BusReset int event in SelfID duration to follow
the OHCI spec.
Initiate BusReset if selfid is not completed within 3sec after busreset.
if we do this for VBLK vnodes which are in use by softdep mounts,
brelse() will mark the buffer B_INVAL as well, which makes the
softdep code very unhappy.
and adding it to allproc) after it's fully initialized.
this prevents the scheduler from coming in via a clock interrupt
and tripping over a partially-initialized proc.
emulation-specific data
add process exit, exec and fork function hooks into struct emul:
* e_proc_fork() - called in fork1() after the new forked process is setup
* e_proc_exec() - called in sys_execve() after the executed process is setup
* e_proc_exit() - called in exit1() after all the other process cleanups are
done, right before machine-dependant switch to new context; also called
for "old" emulation from sys_execve() if emulation of executed program and
the original process is different
This was discussed on tech-kern.