(root)/
make-4.4/
src/
w32/
include/
sub_proc.h
       1  /* Definitions for Windows process invocation.
       2  Copyright (C) 1996-2022 Free Software Foundation, Inc.
       3  This file is part of GNU Make.
       4  
       5  GNU Make is free software; you can redistribute it and/or modify it under the
       6  terms of the GNU General Public License as published by the Free Software
       7  Foundation; either version 3 of the License, or (at your option) any later
       8  version.
       9  
      10  GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
      11  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
      12  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
      13  
      14  You should have received a copy of the GNU General Public License along with
      15  this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  #ifndef SUB_PROC_H
      18  #define SUB_PROC_H
      19  
      20  /*
      21   * Component Name:
      22   *
      23   * $Date$
      24   *
      25   * $Source$
      26   *
      27   * $Id$
      28   */
      29  
      30  #define EXTERN_DECL(entry, args) extern entry args
      31  #define VOID_DECL void
      32  
      33  EXTERN_DECL(HANDLE process_init, (VOID_DECL));
      34  EXTERN_DECL(HANDLE process_init_fd, (HANDLE stdinh, HANDLE stdouth,
      35                                       HANDLE stderrh));
      36  EXTERN_DECL(long process_begin, (HANDLE proc, char **argv, char **envp,
      37                                   char *exec_path, char *as_user));
      38  EXTERN_DECL(long process_pipe_io, (HANDLE proc, char *stdin_data,
      39                                     int stdin_data_len));
      40  EXTERN_DECL(long process_file_io, (HANDLE proc));
      41  EXTERN_DECL(void process_cleanup, (HANDLE proc));
      42  EXTERN_DECL(HANDLE process_wait_for_any, (int block, DWORD* pdwWaitStatus));
      43  EXTERN_DECL(void process_register, (HANDLE proc));
      44  EXTERN_DECL(HANDLE process_easy, (char** argv, char** env,
      45                                    int outfd, int errfd));
      46  EXTERN_DECL(BOOL process_kill, (HANDLE proc, int signal));
      47  EXTERN_DECL(BOOL process_table_full, (VOID_DECL));
      48  EXTERN_DECL(int process_table_usable_size, (VOID_DECL));
      49  EXTERN_DECL(int process_table_actual_size, (VOID_DECL));
      50  EXTERN_DECL(DWORD process_set_handles, (HANDLE *handles));
      51  EXTERN_DECL(DWORD process_wait_for_multiple_objects, (DWORD, const HANDLE*, BOOL, DWORD));
      52  
      53  /* support routines */
      54  EXTERN_DECL(long process_errno, (HANDLE proc));
      55  EXTERN_DECL(long process_last_err, (HANDLE proc));
      56  EXTERN_DECL(long process_exit_code, (HANDLE proc));
      57  EXTERN_DECL(long process_signal, (HANDLE proc));
      58  EXTERN_DECL(char * process_outbuf, (HANDLE proc));
      59  EXTERN_DECL(char * process_errbuf, (HANDLE proc));
      60  EXTERN_DECL(int process_outcnt, (HANDLE proc));
      61  EXTERN_DECL(int process_errcnt, (HANDLE proc));
      62  EXTERN_DECL(void process_pipes, (HANDLE proc, int pipes[3]));
      63  
      64  #endif