Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 10:12:57

0001 /*
0002  * Copyright (c) 2014-2019 Intel, Inc.  All rights reserved.
0003  * Copyright (c) 2020      Cisco Systems, Inc.  All rights reserved
0004  * Copyright (c) 2021-2022 Nanook Consulting.  All rights reserved.
0005  * $COPYRIGHT$
0006  *
0007  * Additional copyrights may follow
0008  *
0009  * $HEADER$
0010  */
0011 /** @file:
0012  * rtc framework base functionality.
0013  */
0014 
0015 #ifndef PRTE_MCA_RTC_BASE_H
0016 #define PRTE_MCA_RTC_BASE_H
0017 
0018 /*
0019  * includes
0020  */
0021 #include "prte_config.h"
0022 #include "types.h"
0023 
0024 #include "src/class/pmix_list.h"
0025 #include "src/mca/mca.h"
0026 #include "src/mca/odls/base/base.h"
0027 #include "src/util/pmix_printf.h"
0028 
0029 #include "src/mca/rtc/rtc.h"
0030 
0031 BEGIN_C_DECLS
0032 
0033 /*
0034  * MCA Framework
0035  */
0036 PRTE_EXPORT extern pmix_mca_base_framework_t prte_rtc_base_framework;
0037 /* select a component */
0038 PRTE_EXPORT int prte_rtc_base_select(void);
0039 
0040 /*
0041  * Global functions for MCA overall collective open and close
0042  */
0043 
0044 /**
0045  * Struct to hold data global to the rtc framework
0046  */
0047 typedef struct {
0048     /* list of selected modules */
0049     pmix_list_t actives;
0050 } prte_rtc_base_t;
0051 
0052 /**
0053  * Global instance of rtc-wide framework data
0054  */
0055 PRTE_EXPORT extern prte_rtc_base_t prte_rtc_base;
0056 
0057 /**
0058  * Select an rtc component / module
0059  */
0060 typedef struct {
0061     pmix_list_item_t super;
0062     int pri;
0063     prte_rtc_base_module_t *module;
0064     pmix_mca_base_component_t *component;
0065 } prte_rtc_base_selected_module_t;
0066 PMIX_CLASS_DECLARATION(prte_rtc_base_selected_module_t);
0067 
0068 PRTE_EXPORT void prte_rtc_base_assign(prte_job_t *jdata);
0069 PRTE_EXPORT void prte_rtc_base_set(prte_odls_spawn_caddy_t *cd, int error_fd);
0070 PRTE_EXPORT void prte_rtc_base_get_avail_vals(pmix_list_t *vals);
0071 
0072 /* Called from the child to send a warning show_help message up the
0073    pipe to the waiting parent. */
0074 PRTE_EXPORT int prte_rtc_base_send_warn_show_help(int fd, const char *file, const char *topic, ...);
0075 
0076 /* Called from the child to send an error message up the pipe to the
0077    waiting parent. */
0078 PRTE_EXPORT void prte_rtc_base_send_error_show_help(int fd, int exit_status, const char *file,
0079                                                     const char *topic, ...);
0080 
0081 END_C_DECLS
0082 
0083 #endif