diff options
author | raf <none@none> | 2006-12-13 11:41:29 -0800 |
---|---|---|
committer | raf <none@none> | 2006-12-13 11:41:29 -0800 |
commit | 657b1f3d64bcf8eaa2385dba72a6047f089433b2 (patch) | |
tree | f39954fcde5cecefa713fa403e7e4b55a83f7c0d /usr/src/uts/common/sys/fork.h | |
parent | 7b55fa8ea6046becb3b72f8886a503979c322084 (diff) | |
download | illumos-joyent-657b1f3d64bcf8eaa2385dba72a6047f089433b2.tar.gz |
PSARC 2006/659 fork extensions
6497356 fork extensions
--HG--
rename : usr/src/lib/libc/amd64/sys/forkall.s => usr/src/lib/libc/amd64/sys/forkallx.s
rename : usr/src/lib/libc/amd64/sys/fork1.s => usr/src/lib/libc/amd64/sys/forkx.s
rename : usr/src/lib/libc/amd64/sys/vfork.s => usr/src/lib/libc/amd64/sys/vforkx.s
rename : usr/src/lib/libc/i386/sys/forkall.s => usr/src/lib/libc/i386/sys/forkallx.s
rename : usr/src/lib/libc/i386/sys/fork1.s => usr/src/lib/libc/i386/sys/forkx.s
rename : usr/src/lib/libc/i386/sys/vfork.s => usr/src/lib/libc/i386/sys/vforkx.s
rename : usr/src/lib/libc/sparc/sys/forkall.s => usr/src/lib/libc/sparc/sys/forkallx.s
rename : usr/src/lib/libc/sparc/sys/fork1.s => usr/src/lib/libc/sparc/sys/forkx.s
rename : usr/src/lib/libc/sparc/sys/vfork.s => usr/src/lib/libc/sparc/sys/vforkx.s
Diffstat (limited to 'usr/src/uts/common/sys/fork.h')
-rw-r--r-- | usr/src/uts/common/sys/fork.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/usr/src/uts/common/sys/fork.h b/usr/src/uts/common/sys/fork.h new file mode 100644 index 0000000000..2952bc505d --- /dev/null +++ b/usr/src/uts/common/sys/fork.h @@ -0,0 +1,83 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ + +/* + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SYS_FORK_H +#define _SYS_FORK_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#include <sys/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) + +#if !defined(_KERNEL) + +extern pid_t forkx(int); +extern pid_t forkallx(int); +extern pid_t vforkx(int); + +#if defined(__sparc) +#pragma unknown_control_flow(vforkx) +#endif + +#endif /* !defined(_KERNEL) */ + +/* + * The argument to any of the forkx() functions is a set of flags + * formed by or-ing together zero or more of the following flags. + * fork()/forkall()/vfork() are equivalent to the corresponding + * forkx()/forkallx()/vforkx() functions with a zero argument. + */ + +/* + * Do not post a SIGCHLD signal to the parent when the child terminates, + * regardless of the disposition of the SIGCHLD signal in the parent. + * SIGCHLD signals are still possible for job control stop and continue + * actions (CLD_STOPPED, CLD_CONTINUED) if the parent has requested them. + */ +#define FORK_NOSIGCHLD 0x0001 + +/* + * Do not allow wait-for-multiple-pids by the parent, as in waitid(P_ALL) + * or waitid(P_PGID), to reap the child and do not allow the child to + * be reaped automatically due the disposition of the SIGCHLD signal + * being set to be ignored. Only a specific wait for the child, as + * in waitid(P_PID, pid), is allowed and it is required, else when + * the child exits it will remain a zombie until the parent exits. + */ +#define FORK_WAITPID 0x0002 + +#endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_FORK_H */ |