1 /* 2 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana 3 * University Research and Technology 4 * Corporation. All rights reserved. 5 * Copyright (c) 2004-2005 The University of Tennessee and The University 6 * of Tennessee Research Foundation. All rights 7 * reserved. 8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 9 * University of Stuttgart. All rights reserved. 10 * Copyright (c) 2004-2005 The Regents of the University of California. 11 * All rights reserved. 12 * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. 13 * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. 14 * $COPYRIGHT$ 15 * 16 * Additional copyrights may follow 17 * 18 * $HEADER$ 19 * 20 */ 21 22 #ifndef IOF_BASE_SETUP_H_ 23 #define IOF_BASE_SETUP_H_ 24 25 #include "orte_config.h" 26 #include "orte/types.h" 27 28 #include "orte/mca/iof/base/base.h" 29 30 struct orte_iof_base_io_conf_t { 31 int usepty; 32 bool connect_stdin; 33 34 /* private - callers should not modify these fields */ 35 int p_stdin[2]; 36 int p_stdout[2]; 37 int p_stderr[2]; 38 #if OPAL_PMIX_V1 39 int p_internal[2]; 40 #endif 41 }; 42 typedef struct orte_iof_base_io_conf_t orte_iof_base_io_conf_t; 43 44 45 /** 46 * Do pre-fork IOF setup tasks 47 * 48 * Do all stdio forwarding that must be done before fork() is called. 49 * This might include creating pipes or ptys or similar work. 50 */ 51 ORTE_DECLSPEC int orte_iof_base_setup_prefork(orte_iof_base_io_conf_t *opts); 52 53 ORTE_DECLSPEC int orte_iof_base_setup_child(orte_iof_base_io_conf_t *opts, 54 char ***env); 55 56 ORTE_DECLSPEC int orte_iof_base_setup_parent(const orte_process_name_t* name, 57 orte_iof_base_io_conf_t *opts); 58 59 /* setup output files */ 60 ORTE_DECLSPEC int orte_iof_base_setup_output_files(const orte_process_name_t* dst_name, 61 orte_job_t *jobdat, 62 orte_iof_proc_t *proct); 63 64 #endif 65