Author: aurel32
Date: 2011-07-19 11:17:16 +0000 (Tue, 19 Jul 2011)
New Revision: 4800

Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/kfreebsd/local-sysdeps.diff
Log:
  * kfreebsd/local-sysdeps.diff, update to revision 3616 (from glibc-bsd),
    fixing LD_PRELOAD with a kfreebsd-9 kernel (closes: #630695) and 
    tst-atime when build in a noatime filesystem (closes: #634152).



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog        2011-07-19 10:57:43 UTC (rev 
4799)
+++ glibc-package/trunk/debian/changelog        2011-07-19 11:17:16 UTC (rev 
4800)
@@ -6,6 +6,9 @@
     results.  Closes: #632863.
   * Add patches/localedata/locale-os_RU.diff from upstream to add Ossetian
     locale.  Closes: #634508.
+  * kfreebsd/local-sysdeps.diff, update to revision 3616 (from glibc-bsd),
+    fixing LD_PRELOAD with a kfreebsd-9 kernel (closes: #630695) and 
+    tst-atime when build in a noatime filesystem (closes: #634152).
 
  -- Aurelien Jarno <[email protected]>  Sun, 10 Jul 2011 22:01:11 +0200
 

Modified: glibc-package/trunk/debian/patches/kfreebsd/local-sysdeps.diff
===================================================================
--- glibc-package/trunk/debian/patches/kfreebsd/local-sysdeps.diff      
2011-07-19 10:57:43 UTC (rev 4799)
+++ glibc-package/trunk/debian/patches/kfreebsd/local-sysdeps.diff      
2011-07-19 11:17:16 UTC (rev 4800)
@@ -3181,6 +3181,46 @@
 +#define _DIRENT_HAVE_D_NAMLEN 1
 +#define _DIRENT_HAVE_D_TYPE 1
 --- /dev/null
++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/elf.h
+@@ -0,0 +1,37 @@
++/* This file defines standard ELF types, structures, and macros.
++   Copyright (C) 1995-2003,2004,2005,2006,2007,2008,2009,2010
++      Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef _BITS_ELF_H
++#define _BITS_ELF_H
++
++__BEGIN_DECLS
++
++#define       AT_EXECPATH     15      /* Path to the executable. */
++#define       AT_CANARY       16      /* Canary for SSP. */
++#define       AT_CANARYLEN    17      /* Length of the canary. */
++#define       AT_OSRELDATE    18      /* OSRELDATE. */
++#define       AT_NCPUS        19      /* Number of CPUs. */
++#define       AT_PAGESIZES    20      /* Pagesizes. */
++#define       AT_PAGESIZESLEN 21      /* Number of pagesizes. */
++#define       AT_STACKPROT    23      /* Initial stack protection. */
++
++__END_DECLS
++
++#endif        /* elf.h */
+--- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/errno.h
 @@ -0,0 +1,183 @@
 +/*-
@@ -6268,7 +6308,7 @@
 +#endif /* _BITS_STATFS_H */
 --- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statvfs.h
-@@ -0,0 +1,95 @@
+@@ -0,0 +1,97 @@
 +/* Definition of `struct statvfs', information about a filesystem.
 +   Copyright (C) 1998, 2000-2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -6360,8 +6400,10 @@
 +# define ST_NODEV     ST_NODEV
 +  ST_NOEXEC = 8,              /* Disallow program execution.  */
 +# define ST_NOEXEC    ST_NOEXEC
-+  ST_SYNCHRONOUS = 16         /* Writes are synced at once.  */
++  ST_SYNCHRONOUS = 16,                /* Writes are synced at once.  */
 +# define ST_SYNCHRONOUS       ST_SYNCHRONOUS
++  ST_NOATIME = 1024,          /* Do not update access times.  */
++# define ST_NOATIME   ST_NOATIME
 +#endif        /* Use GNU.  */
 +};
 --- /dev/null
@@ -7345,7 +7387,7 @@
 +#include <sysdeps/unix/clock_settime.c>
 --- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clone.c
-@@ -0,0 +1,108 @@
+@@ -0,0 +1,144 @@
 +/* Create a thread.
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -7374,6 +7416,29 @@
 +#include <stddef.h>
 +#undef __clone
 +
++
++#include <sys/sysctl.h>
++
++static inline int
++__kernel_osreldate(void)
++{
++    static int osreldate;
++
++    int mib[2];
++    size_t size;
++    char *temp;
++
++    if (osreldate == 0)
++    {
++      mib[0] = CTL_KERN;
++      mib[1] = KERN_OSRELDATE;
++      size = sizeof osreldate;
++      if (__sysctl(mib, 2, &osreldate, &size, NULL, 0) == -1)
++              return (-1);
++    }         
++    return (osreldate);
++}
++
 +/* __start_thread (flags, child_stack, fn, arg)
 +   is roughly equivalent to
 +
@@ -7411,7 +7476,20 @@
 +    }
 +
 +  if ((flags & CSIGNAL) != SIGCHLD)
++  {
++    if (__kernel_osreldate() >= 802509)    /* XXX have to be updated after 
upstream merge */
++                /* we slightly cheat here, */
++                /* the 9.x snapshot prior to r223966 does not support it too 
*/
 +    {
++      if ((flags & CSIGNAL) & ~RFTSIGMASK)
++      {
++        __set_errno (EINVAL);
++        return -1;
++      }
++        rfork_flags |= (RFTSIGZMB | RFTSIGFLAGS(flags & CSIGNAL));
++    }
++    else
++    {
 +      if ((flags & CSIGNAL) & ~RFTHPNMASK)
 +      {
 +        __set_errno (EINVAL);
@@ -7422,7 +7500,7 @@
 +      else
 +        rfork_flags |= (RFLINUXTHPN | ((flags & CSIGNAL) <<  RFTHPNSHIFT));
 +    }
-+
++  } 
 +  if (flags & CLONE_VM)
 +    rfork_flags |= RFMEM;
 +
@@ -8523,10 +8601,58 @@
 +}
 +
 --- /dev/null
++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-support.c
+@@ -0,0 +1,44 @@
++/* Dynamic linker system dependencies for GNU/kFreeBSD.
++   Copyright (C) 2011 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#define _dl_aux_init _dl_aux_init_ignored_code
++#include <elf/dl-support.c>
++#include <bits/elf.h>
++#undef _dl_aux_init
++
++#ifdef HAVE_AUX_VECTOR
++void
++internal_function
++_dl_aux_init (ElfW(auxv_t) *av)
++{
++  for (; av->a_type != AT_NULL; ++av)
++    switch (av->a_type)
++      {
++      case AT_PAGESZ:
++      GLRO(dl_pagesize) = av->a_un.a_val;
++      break;
++      case AT_PHDR:
++      GL(dl_phdr) = (void *) av->a_un.a_val;
++      break;
++      case AT_PHNUM:
++      GL(dl_phnum) = av->a_un.a_val;
++      break;
++      }
++}
++#endif
+--- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-sysdep.c
-@@ -0,0 +1,56 @@
+@@ -0,0 +1,248 @@
 +/* Dynamic linker system dependencies for GNU/kFreeBSD.
-+   Copyright (C) 2008 Free Software Foundation, Inc.
++   Copyright (C) 1995-1998,2000-2008,2009,2010,2011
++        Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
 +
 +   The GNU C Library is free software; you can redistribute it and/or
@@ -8555,9 +8681,200 @@
 +#include <kernel-features.h>
 +
 +#ifdef SHARED
++# define _dl_sysdep_start _dl_sysdep_start_ignored_code
++# define _dl_show_auxv _dl_show_auxv_ignored_code
 +# include <elf/dl-sysdep.c>
++# include <bits/elf.h>
++# undef _dl_sysdep_start
++# undef _dl_show_auxv
++
++ElfW(Addr)
++_dl_sysdep_start (void **start_argptr,
++                void (*dl_main) (const ElfW(Phdr) *phdr, ElfW(Word) phnum,
++                                 ElfW(Addr) *user_entry, ElfW(auxv_t) *auxv))
++{
++  const ElfW(Phdr) *phdr = NULL;
++  ElfW(Word) phnum = 0;
++  ElfW(Addr) user_entry;
++  ElfW(auxv_t) *av;
++  uid_t uid = 0;
++  gid_t gid = 0;
++#ifdef NEED_DL_SYSINFO
++  uintptr_t new_sysinfo = 0;
 +#endif
 +
++  __libc_stack_end = DL_STACK_END (start_argptr);
++  DL_FIND_ARG_COMPONENTS (start_argptr, _dl_argc, INTUSE(_dl_argv), _environ,
++                        _dl_auxv);
++
++  user_entry = (ElfW(Addr)) ENTRY_POINT;
++  GLRO(dl_platform) = NULL; /* Default to nothing known about the platform.  
*/
++
++  for (av = _dl_auxv; av->a_type != AT_NULL; av++)
++    switch (av->a_type)
++      {
++      case AT_PHDR:
++      phdr = (void *) av->a_un.a_val;
++      break;
++      case AT_PHNUM:
++      phnum = av->a_un.a_val;
++      break;
++      case AT_PAGESZ:
++      GLRO(dl_pagesize) = av->a_un.a_val;
++      break;
++      case AT_ENTRY:
++      user_entry = av->a_un.a_val;
++      break;
++#ifdef NEED_DL_BASE_ADDR
++      case AT_BASE:
++      _dl_base_addr = av->a_un.a_val;
++      break;
++#endif
++      }
++
++    {
++      /* Fill in the values we have not gotten from the kernel through the
++       auxiliary vector.  */
++#  undef SEE
++#  define SEE(UID, var, uid) \
++   var ^= __get##uid ()
++      SEE (UID, uid, uid);
++      SEE (EUID, uid, euid);
++      SEE (GID, gid, gid);
++      SEE (EGID, gid, egid);
++
++      /* If one of the two pairs of IDs does not match this is a setuid
++       or setgid run.  */
++      INTUSE(__libc_enable_secure) = uid | gid;
++    }
++
++#ifndef HAVE_AUX_PAGESIZE
++  if (GLRO(dl_pagesize) == 0)
++    GLRO(dl_pagesize) = __getpagesize ();
++#endif
++
++#if defined NEED_DL_SYSINFO
++  /* Only set the sysinfo value if we also have the vsyscall DSO.  */
++  if (GLRO(dl_sysinfo_dso) != 0 && new_sysinfo)
++    GLRO(dl_sysinfo) = new_sysinfo;
++#endif
++
++#ifdef DL_SYSDEP_INIT
++  DL_SYSDEP_INIT;
++#endif
++
++#ifdef DL_PLATFORM_INIT
++  DL_PLATFORM_INIT;
++#endif
++
++  /* Determine the length of the platform name.  */
++  if (GLRO(dl_platform) != NULL)
++    GLRO(dl_platformlen) = strlen (GLRO(dl_platform));
++
++  if (__sbrk (0) == _end)
++    /* The dynamic linker was run as a program, and so the initial break
++       starts just after our bss, at &_end.  The malloc in dl-minimal.c
++       will consume the rest of this page, so tell the kernel to move the
++       break up that far.  When the user program examines its break, it
++       will see this new value and not clobber our data.  */
++    __sbrk (GLRO(dl_pagesize)
++          - ((_end - (char *) 0) & (GLRO(dl_pagesize) - 1)));
++
++  /* If this is a SUID program we make sure that FDs 0, 1, and 2 are
++     allocated.  If necessary we are doing it ourself.  If it is not
++     possible we stop the program.  */
++  if (__builtin_expect (INTUSE(__libc_enable_secure), 0))
++    __libc_check_standard_fds ();
++
++  (*dl_main) (phdr, phnum, &user_entry, _dl_auxv);
++  return user_entry;
++}
++
++void
++internal_function
++_dl_show_auxv (void)
++{
++  char buf[64];
++  ElfW(auxv_t) *av;
++
++  /* Terminate string.  */
++  buf[63] = '\0';
++
++  /* The following code assumes that the AT_* values are encoded
++     starting from 0 with AT_NULL, 1 for AT_IGNORE, and all other values
++     close by (otherwise the array will be too large).  In case we have
++     to support a platform where these requirements are not fulfilled
++     some alternative implementation has to be used.  */
++  for (av = _dl_auxv; av->a_type != AT_NULL; ++av)
++    {
++      static const struct
++      {
++      const char label[17];
++      enum { unknown = 0, dec, hex, str, ignore } form : 8;
++      } auxvars[] =
++      {
++        [AT_EXECFD - 2] =             { "EXECFD:       ", dec },
++        [AT_PHDR - 2] =               { "PHDR:         0x", hex },
++        [AT_PHENT - 2] =              { "PHENT:        ", dec },
++        [AT_PHNUM - 2] =              { "PHNUM:        ", dec },
++        [AT_PAGESZ - 2] =             { "PAGESZ:       ", dec },
++        [AT_BASE - 2] =               { "BASE:         0x", hex },
++        [AT_FLAGS - 2] =              { "FLAGS:        0x", hex },
++        [AT_ENTRY - 2] =              { "ENTRY:        0x", hex },
++#ifndef __powerpc__
++        /* For some odd reason these are not in sys/powerpc/include/elf.h.  */
++        [AT_NOTELF - 2] =             { "NOTELF:       ", hex },
++        [AT_UID - 2] =                { "UID:          ", dec },
++        [AT_EUID - 2] =               { "EUID:         ", dec },
++        [AT_GID - 2] =                { "GID:          ", dec },
++        [AT_EGID - 2] =               { "EGID:         ", dec },
++#endif
++        [AT_EXECPATH - 2] =           { "EXECPATH      ", str },
++        [AT_CANARY - 2] =             { "CANARY:       0x", hex },
++        [AT_CANARYLEN - 2] =          { "CANARYLEN:    ", dec },
++        [AT_OSRELDATE - 2] =          { "OSRELDATE:    ", dec },
++        [AT_NCPUS - 2] =              { "NCPUS:        ", dec },
++        [AT_PAGESIZES - 2] =          { "PAGESIZES:    0x", hex },
++        [AT_PAGESIZESLEN - 2] =       { "PAGESIZESLEN: ", dec },
++        [AT_STACKPROT - 2] =          { "STACKPROT:    0x", hex },
++      };
++      unsigned int idx = (unsigned int) (av->a_type - 2);
++
++      if ((unsigned int) av->a_type < 2u || auxvars[idx].form == ignore)
++      continue;
++
++      assert (AT_NULL == 0);
++      assert (AT_IGNORE == 1);
++
++      if (idx < sizeof (auxvars) / sizeof (auxvars[0])
++        && auxvars[idx].form != unknown)
++      {
++        const char *val = (char *) av->a_un.a_val;
++
++        if (__builtin_expect (auxvars[idx].form, dec) == dec)
++          val = _itoa ((unsigned long int) av->a_un.a_val,
++                       buf + sizeof buf - 1, 10, 0);
++        else if (__builtin_expect (auxvars[idx].form, hex) == hex)
++          val = _itoa ((unsigned long int) av->a_un.a_val,
++                       buf + sizeof buf - 1, 16, 0);
++
++        _dl_printf ("AT_%s%s\n", auxvars[idx].label, val);
++
++        continue;
++      }
++
++      /* Unknown value: print a generic line.  */
++      char buf2[17];
++      buf2[sizeof (buf2) - 1] = '\0';
++      const char *val2 = _itoa ((unsigned long int) av->a_un.a_val,
++                              buf2 + sizeof buf2 - 1, 16, 0);
++      const char *val =  _itoa ((unsigned long int) av->a_type,
++                              buf + sizeof buf - 1, 16, 0);
++      _dl_printf ("AT_??? (0x%s): 0x%s\n", val, val2);
++    }
++}
++#endif
++
 +int
 +attribute_hidden
 +_dl_discover_osversion (void)
@@ -11091,7 +11408,7 @@
 +}
 --- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getosreldate.c
-@@ -0,0 +1,54 @@
+@@ -0,0 +1,58 @@
 +/*
 + * Copyright (c) 1989, 1993
 + *    The Regents of the University of California.  All rights reserved.
@@ -11128,22 +11445,26 @@
 +int
 +__getosreldate(void)
 +{
-+      int mib[2];
-+      size_t size;
-+      int value;
-+      char *temp;
++    static int osreldate;
 +
++    int mib[2];
++    size_t size;
++    char *temp;
++
++    if (osreldate == 0)
++    {
 +      if ((temp = getenv("OSVERSION"))) {
-+              value = atoi(temp);
-+              return (value);
++              osreldate = atoi(temp);
++              return (osreldate);
 +      }
 +
 +      mib[0] = CTL_KERN;
 +      mib[1] = KERN_OSRELDATE;
-+      size = sizeof value;
-+      if (sysctl(mib, 2, &value, &size, NULL, 0) == -1)
++      size = sizeof osreldate;
++      if (__sysctl(mib, 2, &osreldate, &size, NULL, 0) == -1)
 +              return (-1);
-+      return (value);
++    }         
++    return (osreldate);
 +}
 +weak_alias (__getosreldate, getosreldate)
 --- /dev/null
@@ -20179,6 +20500,48 @@
 +
 +#endif /* !_PATHS_H_ */
 --- /dev/null
++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/powerpc/bits/elf.h
+@@ -0,0 +1,39 @@
++/* This file defines standard ELF types, structures, and macros.
++   Copyright (C) 2011 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef _BITS_ELF_H
++#define _BITS_ELF_H
++
++__BEGIN_DECLS
++
++#define       AT_DCACHEBSIZE  10      /* Data cache block size for the 
processor. */
++#define       AT_ICACHEBSIZE  11      /* Instruction cache block size for the 
uP. */
++#define       AT_UCACHEBSIZE  12      /* Cache block size, or `0' if cache 
not unified. */
++#define       AT_EXECPATH     13      /* Path to the executable. */
++#define       AT_CANARY       14      /* Canary for SSP */
++#define       AT_CANARYLEN    15      /* Length of the canary. */
++#define       AT_OSRELDATE    16      /* OSRELDATE. */
++#define       AT_NCPUS        17      /* Number of CPUs. */
++#define       AT_PAGESIZES    18      /* Pagesizes. */
++#define       AT_PAGESIZESLEN 19      /* Number of pagesizes. */
++#define       AT_STACKPROT    21      /* Initial stack protection. */
++
++__END_DECLS
++
++#endif        /* elf.h */
+--- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread.c
 @@ -0,0 +1,69 @@
 +/* Copyright (C) 2002 Free Software Foundation, Inc.
@@ -22353,7 +22716,7 @@
 +}
 --- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfsconv.c
-@@ -0,0 +1,203 @@
+@@ -0,0 +1,205 @@
 +/* Convert between different 'struct statfs' and 'struct statvfs' formats.
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -22520,7 +22883,8 @@
 +    | (pk->f_flags & MNT_NOSUID ? ST_NOSUID : 0)
 +    | (pk->f_flags & MNT_NODEV ? ST_NODEV : 0)
 +    | (pk->f_flags & MNT_NOEXEC ? ST_NOEXEC : 0)
-+    | (pk->f_flags & MNT_SYNCHRONOUS ? ST_SYNCHRONOUS : 0);
++    | (pk->f_flags & MNT_SYNCHRONOUS ? ST_SYNCHRONOUS : 0)
++    | (pk->f_flags & MNT_NOATIME ? ST_NOATIME : 0);
 +  p32->f_namemax      = pk->f_namemax;
 +
 +  memset (p32->f_spare, '\0', sizeof (p32->f_spare));
@@ -22552,7 +22916,8 @@
 +    | (pk->f_flags & MNT_NOSUID ? ST_NOSUID : 0)
 +    | (pk->f_flags & MNT_NODEV ? ST_NODEV : 0)
 +    | (pk->f_flags & MNT_NOEXEC ? ST_NOEXEC : 0)
-+    | (pk->f_flags & MNT_SYNCHRONOUS ? ST_SYNCHRONOUS : 0);
++    | (pk->f_flags & MNT_SYNCHRONOUS ? ST_SYNCHRONOUS : 0)
++    | (pk->f_flags & MNT_NOATIME ? ST_NOATIME : 0);
 +  p64->f_namemax      = pk->f_namemax;
 +
 +  memset (p64->f_spare, '\0', sizeof (p64->f_spare));
@@ -23689,7 +24054,7 @@
 +#endif
 --- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/rfork.h
-@@ -0,0 +1,91 @@
+@@ -0,0 +1,98 @@
 +/* Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
 +
@@ -23763,6 +24128,13 @@
 +#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       RFTSIGZMB       (1<<19) /* select signal for exit parent 
notification */
++#define       RFTSIGSHIFT     20      /* selected signal number is in bits 
20-27  */
++#define       RFTSIGMASK      0xFF
++#define       RFTSIGNUM(flags)        (((flags) >> RFTSIGSHIFT) & RFTSIGMASK)
++#define       RFTSIGFLAGS(signum)     ((signum) << RFTSIGSHIFT)
 +#define RFPPWAIT      (1<<31) /* parent sleeps until child exits (vfork) */
 +
 +#define RFTHPNSHIFT   24      /* reserve bits 24-30 */


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to