diff --git a/src/lam/types.h b/src/lam/types.h index 44b563f1a4..c66ce8486c 100644 --- a/src/lam/types.h +++ b/src/lam/types.h @@ -29,5 +29,11 @@ typedef struct lam_fd_set_t lam_fd_set_t; #define LAM_FD_CLR(fd,fds) FD_CLR((fd),(fd_set*)(fds)) #define LAM_FD_ISSET(fd,fds) FD_ISSET((fd),(fd_set*)(fds)) +/* + * handle to describe a parallel job + */ +typedef char* lam_job_handle_t; + + #endif diff --git a/src/mca/lam/oob/cofs/src/oob_cofs.c b/src/mca/lam/oob/cofs/src/oob_cofs.c index 9247281f7c..93b03d1cdf 100644 --- a/src/mca/lam/oob/cofs/src/oob_cofs.c +++ b/src/mca/lam/oob/cofs/src/oob_cofs.c @@ -10,7 +10,7 @@ #include "mca/lam/oob/cofs/src/oob_cofs.h" int -mca_oob_cofs_send(char* parallel_job_id, int vpid, int tag, +mca_oob_cofs_send(lam_job_handle_t job_handle, int vpid, int tag, void* data, size_t data_len) { return 0; @@ -18,7 +18,7 @@ mca_oob_cofs_send(char* parallel_job_id, int vpid, int tag, int -mca_oob_cofs_recv(char* parallel_job_id, int* tag, int* vpid, +mca_oob_cofs_recv(lam_job_handle_t job_handle, int* tag, int* vpid, void** data, size_t* data_len) { return 0; @@ -26,7 +26,7 @@ mca_oob_cofs_recv(char* parallel_job_id, int* tag, int* vpid, int -mca_oob_cofs_recv_nb(char* parallel_job_id, int* tag, int* vpid, +mca_oob_cofs_recv_nb(lam_job_handle_t job_handle, int* tag, int* vpid, void** data, size_t* data_len) { return 0; @@ -34,7 +34,7 @@ mca_oob_cofs_recv_nb(char* parallel_job_id, int* tag, int* vpid, int -mca_oob_cofs_recv_cb(char* parallel_job_id, int tag, +mca_oob_cofs_recv_cb(lam_job_handle_t job_handle, int tag, mca_oob_recv_cb_t callback) { return 0; diff --git a/src/mca/lam/oob/cofs/src/oob_cofs.h b/src/mca/lam/oob/cofs/src/oob_cofs.h index 1be1b44370..d5e6c47d10 100644 --- a/src/mca/lam/oob/cofs/src/oob_cofs.h +++ b/src/mca/lam/oob/cofs/src/oob_cofs.h @@ -5,6 +5,7 @@ */ #include "mca/lam/oob/oob.h" +#include "lam/types.h" /* * Module open / close @@ -24,11 +25,11 @@ int mca_oob_cofs_finalize(void); /* * "Action" functions */ -int mca_oob_cofs_send(char* parallel_job_id, int vpid, int tag, +int mca_oob_cofs_send(lam_job_handle_t job_handle, int vpid, int tag, void* data, size_t data_len); -int mca_oob_cofs_recv(char* parallel_job_id, int* tag, int* vpid, +int mca_oob_cofs_recv(lam_job_handle_t job_handle, int* tag, int* vpid, void** data, size_t* data_len); -int mca_oob_cofs_recv_nb(char* parallel_job_id, int* tag, int* vpid, +int mca_oob_cofs_recv_nb(lam_job_handle_t job_handle, int* tag, int* vpid, void** data, size_t* data_len); -int mca_oob_cofs_recv_cb(char* parallel_job_id, int tag, +int mca_oob_cofs_recv_cb(lam_job_handle_t job_handle, int tag, mca_oob_recv_cb_t callback); diff --git a/src/mca/lam/oob/cofs/src/oob_cofs_module.c b/src/mca/lam/oob/cofs/src/oob_cofs_module.c index 3d20b578a4..4f547ca109 100644 --- a/src/mca/lam/oob/cofs/src/oob_cofs_module.c +++ b/src/mca/lam/oob/cofs/src/oob_cofs_module.c @@ -63,6 +63,10 @@ mca_oob_cofs_query(int *priority) struct mca_oob_1_0_0* mca_oob_cofs_init(void) { + /* + * BWB - fix me, make register the "right" way... + */ + return NULL; } diff --git a/src/mca/lam/oob/oob.h b/src/mca/lam/oob/oob.h index 71d921fb35..21825684b7 100644 --- a/src/mca/lam/oob/oob.h +++ b/src/mca/lam/oob/oob.h @@ -35,8 +35,7 @@ #include "lam_config.h" #include "mca/mca.h" - -#include +#include "lam/types.h" /* * Global constants / types @@ -49,7 +48,7 @@ /* "Special" vpids */ #define MCA_OOB_MPIRUN -1 -typedef void (*mca_oob_recv_cb_t)(char* parallel_job_id, int tag, +typedef void (*mca_oob_recv_cb_t)(lam_job_handle_t job_handle, int tag, int vpid, void* data, size_t data_len, int status); @@ -58,13 +57,13 @@ typedef void (*mca_oob_recv_cb_t)(char* parallel_job_id, int tag, */ typedef int (*mca_oob_query_fn_t)(int *priority); typedef struct mca_oob_1_0_0* (*mca_oob_init_fn_t)(void); -typedef int (*mca_oob_send_fn_t)(char* parallel_job_id, int vpid, int tag, +typedef int (*mca_oob_send_fn_t)(lam_job_handle_t job_handle, int vpid, int tag, void* data, size_t data_len); -typedef int (*mca_oob_recv_fn_t)(char* parallel_job_id, int* tag, int* vpid, +typedef int (*mca_oob_recv_fn_t)(lam_job_handle_t job_handle, int* tag, int* vpid, void** data, size_t* data_len); -typedef int (*mca_oob_recv_nb_fn_t)(char* parallel_job_id, int* tag, int* vpid, +typedef int (*mca_oob_recv_nb_fn_t)(lam_job_handle_t job_handle, int* tag, int* vpid, void** data, size_t* data_len); -typedef int (*mca_oob_recv_cb_fn_t)(char* parallel_job_id, int tag, +typedef int (*mca_oob_recv_cb_fn_t)(lam_job_handle_t job_handle, int tag, mca_oob_recv_cb_t callback); typedef int (*mca_oob_finalize_fn_t)(void); @@ -114,8 +113,6 @@ extern "C" { /* * Global struct holding the selected module's function pointers */ -#if 0 extern mca_oob_t mca_oob; -#endif /* #if 0 */ #endif diff --git a/src/mca/lam/pcm/pcm.h b/src/mca/lam/pcm/pcm.h index c35a29db9d..38cd278d2b 100644 --- a/src/mca/lam/pcm/pcm.h +++ b/src/mca/lam/pcm/pcm.h @@ -56,6 +56,7 @@ #include "lam_config.h" #include "mca/mca.h" +#include "lam/types.h" /* * "PCM" global types @@ -74,8 +75,6 @@ typedef struct lam_pcm_control_args { char* value; } lam_pcm_control_args_t; -typedef char* lam_pcm_job_handle_t; - /* * functions every module must provide */ @@ -128,7 +127,7 @@ typedef int (*mca_pcm_query_get_nodes)(lam_pcm_node_t **nodes, size_t *nodes_len * * \warning The handle must be released using lam_pcm_handle_free */ -typedef lam_pcm_job_handle_t (*mca_pcm_handle_new_fn_t)(lam_pcm_job_handle_t parent); +typedef lam_job_handle_t (*mca_pcm_handle_new_fn_t)(lam_job_handle_t parent); /** @@ -141,18 +140,18 @@ typedef lam_pcm_job_handle_t (*mca_pcm_handle_new_fn_t)(lam_pcm_job_handle_t par * * \warning The handle must be released using lam_pcm_handle_free */ -typedef lam_pcm_job_handle_t (*mca_pcm_handle_get_fn_t)(void); +typedef lam_job_handle_t (*mca_pcm_handle_get_fn_t)(void); /** * Free a job handle * - * @param job_handle Poiner to a lam_pcm_job_handle_t + * @param job_handle Poiner to a lam_job_handle_t * * Free a job handle returned by lam_pcm_handle_new or * lam_pcm_handle_get. */ -typedef void (*mca_pcm_handle_free_fn_t)(lam_pcm_job_handle_t *job_handle); +typedef void (*mca_pcm_handle_free_fn_t)(lam_job_handle_t *job_handle); /** @@ -168,7 +167,7 @@ typedef void (*mca_pcm_handle_free_fn_t)(lam_pcm_job_handle_t *job_handle); * always return LAM_SUCCESS (yes) if called from mpirun. Useful * for asking if MPI_SPAWN and friends can run. */ -typedef int (*mca_pcm_job_can_sapwn_fn_t)(lam_pcm_job_handle_t job_handle); +typedef int (*mca_pcm_job_can_sapwn_fn_t)(lam_job_handle_t job_handle); /** @@ -191,7 +190,7 @@ typedef int (*mca_pcm_job_can_sapwn_fn_t)(lam_pcm_job_handle_t job_handle); * \Warning It is an error to call this function more than once on a single * job handle. */ -typedef int (*mca_pcm_job_set_arguments_fn_t)(lam_pcm_job_handle_t job_handle, +typedef int (*mca_pcm_job_set_arguments_fn_t)(lam_job_handle_t job_handle, lam_pcm_control_args_t* opts, size_t opts_len); @@ -221,7 +220,7 @@ typedef int (*mca_pcm_job_set_arguments_fn_t)(lam_pcm_job_handle_t job_handle, * LAM_ERR_NOT_SUPPORTED will be returned if the mca module does not * support spawning of new applications from */ -typedef int (*mca_pcm_job_launch_procs_fn_t)(lam_pcm_job_handle_t job_handle, +typedef int (*mca_pcm_job_launch_procs_fn_t)(lam_job_handle_t job_handle, lam_pcm_node_t *nodes, size_t nodes_len, const char* file, int argc, const char* argv[], @@ -244,7 +243,7 @@ typedef int (*mca_pcm_job_launch_procs_fn_t)(lam_pcm_job_handle_t job_handle, * returns, it is safe to assume that all rendezvous is complete * (ie, you can exit and not mess anything up */ -typedef int (*mca_pcm_job_rendezvous_fn_t)(lam_pcm_job_handle_t job_handle); +typedef int (*mca_pcm_job_rendezvous_fn_t)(lam_job_handle_t job_handle); /** @@ -259,7 +258,7 @@ typedef int (*mca_pcm_job_rendezvous_fn_t)(lam_pcm_job_handle_t job_handle); * on a job at termination, as job results will be expunged over * time as resource limits dictate. */ -typedef int (*mca_pcm_job_wait_fn_t)(lam_pcm_job_handle_t job_handle); +typedef int (*mca_pcm_job_wait_fn_t)(lam_job_handle_t job_handle); /** @@ -274,7 +273,7 @@ typedef int (*mca_pcm_job_wait_fn_t)(lam_pcm_job_handle_t job_handle); * Ask if job is running. If job has recently finished, this does * not imply wait the pcm interface will call wait for you. */ -typedef int (*mca_pcm_job_running_fn_t)(lam_pcm_job_handle_t job_handle, +typedef int (*mca_pcm_job_running_fn_t)(lam_job_handle_t job_handle, int* running); @@ -292,7 +291,7 @@ typedef int (*mca_pcm_job_running_fn_t)(lam_pcm_job_handle_t job_handle, * * \warning This function is not yet implemented. */ -typedef int (*mca_pcm_job_list_running_fn_t)(lam_pcm_job_handle_t **handles, +typedef int (*mca_pcm_job_list_running_fn_t)(lam_job_handle_t **handles, size_t handles_len);