Skip to content
This repository was archived by the owner on Sep 30, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 59 additions & 59 deletions opal/mca/pmix/external/pmix_ext.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
* Copyright (c) 2014-2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
* Copyright (c) 2014 Mellanox Technologies, Inc.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what happened here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In order to sync the external glue code to the internal one, I did a simple copy of the internal to the external, and then updated the names to the new component. So the copyrights and everything else just flowed across.

* All rights reserved.
* $COPYRIGHT$
*
Expand Down Expand Up @@ -44,85 +44,85 @@
/* These are functions used by both client and server to
* access common functions in the embedded PMIx library */

static const char *pmix1_get_nspace(opal_jobid_t jobid);
static void pmix1_register_jobid(opal_jobid_t jobid, const char *nspace);
static const char *pmix_ext_get_nspace(opal_jobid_t jobid);
static void pmix_ext_register_jobid(opal_jobid_t jobid, const char *nspace);

const opal_pmix_base_module_t opal_pmix_external_module = {
/* client APIs */
.init = pmix1_client_init,
.finalize = pmix1_client_finalize,
.initialized = pmix1_initialized,
.abort = pmix1_abort,
.commit = pmix1_commit,
.fence = pmix1_fence,
.fence_nb = pmix1_fencenb,
.put = pmix1_put,
.get = pmix1_get,
.get_nb = pmix1_getnb,
.publish = pmix1_publish,
.publish_nb = pmix1_publishnb,
.lookup = pmix1_lookup,
.lookup_nb = pmix1_lookupnb,
.unpublish = pmix1_unpublish,
.unpublish_nb = pmix1_unpublishnb,
.spawn = pmix1_spawn,
.spawn_nb = pmix1_spawnnb,
.connect = pmix1_connect,
.connect_nb = pmix1_connectnb,
.disconnect = pmix1_disconnect,
.disconnect_nb = pmix1_disconnectnb,
.resolve_peers = pmix1_resolve_peers,
.resolve_nodes = pmix1_resolve_nodes,
.init = pmix_ext_client_init,
.finalize = pmix_ext_client_finalize,
.initialized = pmix_ext_initialized,
.abort = pmix_ext_abort,
.commit = pmix_ext_commit,
.fence = pmix_ext_fence,
.fence_nb = pmix_ext_fencenb,
.put = pmix_ext_put,
.get = pmix_ext_get,
.get_nb = pmix_ext_getnb,
.publish = pmix_ext_publish,
.publish_nb = pmix_ext_publishnb,
.lookup = pmix_ext_lookup,
.lookup_nb = pmix_ext_lookupnb,
.unpublish = pmix_ext_unpublish,
.unpublish_nb = pmix_ext_unpublishnb,
.spawn = pmix_ext_spawn,
.spawn_nb = pmix_ext_spawnnb,
.connect = pmix_ext_connect,
.connect_nb = pmix_ext_connectnb,
.disconnect = pmix_ext_disconnect,
.disconnect_nb = pmix_ext_disconnectnb,
.resolve_peers = pmix_ext_resolve_peers,
.resolve_nodes = pmix_ext_resolve_nodes,
/* server APIs */
.server_init = pmix1_server_init,
.server_finalize = pmix1_server_finalize,
.generate_regex = pmix1_server_gen_regex,
.generate_ppn = pmix1_server_gen_ppn,
.server_register_nspace = pmix1_server_register_nspace,
.server_deregister_nspace = pmix1_server_deregister_nspace,
.server_register_client = pmix1_server_register_client,
.server_deregister_client = pmix1_server_deregister_client,
.server_setup_fork = pmix1_server_setup_fork,
.server_dmodex_request = pmix1_server_dmodex,
.server_notify_error = pmix1_server_notify_error,
.server_init = pmix_ext_server_init,
.server_finalize = pmix_ext_server_finalize,
.generate_regex = pmix_ext_server_gen_regex,
.generate_ppn = pmix_ext_server_gen_ppn,
.server_register_nspace = pmix_ext_server_register_nspace,
.server_deregister_nspace = pmix_ext_server_deregister_nspace,
.server_register_client = pmix_ext_server_register_client,
.server_deregister_client = pmix_ext_server_deregister_client,
.server_setup_fork = pmix_ext_server_setup_fork,
.server_dmodex_request = pmix_ext_server_dmodex,
.server_notify_error = pmix_ext_server_notify_error,
/* utility APIs */
.get_version = PMIx_Get_version,
.register_errhandler = opal_pmix_base_register_handler,
.deregister_errhandler = opal_pmix_base_deregister_handler,
.store_local = pmix1_store_local,
.get_nspace = pmix1_get_nspace,
.register_jobid = pmix1_register_jobid
.store_local = pmix_ext_store_local,
.get_nspace = pmix_ext_get_nspace,
.register_jobid = pmix_ext_register_jobid
};

static const char *pmix1_get_nspace(opal_jobid_t jobid)
static const char *pmix_ext_get_nspace(opal_jobid_t jobid)
{
opal_pmix1_jobid_trkr_t *jptr;
opal_pmix_ext_jobid_trkr_t *jptr;

OPAL_LIST_FOREACH(jptr, &mca_pmix_external_component.jobids, opal_pmix1_jobid_trkr_t) {
OPAL_LIST_FOREACH(jptr, &mca_pmix_external_component.jobids, opal_pmix_ext_jobid_trkr_t) {
if (jptr->jobid == jobid) {
return jptr->nspace;
}
}
return NULL;
}

static void pmix1_register_jobid(opal_jobid_t jobid, const char *nspace)
static void pmix_ext_register_jobid(opal_jobid_t jobid, const char *nspace)
{
opal_pmix1_jobid_trkr_t *jptr;
opal_pmix_ext_jobid_trkr_t *jptr;

/* if we don't already have it, add this to our jobid tracker */
OPAL_LIST_FOREACH(jptr, &mca_pmix_external_component.jobids, opal_pmix1_jobid_trkr_t) {
OPAL_LIST_FOREACH(jptr, &mca_pmix_external_component.jobids, opal_pmix_ext_jobid_trkr_t) {
if (jptr->jobid == jobid) {
return;
}
}
jptr = OBJ_NEW(opal_pmix1_jobid_trkr_t);
jptr = OBJ_NEW(opal_pmix_ext_jobid_trkr_t);
(void)strncpy(jptr->nspace, nspace, PMIX_MAX_NSLEN);
jptr->jobid = jobid;
opal_list_append(&mca_pmix_external_component.jobids, &jptr->super);
}

pmix_status_t pmix1_convert_opalrc(int rc)
pmix_status_t pmix_ext_convert_opalrc(int rc)
{
switch (rc) {
case OPAL_ERR_UNPACK_READ_PAST_END_OF_BUFFER:
Expand Down Expand Up @@ -184,7 +184,7 @@ pmix_status_t pmix1_convert_opalrc(int rc)
}
}

int pmix1_convert_rc(pmix_status_t rc)
int pmix_ext_convert_rc(pmix_status_t rc)
{
switch (rc) {
case PMIX_ERR_UNPACK_READ_PAST_END_OF_BUFFER:
Expand Down Expand Up @@ -269,7 +269,7 @@ int pmix1_convert_rc(pmix_status_t rc)
}
}

void pmix1_value_load(pmix_value_t *v,
void pmix_ext_value_load(pmix_value_t *v,
opal_value_t *kv)
{
switch(kv->type) {
Expand Down Expand Up @@ -370,7 +370,7 @@ void pmix1_value_load(pmix_value_t *v,
}
}

int pmix1_value_unload(opal_value_t *kv,
int pmix_ext_value_unload(opal_value_t *kv,
const pmix_value_t *v)
{
int rc=OPAL_SUCCESS;
Expand Down Expand Up @@ -475,11 +475,11 @@ int pmix1_value_unload(opal_value_t *kv,


/**** INSTANTIATE INTERNAL CLASSES ****/
OBJ_CLASS_INSTANCE(opal_pmix1_jobid_trkr_t,
OBJ_CLASS_INSTANCE(opal_pmix_ext_jobid_trkr_t,
opal_list_item_t,
NULL, NULL);

static void opcon(pmix1_opcaddy_t *p)
static void opcon(pmix_ext_opcaddy_t *p)
{
memset(&p->p, 0, sizeof(pmix_proc_t));
p->procs = NULL;
Expand All @@ -497,7 +497,7 @@ static void opcon(pmix1_opcaddy_t *p)
p->spcbfunc = NULL;
p->cbdata = NULL;
}
static void opdes(pmix1_opcaddy_t *p)
static void opdes(pmix_ext_opcaddy_t *p)
{
if (NULL != p->procs) {
PMIX_PROC_FREE(p->procs, p->nprocs);
Expand All @@ -512,11 +512,11 @@ static void opdes(pmix1_opcaddy_t *p)
PMIX_APP_FREE(p->apps, p->sz);
}
}
OBJ_CLASS_INSTANCE(pmix1_opcaddy_t,
OBJ_CLASS_INSTANCE(pmix_ext_opcaddy_t,
opal_object_t,
opcon, opdes);

static void ocadcon(pmix1_opalcaddy_t *p)
static void ocadcon(pmix_ext_opalcaddy_t *p)
{
OBJ_CONSTRUCT(&p->procs, opal_list_t);
OBJ_CONSTRUCT(&p->info, opal_list_t);
Expand All @@ -530,12 +530,12 @@ static void ocadcon(pmix1_opalcaddy_t *p)
p->odmdxfunc = NULL;
p->ocbdata = NULL;
}
static void ocaddes(pmix1_opalcaddy_t *p)
static void ocaddes(pmix_ext_opalcaddy_t *p)
{
OPAL_LIST_DESTRUCT(&p->procs);
OPAL_LIST_DESTRUCT(&p->info);
OPAL_LIST_DESTRUCT(&p->apps);
}
OBJ_CLASS_INSTANCE(pmix1_opalcaddy_t,
OBJ_CLASS_INSTANCE(pmix_ext_opalcaddy_t,
opal_object_t,
ocadcon, ocaddes);
92 changes: 46 additions & 46 deletions opal/mca/pmix/external/pmix_ext.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ typedef struct {
opal_list_item_t super;
opal_jobid_t jobid;
char nspace[PMIX_MAX_NSLEN + 1];
} opal_pmix1_jobid_trkr_t;
OBJ_CLASS_DECLARATION(opal_pmix1_jobid_trkr_t);
} opal_pmix_ext_jobid_trkr_t;
OBJ_CLASS_DECLARATION(opal_pmix_ext_jobid_trkr_t);

typedef struct {
opal_object_t super;
Expand All @@ -67,8 +67,8 @@ typedef struct {
opal_pmix_lookup_cbfunc_t lkcbfunc;
opal_pmix_spawn_cbfunc_t spcbfunc;
void *cbdata;
} pmix1_opcaddy_t;
OBJ_CLASS_DECLARATION(pmix1_opcaddy_t);
} pmix_ext_opcaddy_t;
OBJ_CLASS_DECLARATION(pmix_ext_opcaddy_t);

typedef struct {
opal_object_t super;
Expand All @@ -83,89 +83,89 @@ typedef struct {
void *cbdata;
opal_pmix_release_cbfunc_t odmdxfunc;
void *ocbdata;
} pmix1_opalcaddy_t;
OBJ_CLASS_DECLARATION(pmix1_opalcaddy_t);
} pmix_ext_opalcaddy_t;
OBJ_CLASS_DECLARATION(pmix_ext_opalcaddy_t);


/**** CLIENT FUNCTIONS ****/
OPAL_MODULE_DECLSPEC int pmix1_client_init(void);
OPAL_MODULE_DECLSPEC int pmix1_client_finalize(void);
OPAL_MODULE_DECLSPEC int pmix1_initialized(void);
OPAL_MODULE_DECLSPEC int pmix1_abort(int flag, const char *msg,
OPAL_MODULE_DECLSPEC int pmix_ext_client_init(void);
OPAL_MODULE_DECLSPEC int pmix_ext_client_finalize(void);
OPAL_MODULE_DECLSPEC int pmix_ext_initialized(void);
OPAL_MODULE_DECLSPEC int pmix_ext_abort(int flag, const char *msg,
opal_list_t *procs);
OPAL_MODULE_DECLSPEC int pmix1_commit(void);
OPAL_MODULE_DECLSPEC int pmix1_fence(opal_list_t *procs, int collect_data);
OPAL_MODULE_DECLSPEC int pmix1_fencenb(opal_list_t *procs, int collect_data,
OPAL_MODULE_DECLSPEC int pmix_ext_commit(void);
OPAL_MODULE_DECLSPEC int pmix_ext_fence(opal_list_t *procs, int collect_data);
OPAL_MODULE_DECLSPEC int pmix_ext_fencenb(opal_list_t *procs, int collect_data,
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_put(opal_pmix_scope_t scope,
OPAL_MODULE_DECLSPEC int pmix_ext_put(opal_pmix_scope_t scope,
opal_value_t *val);
OPAL_MODULE_DECLSPEC int pmix1_get(const opal_process_name_t *proc, const char *key,
OPAL_MODULE_DECLSPEC int pmix_ext_get(const opal_process_name_t *proc, const char *key,
opal_list_t *info, opal_value_t **val);
OPAL_MODULE_DECLSPEC int pmix1_getnb(const opal_process_name_t *proc, const char *key,
OPAL_MODULE_DECLSPEC int pmix_ext_getnb(const opal_process_name_t *proc, const char *key,
opal_list_t *info,
opal_pmix_value_cbfunc_t cbfunc, void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_publish(opal_list_t *info);
OPAL_MODULE_DECLSPEC int pmix1_publishnb(opal_list_t *info,
OPAL_MODULE_DECLSPEC int pmix_ext_publish(opal_list_t *info);
OPAL_MODULE_DECLSPEC int pmix_ext_publishnb(opal_list_t *info,
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_lookup(opal_list_t *data, opal_list_t *info);
OPAL_MODULE_DECLSPEC int pmix1_lookupnb(char **keys, opal_list_t *info,
OPAL_MODULE_DECLSPEC int pmix_ext_lookup(opal_list_t *data, opal_list_t *info);
OPAL_MODULE_DECLSPEC int pmix_ext_lookupnb(char **keys, opal_list_t *info,
opal_pmix_lookup_cbfunc_t cbfunc, void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_unpublish(char **keys, opal_list_t *info);
OPAL_MODULE_DECLSPEC int pmix1_unpublishnb(char **keys, opal_list_t *info,
OPAL_MODULE_DECLSPEC int pmix_ext_unpublish(char **keys, opal_list_t *info);
OPAL_MODULE_DECLSPEC int pmix_ext_unpublishnb(char **keys, opal_list_t *info,
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_spawn(opal_list_t *job_info, opal_list_t *apps, opal_jobid_t *jobid);
OPAL_MODULE_DECLSPEC int pmix1_spawnnb(opal_list_t *job_info, opal_list_t *apps,
OPAL_MODULE_DECLSPEC int pmix_ext_spawn(opal_list_t *job_info, opal_list_t *apps, opal_jobid_t *jobid);
OPAL_MODULE_DECLSPEC int pmix_ext_spawnnb(opal_list_t *job_info, opal_list_t *apps,
opal_pmix_spawn_cbfunc_t cbfunc, void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_connect(opal_list_t *procs);
OPAL_MODULE_DECLSPEC int pmix1_connectnb(opal_list_t *procs,
OPAL_MODULE_DECLSPEC int pmix_ext_connect(opal_list_t *procs);
OPAL_MODULE_DECLSPEC int pmix_ext_connectnb(opal_list_t *procs,
opal_pmix_op_cbfunc_t cbfunc,
void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_disconnect(opal_list_t *procs);
OPAL_MODULE_DECLSPEC int pmix1_disconnectnb(opal_list_t *procs,
OPAL_MODULE_DECLSPEC int pmix_ext_disconnect(opal_list_t *procs);
OPAL_MODULE_DECLSPEC int pmix_ext_disconnectnb(opal_list_t *procs,
opal_pmix_op_cbfunc_t cbfunc,
void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_resolve_peers(const char *nodename, opal_jobid_t jobid,
OPAL_MODULE_DECLSPEC int pmix_ext_resolve_peers(const char *nodename, opal_jobid_t jobid,
opal_list_t *procs);
OPAL_MODULE_DECLSPEC int pmix1_resolve_nodes(opal_jobid_t jobid, char **nodelist);
OPAL_MODULE_DECLSPEC int pmix_ext_resolve_nodes(opal_jobid_t jobid, char **nodelist);

/**** COMMON FUNCTIONS ****/
OPAL_MODULE_DECLSPEC int pmix1_store_local(const opal_process_name_t *proc,
OPAL_MODULE_DECLSPEC int pmix_ext_store_local(const opal_process_name_t *proc,
opal_value_t *val);

/**** SERVER SOUTHBOUND FUNCTIONS ****/
OPAL_MODULE_DECLSPEC int pmix1_server_init(opal_pmix_server_module_t *module,
OPAL_MODULE_DECLSPEC int pmix_ext_server_init(opal_pmix_server_module_t *module,
opal_list_t *info);
OPAL_MODULE_DECLSPEC int pmix1_server_finalize(void);
OPAL_MODULE_DECLSPEC int pmix1_server_gen_regex(const char *input, char **regex);
OPAL_MODULE_DECLSPEC int pmix1_server_gen_ppn(const char *input, char **ppn);
OPAL_MODULE_DECLSPEC int pmix1_server_register_nspace(opal_jobid_t jobid,
OPAL_MODULE_DECLSPEC int pmix_ext_server_finalize(void);
OPAL_MODULE_DECLSPEC int pmix_ext_server_gen_regex(const char *input, char **regex);
OPAL_MODULE_DECLSPEC int pmix_ext_server_gen_ppn(const char *input, char **ppn);
OPAL_MODULE_DECLSPEC int pmix_ext_server_register_nspace(opal_jobid_t jobid,
int nlocalprocs,
opal_list_t *info,
opal_pmix_op_cbfunc_t cbfunc,
void *cbdata);
OPAL_MODULE_DECLSPEC void pmix1_server_deregister_nspace(opal_jobid_t jobid);
OPAL_MODULE_DECLSPEC int pmix1_server_register_client(const opal_process_name_t *proc,
OPAL_MODULE_DECLSPEC void pmix_ext_server_deregister_nspace(opal_jobid_t jobid);
OPAL_MODULE_DECLSPEC int pmix_ext_server_register_client(const opal_process_name_t *proc,
uid_t uid, gid_t gid,
void *server_object,
opal_pmix_op_cbfunc_t cbfunc,
void *cbdata);
OPAL_MODULE_DECLSPEC void pmix1_server_deregister_client(const opal_process_name_t *proc);
OPAL_MODULE_DECLSPEC int pmix1_server_setup_fork(const opal_process_name_t *proc, char ***env);
OPAL_MODULE_DECLSPEC int pmix1_server_dmodex(const opal_process_name_t *proc,
OPAL_MODULE_DECLSPEC void pmix_ext_server_deregister_client(const opal_process_name_t *proc);
OPAL_MODULE_DECLSPEC int pmix_ext_server_setup_fork(const opal_process_name_t *proc, char ***env);
OPAL_MODULE_DECLSPEC int pmix_ext_server_dmodex(const opal_process_name_t *proc,
opal_pmix_modex_cbfunc_t cbfunc, void *cbdata);
OPAL_MODULE_DECLSPEC int pmix1_server_notify_error(int status,
OPAL_MODULE_DECLSPEC int pmix_ext_server_notify_error(int status,
opal_list_t *procs,
opal_list_t *error_procs,
opal_list_t *info,
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);


/**** COMPONENT UTILITY FUNCTIONS ****/
OPAL_MODULE_DECLSPEC pmix_status_t pmix1_convert_opalrc(int rc);
OPAL_MODULE_DECLSPEC int pmix1_convert_rc(pmix_status_t rc);
OPAL_MODULE_DECLSPEC void pmix1_value_load(pmix_value_t *v,
OPAL_MODULE_DECLSPEC pmix_status_t pmix_ext_convert_opalrc(int rc);
OPAL_MODULE_DECLSPEC int pmix_ext_convert_rc(pmix_status_t rc);
OPAL_MODULE_DECLSPEC void pmix_ext_value_load(pmix_value_t *v,
opal_value_t *kv);
OPAL_MODULE_DECLSPEC int pmix1_value_unload(opal_value_t *kv,
OPAL_MODULE_DECLSPEC int pmix_ext_value_unload(opal_value_t *kv,
const pmix_value_t *v);

END_C_DECLS
Expand Down
Loading