We currently have routines like fork1() and killpg1() in /sys/kern/*
to implement generic functionality for actions with more than one
"front-end".  

NetBSD has done something similar for signals, so that emulators
with non-BSD signal semantics can implement their way of doing things
as an emulator-specific front-end without polluting the rest of the
kernel.

The SysVR4 emulator started using that stuff fairly heavily in NetBSD
from November last year.  I haven't merged those changes into the FreeBSD
version because, well, the *1 routines aren't there yet.

I wanted to get a bit of discussion going before ploughing ahead with
making the change because I'm uneasy about kernel-wide changes simply
to support an emulator (unstaticizing a function here and there is one
thing, completely altering the implementation architecture of something
that already works is something else entirely).

If I split sigaction(), sigsuspend(), sigpending(), sigprocmask() and
sigaltstack() into front-end and back-end pieces a-la NetBSD so that
emulator-specific signal semantics can be imposed without totally
duplicating those routines inside the emulator (like I did with 
sendit() and recvit() for socket I/O), will anyone complain?

   - mark

--------------------------------------------------------------------
I tried an internal modem,                    new...@atdot.dotat.org
     but it hurt when I walked.                          Mark Newton
----- Voice: +61-4-1958-3414 ------------- Fax: +61-8-83034403 -----

To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to