Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
0002 /*
0003  * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
0004  *                         University Research and Technology
0005  *                         Corporation.  All rights reserved.
0006  * Copyright (c) 2004-2005 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) 2011-2015 Los Alamos National Security, LLC. All rights
0014  *                         reserved.
0015  * Copyright (c) 2016-2020 Intel, Inc.  All rights reserved.
0016  * Copyright (c) 2021-2022 Nanook Consulting.  All rights reserved.
0017  * $COPYRIGHT$
0018  *
0019  * Additional copyrights may follow
0020  *
0021  * $HEADER$
0022  */
0023 /**
0024  * @file
0025  *
0026  * The PMIx Fork/Exec Subsystem
0027  *
0028  */
0029 
0030 #ifndef PMIX_MCA_PFEXEC_H
0031 #define PMIX_MCA_PFEXEC_H
0032 
0033 #include "pmix_config.h"
0034 #include "pmix_common.h"
0035 #include "src/include/pmix_types.h"
0036 
0037 #include "src/mca/mca.h"
0038 
0039 BEGIN_C_DECLS
0040 
0041 /*
0042  * pfexec module functions
0043  */
0044 
0045 /**
0046  * Locally fork/exec the provided job
0047  */
0048 typedef pmix_status_t (*pmix_pfexec_base_module_spawn_job_fn_t)(
0049     const pmix_info_t job_info[], size_t ninfo, const pmix_app_t apps[], size_t napps,
0050     pmix_spawn_cbfunc_t cbfunc, void *cbdata);
0051 
0052 /**
0053  * Kill the local process we started
0054  */
0055 typedef pmix_status_t (*pmix_pfexec_base_module_kill_process_fn_t)(pmix_proc_t *proc);
0056 
0057 /**
0058  * Signal local process we started
0059  */
0060 typedef pmix_status_t (*pmix_pfexec_base_module_signal_process_fn_t)(pmix_proc_t *proc, int signum);
0061 
0062 /**
0063  * pfexec module version
0064  */
0065 typedef struct {
0066     pmix_pfexec_base_module_spawn_job_fn_t spawn_job;
0067     pmix_pfexec_base_module_kill_process_fn_t kill_proc;
0068     pmix_pfexec_base_module_signal_process_fn_t signal_proc;
0069 } pmix_pfexec_base_module_t;
0070 
0071 /**
0072  * pfexec component
0073  */
0074 typedef pmix_mca_base_component_t pmix_pfexec_base_component_t;
0075 
0076 /**
0077  * Macro for use in modules that are of type pfexec
0078  */
0079 #define PMIX_PFEXEC_BASE_VERSION_1_0_0 PMIX_MCA_BASE_VERSION_1_0_0("pfexec", 1, 0, 0)
0080 
0081 /* Global structure for accessing PFEXEC functions
0082  */
0083 PMIX_EXPORT extern pmix_pfexec_base_module_t
0084     pmix_pfexec; /* holds selected module's function pointers */
0085 
0086 END_C_DECLS
0087 
0088 #endif /* MCA_PFEXEC_H */