1 /*
2 * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2006 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) 2007 Cisco Systems, Inc. All rights reserved.
13 * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
14 * Copyright (c) 2018 Intel, Inc. All rights reserved.
15 * $COPYRIGHT$
16 *
17 * Additional copyrights may follow
18 *
19 * $HEADER$
20 */
21 /**
22 * @file
23 *
24 * The tool IOF component is used in tools. It is used
25 * to interface to the HNP to request forwarding of stdout/err/diag
26 * from any combination of procs, and to forward stdin from the
27 * tool to a specified proc provided the user has allowed that
28 * functionality.
29 *
30 * Flow control is employed on a per-stream basis to ensure that
31 * SOURCEs don't overwhelm SINK resources (E.g., send an entire input
32 * file to an orted before the target process has read any of it).
33 *
34 */
35 #ifndef ORTE_IOF_TOOL_H
36 #define ORTE_IOF_TOOL_H
37
38 #include "orte_config.h"
39 #include "orte/mca/iof/iof.h"
40
41 BEGIN_C_DECLS
42
43 struct orte_iof_tool_component_t {
44 orte_iof_base_component_t super;
45 bool closed;
46 };
47 typedef struct orte_iof_tool_component_t orte_iof_tool_component_t;
48
49 ORTE_MODULE_DECLSPEC extern orte_iof_tool_component_t mca_iof_tool_component;
50 extern orte_iof_base_module_t orte_iof_tool_module;
51
52 void orte_iof_tool_recv(int status, orte_process_name_t* sender,
53 opal_buffer_t* buffer, orte_rml_tag_t tag,
54 void* cbdata);
55
56 END_C_DECLS
57
58 #endif