Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:47:29

0001 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
0002 /*
0003  * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
0004  *                         University Research and Technology
0005  *                         Corporation.  All rights reserved.
0006  * Copyright (c) 2004-2006 The University of Tennessee and The University
0007  *                         of Tennessee Research Foundation.  All rights
0008  *                         reserved.
0009  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
0010  *                         University of Stuttgart.  All rights reserved.
0011  * Copyright (c) 2004-2005 The Regents of the University of California.
0012  *                         All rights reserved.
0013  * Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights
0014  *                         reserved.
0015  * Copyright (c) 2015-2019 Intel, Inc.  All rights reserved.
0016  * Copyright (c) 2020      Cisco Systems, Inc.  All rights reserved
0017  * Copyright (c) 2021-2022 Nanook Consulting.  All rights reserved.
0018  * $COPYRIGHT$
0019  *
0020  * Additional copyrights may follow
0021  *
0022  * $HEADER$
0023  */
0024 /** @file:
0025  *
0026  * Contains the internal functions and typedefs for the use of the oob
0027  */
0028 
0029 #ifndef MCA_OOB_H_
0030 #define MCA_OOB_H_
0031 
0032 #include "prte_config.h"
0033 #include "types.h"
0034 
0035 #ifdef HAVE_UNISTD_H
0036 #    include <unistd.h>
0037 #endif
0038 #ifdef HAVE_SYS_UIO_H
0039 #    include <sys/uio.h>
0040 #endif
0041 #ifdef HAVE_NET_UIO_H
0042 #    include <net/uio.h>
0043 #endif
0044 
0045 #include "src/class/pmix_list.h"
0046 #include "src/class/pmix_pointer_array.h"
0047 #include "src/mca/mca.h"
0048 #include "src/pmix/pmix-internal.h"
0049 
0050 #include "src/rml/rml_types.h"
0051 
0052 BEGIN_C_DECLS
0053 
0054 typedef int (*mca_oob_base_component_avail_fn_t)(void);
0055 typedef int (*mca_oob_base_component_startup_fn_t)(void);
0056 typedef void (*mca_oob_base_component_shutdown_fn_t)(void);
0057 typedef int (*mca_oob_base_component_send_fn_t)(prte_rml_send_t *msg);
0058 typedef char *(*mca_oob_base_component_get_addr_fn_t)(void);
0059 typedef int (*mca_oob_base_component_set_addr_fn_t)(pmix_proc_t *peer, char **uris);
0060 typedef bool (*mca_oob_base_component_is_reachable_fn_t)(pmix_proc_t *peer);
0061 typedef void (*mca_oob_ping_callback_fn_t)(int status, void *cbdata);
0062 
0063 typedef struct {
0064     pmix_mca_base_component_t oob_base;
0065     int idx;
0066     int priority;
0067     mca_oob_base_component_avail_fn_t available;
0068     mca_oob_base_component_startup_fn_t startup;
0069     mca_oob_base_component_shutdown_fn_t shutdown;
0070     mca_oob_base_component_send_fn_t send_nb;
0071     mca_oob_base_component_get_addr_fn_t get_addr;
0072     mca_oob_base_component_set_addr_fn_t set_addr;
0073     mca_oob_base_component_is_reachable_fn_t is_reachable;
0074 } prte_oob_base_component_t;
0075 
0076 /**
0077  * Macro for use in components that are of type oob
0078  */
0079 #define PRTE_OOB_BASE_VERSION_2_0_0 PRTE_MCA_BASE_VERSION_3_0_0("oob", 2, 0, 0)
0080 
0081 END_C_DECLS
0082 
0083 #endif