Should the bit slice be 7 or 8 bits ?

I propose to go 8 bits, and add the check to be future-proof.

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.

No, the version in brandnote is compile-time minimal supported version,
we will detect at runtime (by "sysctl kern.osreldate") which interface we should use.


So far defined rfork() options:

/*
 * XXX currently, some operations without RFPROC set are not supported.
 */

#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 group' */
#define RFPROC          (1<<4)    /* change child (else changes 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 notification */
#define RFSTOPPED       (1<<17)   /* leave child in a stopped state */
#define RFHIGHPID       (1<<18)   /* use a pid higher than 10 (idleproc) */
#define RFPPWAIT        (1<<31)   /* parent sleeps until child exits (vfork) */
#define RFKERNELONLY    (RFSTOPPED | RFHIGHPID | RFPPWAIT)


The new interface will add:

#define RFTSIGZMB       (1<<19)
#define RFTSIGSHIFT 20 /* reserve bits 20-27 */ #define RFTSIGMASK 0xFF #define RFTSIGNUM(flags) (((flags) >> RFTSIGSHIFT) & RFTSIGMASK)
#define RFTSIGFLAGS(signum) ((signum) << RFTSIGSHIFT)

Seems this interface be acceptable ?

Petr

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to