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