unistr/u*-next: Add missing dependencies.
[gnulib.git] / lib / spawn.in.h
index f1155ce..c4bd80b 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for POSIX spawn interface.
-   Copyright (C) 2000, 2003, 2004, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2003-2004, 2008-2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
 #ifndef _GL_SPAWN_H
 #define _GL_SPAWN_H
 
-#include <sched.h>
-#include <signal.h>
+/* Get definitions of 'struct sched_param' and 'sigset_t'.
+   But avoid namespace pollution on glibc systems.  */
+#ifndef __GLIBC__
+# include <sched.h>
+# include <signal.h>
+#endif
+
 #include <sys/types.h>
 
 #ifndef __THROW
 
 /* The definition of GL_LINK_WARNING is copied here.  */
 
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
 
 /* Data structure to contain attributes for thread creation.  */
 #if @REPLACE_POSIX_SPAWN@
 # define posix_spawnattr_t rpl_posix_spawnattr_t
 #endif
+#if @REPLACE_POSIX_SPAWN@ || !@HAVE_POSIX_SPAWNATTR_T@
 typedef struct
 {
   short int _flags;
@@ -82,6 +90,7 @@ typedef struct
   int _policy;
   int __pad[16];
 } posix_spawnattr_t;
+#endif
 
 
 /* Data structure to contain information about the actions to be
@@ -89,6 +98,7 @@ typedef struct
 #if @REPLACE_POSIX_SPAWN@
 # define posix_spawn_file_actions_t rpl_posix_spawn_file_actions_t
 #endif
+#if @REPLACE_POSIX_SPAWN@ || !@HAVE_POSIX_SPAWN_FILE_ACTIONS_T@
 typedef struct
 {
   int _allocated;
@@ -96,6 +106,7 @@ typedef struct
   struct __spawn_action *_actions;
   int __pad[16];
 } posix_spawn_file_actions_t;
+#endif
 
 
 /* Flags to be set in the `posix_spawnattr_t'.  */
@@ -147,8 +158,15 @@ extern int posix_spawn (pid_t *_Restrict_ __pid,
                         const posix_spawn_file_actions_t *_Restrict_ __file_actions,
                         const posix_spawnattr_t *_Restrict_ __attrp,
                         char *const argv[_Restrict_arr_],
-                        char *const envp[_Restrict_arr_]);
-# endif
+                        char *const envp[_Restrict_arr_])
+     _GL_ARG_NONNULL ((2, 5, 6));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawn
+# define posix_spawn(a,b,c,d,e,f)                   \
+  (GL_LINK_WARNING ("posix_spawn is unportable - "        \
+                    "use gnulib module posix_spawn for portability"),   \
+   posix_spawn (a, b, c, d, e, f))
 #endif
 
 #if @GNULIB_POSIX_SPAWNP@
@@ -163,8 +181,15 @@ extern int posix_spawn (pid_t *_Restrict_ __pid,
 extern int posix_spawnp (pid_t *__pid, const char *__file,
                          const posix_spawn_file_actions_t *__file_actions,
                          const posix_spawnattr_t *__attrp,
-                         char *const argv[], char *const envp[]);
-# endif
+                         char *const argv[], char *const envp[])
+     _GL_ARG_NONNULL ((2, 5, 6));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnp
+# define posix_spawnp(a,b,c,d,e,f)                   \
+  (GL_LINK_WARNING ("posix_spawnp is unportable - "        \
+                    "use gnulib module posix_spawnp for portability"),   \
+   posix_spawnp (a, b, c, d, e, f))
 #endif
 
 
@@ -174,8 +199,15 @@ extern int posix_spawnp (pid_t *__pid, const char *__file,
 #  define posix_spawnattr_init rpl_posix_spawnattr_init
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
-extern int posix_spawnattr_init (posix_spawnattr_t *__attr) __THROW;
-# endif
+extern int posix_spawnattr_init (posix_spawnattr_t *__attr)
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_init
+# define posix_spawnattr_init(a)                   \
+  (GL_LINK_WARNING ("posix_spawnattr_init is unportable - "        \
+                    "use gnulib module posix_spawnattr_init for portability"), \
+   posix_spawnattr_init (a))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_DESTROY@
@@ -184,8 +216,15 @@ extern int posix_spawnattr_init (posix_spawnattr_t *__attr) __THROW;
 #  define posix_spawnattr_destroy rpl_posix_spawnattr_destroy
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
-extern int posix_spawnattr_destroy (posix_spawnattr_t *__attr) __THROW;
-# endif
+extern int posix_spawnattr_destroy (posix_spawnattr_t *__attr)
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_destroy
+# define posix_spawnattr_destroy(a)                   \
+  (GL_LINK_WARNING ("posix_spawnattr_destroy is unportable - "        \
+                    "use gnulib module posix_spawnattr_destroy for portability"), \
+   posix_spawnattr_destroy (a))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@
@@ -197,8 +236,14 @@ extern int posix_spawnattr_destroy (posix_spawnattr_t *__attr) __THROW;
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_getsigdefault (const posix_spawnattr_t *_Restrict_ __attr,
                                           sigset_t *_Restrict_ __sigdefault)
-     __THROW;
-# endif
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_getsigdefault
+# define posix_spawnattr_getsigdefault(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_getsigdefault is unportable - "        \
+                    "use gnulib module posix_spawnattr_getsigdefault for portability"), \
+   posix_spawnattr_getsigdefault (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@
@@ -209,8 +254,14 @@ extern int posix_spawnattr_getsigdefault (const posix_spawnattr_t *_Restrict_ __
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_setsigdefault (posix_spawnattr_t *_Restrict_ __attr,
                                           const sigset_t *_Restrict_ __sigdefault)
-     __THROW;
-# endif
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_setsigdefault
+# define posix_spawnattr_setsigdefault(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_setsigdefault is unportable - "        \
+                    "use gnulib module posix_spawnattr_setsigdefault for portability"), \
+   posix_spawnattr_setsigdefault (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@
@@ -220,8 +271,15 @@ extern int posix_spawnattr_setsigdefault (posix_spawnattr_t *_Restrict_ __attr,
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_getsigmask (const posix_spawnattr_t *_Restrict_ __attr,
-                                       sigset_t *_Restrict_ __sigmask) __THROW;
-# endif
+                                       sigset_t *_Restrict_ __sigmask)
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_getsigmask
+# define posix_spawnattr_getsigmask(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_getsigmask is unportable - "        \
+                    "use gnulib module posix_spawnattr_getsigmask for portability"), \
+   posix_spawnattr_getsigmask (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@
@@ -232,8 +290,14 @@ extern int posix_spawnattr_getsigmask (const posix_spawnattr_t *_Restrict_ __att
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_setsigmask (posix_spawnattr_t *_Restrict_ __attr,
                                        const sigset_t *_Restrict_ __sigmask)
-     __THROW;
-# endif
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_setsigmask
+# define posix_spawnattr_setsigmask(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_setsigmask is unportable - "        \
+                    "use gnulib module posix_spawnattr_setsigmask for portability"), \
+   posix_spawnattr_setsigmask (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
@@ -243,8 +307,15 @@ extern int posix_spawnattr_setsigmask (posix_spawnattr_t *_Restrict_ __attr,
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_getflags (const posix_spawnattr_t *_Restrict_ __attr,
-                                     short int *_Restrict_ __flags) __THROW;
-# endif
+                                     short int *_Restrict_ __flags)
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_getflags
+# define posix_spawnattr_getflags(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_getflags is unportable - "        \
+                    "use gnulib module posix_spawnattr_getflags for portability"), \
+   posix_spawnattr_getflags (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_SETFLAGS@
@@ -254,8 +325,15 @@ extern int posix_spawnattr_getflags (const posix_spawnattr_t *_Restrict_ __attr,
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_setflags (posix_spawnattr_t *__attr,
-                                     short int __flags) __THROW;
-# endif
+                                     short int __flags)
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_setflags
+# define posix_spawnattr_setflags(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_setflags is unportable - "        \
+                    "use gnulib module posix_spawnattr_setflags for portability"), \
+   posix_spawnattr_setflags (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_GETPGROUP@
@@ -266,8 +344,14 @@ extern int posix_spawnattr_setflags (posix_spawnattr_t *__attr,
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_getpgroup (const posix_spawnattr_t *_Restrict_ __attr,
                                       pid_t *_Restrict_ __pgroup)
-     __THROW;
-# endif
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_getpgroup
+# define posix_spawnattr_getpgroup(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_getpgroup is unportable - "        \
+                    "use gnulib module posix_spawnattr_getpgroup for portability"), \
+   posix_spawnattr_getpgroup (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_SETPGROUP@
@@ -277,8 +361,15 @@ extern int posix_spawnattr_getpgroup (const posix_spawnattr_t *_Restrict_ __attr
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_setpgroup (posix_spawnattr_t *__attr,
-                                      pid_t __pgroup) __THROW;
-# endif
+                                      pid_t __pgroup)
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_setpgroup
+# define posix_spawnattr_setpgroup(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_setpgroup is unportable - "        \
+                    "use gnulib module posix_spawnattr_setpgroup for portability"), \
+   posix_spawnattr_setpgroup (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@
@@ -289,8 +380,14 @@ extern int posix_spawnattr_setpgroup (posix_spawnattr_t *__attr,
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_getschedpolicy (const posix_spawnattr_t *_Restrict_ __attr,
                                            int *_Restrict_ __schedpolicy)
-     __THROW;
-# endif
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_getschedpolicy
+# define posix_spawnattr_getschedpolicy(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_getschedpolicy is unportable - "        \
+                    "use gnulib module posix_spawnattr_getschedpolicy for portability"), \
+   posix_spawnattr_getschedpolicy (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@
@@ -300,8 +397,15 @@ extern int posix_spawnattr_getschedpolicy (const posix_spawnattr_t *_Restrict_ _
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_setschedpolicy (posix_spawnattr_t *__attr,
-                                           int __schedpolicy) __THROW;
-# endif
+                                           int __schedpolicy)
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_setschedpolicy
+# define posix_spawnattr_setschedpolicy(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_setschedpolicy is unportable - "        \
+                    "use gnulib module posix_spawnattr_setschedpolicy for portability"), \
+   posix_spawnattr_setschedpolicy (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@
@@ -311,8 +415,15 @@ extern int posix_spawnattr_setschedpolicy (posix_spawnattr_t *__attr,
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_getschedparam (const posix_spawnattr_t *_Restrict_ __attr,
-                                          struct sched_param *_Restrict_ __schedparam) __THROW;
-# endif
+                                          struct sched_param *_Restrict_ __schedparam)
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_getschedparam
+# define posix_spawnattr_getschedparam(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_getschedparam is unportable - "        \
+                    "use gnulib module posix_spawnattr_getschedparam for portability"), \
+   posix_spawnattr_getschedparam (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@
@@ -322,8 +433,15 @@ extern int posix_spawnattr_getschedparam (const posix_spawnattr_t *_Restrict_ __
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawnattr_setschedparam (posix_spawnattr_t *_Restrict_ __attr,
-                                          const struct sched_param *_Restrict_ __schedparam) __THROW;
-# endif
+                                          const struct sched_param *_Restrict_ __schedparam)
+     __THROW _GL_ARG_NONNULL ((1, 2));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawnattr_setschedparam
+# define posix_spawnattr_setschedparam(a, b)                         \
+  (GL_LINK_WARNING ("posix_spawnattr_setschedparam is unportable - "        \
+                    "use gnulib module posix_spawnattr_setschedparam for portability"), \
+   posix_spawnattr_setschedparam (a, b))
 #endif
 
 
@@ -333,8 +451,15 @@ extern int posix_spawnattr_setschedparam (posix_spawnattr_t *_Restrict_ __attr,
 #  define posix_spawn_file_actions_init rpl_posix_spawn_file_actions_init
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
-extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t *__file_actions) __THROW;
-# endif
+extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t *__file_actions)
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawn_file_actions_init
+# define posix_spawn_file_actions_init(a)                         \
+  (GL_LINK_WARNING ("posix_spawn_file_actions_init is unportable - "        \
+                    "use gnulib module posix_spawn_file_actions_init for portability"), \
+   posix_spawn_file_actions_init (a))
 #endif
 
 #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@
@@ -343,8 +468,15 @@ extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t *__file_act
 #  define posix_spawn_file_actions_destroy rpl_posix_spawn_file_actions_destroy
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
-extern int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *__file_actions) __THROW;
-# endif
+extern int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *__file_actions)
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawn_file_actions_destroy
+# define posix_spawn_file_actions_destroy(a)                         \
+  (GL_LINK_WARNING ("posix_spawn_file_actions_destroy is unportable - "        \
+                    "use gnulib module posix_spawn_file_actions_destroy for portability"), \
+   posix_spawn_file_actions_destroy (a))
 #endif
 
 #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@
@@ -358,8 +490,14 @@ extern int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *_Restri
                                              int __fd,
                                              const char *_Restrict_ __path,
                                              int __oflag, mode_t __mode)
-     __THROW;
-# endif
+     __THROW _GL_ARG_NONNULL ((1, 3));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawn_file_actions_addopen
+# define posix_spawn_file_actions_addopen(a, b, c, d, e)                     \
+  (GL_LINK_WARNING ("posix_spawn_file_actions_addopen is unportable - "        \
+                    "use gnulib module posix_spawn_file_actions_addopen for portability"), \
+   posix_spawn_file_actions_addopen (a, b, c, d, e))
 #endif
 
 #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@
@@ -371,8 +509,14 @@ extern int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *_Restri
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *__file_actions,
                                               int __fd)
-     __THROW;
-# endif
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawn_file_actions_addclose
+# define posix_spawn_file_actions_addclose(a,b)                          \
+  (GL_LINK_WARNING ("posix_spawn_file_actions_addclose is unportable - "        \
+                    "use gnulib module posix_spawn_file_actions_addclose for portability"), \
+   posix_spawn_file_actions_addclose (a, b))
 #endif
 
 #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@
@@ -383,8 +527,15 @@ extern int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *__file
 # endif
 # if !@HAVE_POSIX_SPAWN@ || @REPLACE_POSIX_SPAWN@
 extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *__file_actions,
-                                             int __fd, int __newfd) __THROW;
-# endif
+                                             int __fd, int __newfd)
+     __THROW _GL_ARG_NONNULL ((1));
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef posix_spawn_file_actions_adddup2
+# define posix_spawn_file_actions_adddup2(a,b,c)                         \
+  (GL_LINK_WARNING ("posix_spawn_file_actions_adddup2 is unportable - "        \
+                    "use gnulib module posix_spawn_file_actions_adddup2 for portability"), \
+   posix_spawn_file_actions_adddup2 (a, b, c))
 #endif