(root)/
bison-3.8.2/
lib/
spawn_int.h
       1  /* Copyright (C) 2000, 2008-2021 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     This file is free software: you can redistribute it and/or modify
       5     it under the terms of the GNU Lesser General Public License as
       6     published by the Free Software Foundation; either version 2.1 of the
       7     License, or (at your option) any later version.
       8  
       9     This file is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      12     GNU Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public License
      15     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  #include <sys/types.h>
      18  
      19  /* Data structure to contain the action information.  */
      20  struct __spawn_action
      21  {
      22    enum
      23    {
      24      spawn_do_close,
      25      spawn_do_dup2,
      26      spawn_do_open,
      27      spawn_do_chdir,
      28      spawn_do_fchdir
      29    } tag;
      30  
      31    union
      32    {
      33      struct
      34      {
      35        int fd;
      36      } close_action;
      37      struct
      38      {
      39        int fd;
      40        int newfd;
      41      } dup2_action;
      42      struct
      43      {
      44        int fd;
      45        char *path;
      46        int oflag;
      47        mode_t mode;
      48      } open_action;
      49      struct
      50      {
      51        char *path;
      52      } chdir_action;
      53      struct
      54      {
      55        int fd;
      56      } fchdir_action;
      57    } action;
      58  };
      59  
      60  #if !_LIBC
      61  # define __posix_spawn_file_actions_realloc gl_posix_spawn_file_actions_realloc
      62  #endif
      63  extern int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t *
      64                                                 file_actions);
      65  
      66  #if !_LIBC
      67  # define __spawni gl_posix_spawn_internal
      68  #endif
      69  extern int __spawni (pid_t *pid, const char *path,
      70                       const posix_spawn_file_actions_t *file_actions,
      71                       const posix_spawnattr_t *attrp, const char *const argv[],
      72                       const char *const envp[], int use_path);