text: /*
   * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   *                         University Research and Technology
   *                         Corporation.  All rights reserved.
   * Copyright (c) 2004-2005 The University of Tennessee and The University
   *                         of Tennessee Research Foundation.  All rights
   *                         reserved.
   * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
   *                         University of Stuttgart.  All rights reserved.
   * Copyright (c) 2004-2005 The Regents of the University of California.
   *                         All rights reserved.
   * Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
   * $COPYRIGHT$
   * 
   * Additional copyrights may follow
   * 
   * $HEADER$
   *
   */
  
  #ifndef IOF_BASE_SETUP_H_
  #define IOF_BASE_SETUP_H_
  
  #include "orte_config.h"
  #include "orte/types.h"
  
  struct orte_iof_base_io_conf_t {
      int usepty;
      bool connect_stdin;
  
      /* private - callers should not modify these fields */
      int p_stdin[2];
      int p_stdout[2];
      int p_stderr[2];
      int p_internal[2];
  };
  typedef struct orte_iof_base_io_conf_t orte_iof_base_io_conf_t;
  
  
  /**
   * Do pre-fork IOF setup tasks
   *
   * Do all stdio forwarding that must be done before fork() is called.
   * This might include creating pipes or ptys or similar work.
   */
  ORTE_DECLSPEC int orte_iof_base_setup_prefork(orte_iof_base_io_conf_t *opts);
  
  ORTE_DECLSPEC int orte_iof_base_setup_child(orte_iof_base_io_conf_t *opts,
                                              char ***env);
  
  ORTE_DECLSPEC int orte_iof_base_setup_parent(const orte_process_name_t* name,
                                               orte_iof_base_io_conf_t *opts);
  
  #endif
  