--ib0MfiC6BuP+wsSj
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Mon, Jul 11, 2011 at 08:05:56PM +0200, Petr Salinger wrote:
> >>Should the bit slice be 7 or 8 bits ?
>=20
> >I propose to go 8 bits, and add the check to be future-proof.
>=20
> >It seems that we already parse GNU/kFreeBSD brandnote. I think this
> >could be used to distinguish between old behaviour, that is currently
> >used by your libc, and proposed new interface, if __FreeBSD_version
> >is bumped and honored by glibc. You might need to store the brandinfo
> >somewhere in struct proc or use the separate struct sysentvec.
>=20
> No, the version in brandnote is compile-time minimal supported version,
> we will detect at runtime (by "sysctl kern.osreldate") which interface we=
=20
> should use.
>=20
>=20
> So far defined rfork() options:
>=20
> /*
> * XXX currently, some operations without RFPROC set are not supported.
> */
>=20
> #define RFNAMEG (1<<0) /* UNIMPL new plan9 `name space' */
> #define RFENVG (1<<1) /* UNIMPL copy plan9 `env space' */
> #define RFFDG (1<<2) /* copy fd table */
> #define RFNOTEG (1<<3) /* UNIMPL create new plan9 `note=20
> group' */
> #define RFPROC (1<<4) /* change child (else changes=20
> curproc) */
> #define RFMEM (1<<5) /* share `address space' */
> #define RFNOWAIT (1<<6) /* give child to init */
> #define RFCNAMEG (1<<10) /* UNIMPL zero plan9 `name space' */
> #define RFCENVG (1<<11) /* UNIMPL zero plan9 `env space' */
> #define RFCFDG (1<<12) /* close all fds, zero fd table */
> #define RFTHREAD (1<<13) /* enable kernel thread support */
> #define RFSIGSHARE (1<<14) /* share signal handlers */
> #define RFLINUXTHPN (1<<16) /* do linux clone exit parent=20
> notification */
> #define RFSTOPPED (1<<17) /* leave child in a stopped state */
> #define RFHIGHPID (1<<18) /* use a pid higher than 10=20
> (idleproc) */
> #define RFPPWAIT (1<<31) /* parent sleeps until child exits=20
> (vfork) */
> #define RFKERNELONLY (RFSTOPPED | RFHIGHPID | RFPPWAIT)
>=20
>=20
> The new interface will add:
>=20
> #define RFTSIGZMB (1<<19)
> #define RFTSIGSHIFT 20 /* reserve bits 20-27 */=20
> #define RFTSIGMASK 0xFF=20
> #define RFTSIGNUM(flags) (((flags) >> RFTSIGSHIFT) & RFTSIGMASK)
> #define RFTSIGFLAGS(signum) ((signum) << RFTSIGSHIFT)
>=20
> Seems this interface be acceptable ?
Looks good to me.
--ib0MfiC6BuP+wsSj
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (FreeBSD)
iEYEARECAAYFAk4bOsYACgkQC3+MBN1Mb4j6hgCfYSWLtnCtQ8i0t+q5ONU2S4iZ
Xu4AoOqUDzohAK7PbnZBEzYQkGHcHpx+
=LIfS
-----END PGP SIGNATURE-----
--ib0MfiC6BuP+wsSj--