diff options
| author | John Dyson <dyson@FreeBSD.org> | 1997-12-12 04:00:59 +0000 |
|---|---|---|
| committer | John Dyson <dyson@FreeBSD.org> | 1997-12-12 04:00:59 +0000 |
| commit | 74b2192ae6309fcbe617ed63389125ff0c152af2 (patch) | |
| tree | f22967b4ad8e929fdab55160590d1e3d3f12807f /sys/kern/kern_linker.c | |
| parent | ba9d19e99b83daaf5ed80c79f915ac179726d150 (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_linker.c')
| -rw-r--r-- | sys/kern/kern_linker.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c index ef83ab310af5..da4b19828635 100644 --- a/sys/kern/kern_linker.c +++ b/sys/kern/kern_linker.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kern_linker.c,v 1.3 1997/11/06 19:29:10 phk Exp $ + * $Id: kern_linker.c,v 1.4 1997/11/20 20:07:45 bde Exp $ */ #include <sys/param.h> @@ -37,6 +37,7 @@ #include <machine/cpu.h> #include <sys/module.h> #include <sys/linker.h> +#include <sys/unistd.h> linker_file_t linker_current_file; @@ -129,8 +130,18 @@ linker_file_sysinit(linker_file_t lf) break; case SI_TYPE_KTHREAD: +#if !defined(SMP) /* kernel thread*/ - if (fork(&proc0, NULL)) + if (fork1(&proc0, RFFDG|RFPROC|RFMEM)) + panic("fork kernel thread"); + cpu_set_fork_handler(pfind(proc0.p_retval[0]), + (*sipp)->func, (*sipp)->udata); + break; +#endif + + case SI_TYPE_KPROCESS: + /* kernel thread*/ + if (fork1(&proc0, RFFDG|RFPROC)) panic("fork kernel process"); cpu_set_fork_handler(pfind(proc0.p_retval[0]), (*sipp)->func, (*sipp)->udata); |
