From 252f57d673c9bde7d08dcbd546e2d4e78413a9d2 Mon Sep 17 00:00:00 2001 From: Weikuan Yu Date: Wed, 8 Sep 2004 01:38:20 +0000 Subject: [PATCH] save a simple initialization code This commit was SVN r2532. --- src/mca/ptl/elan/tests/Makefile.am | 2 +- src/mca/ptl/elan/tests/init_elan.c | 45 ++++++++++++++++++++++++++---- 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/mca/ptl/elan/tests/Makefile.am b/src/mca/ptl/elan/tests/Makefile.am index e3364c25a1..f3738ce8eb 100644 --- a/src/mca/ptl/elan/tests/Makefile.am +++ b/src/mca/ptl/elan/tests/Makefile.am @@ -35,7 +35,7 @@ lat: % : %.c ${HOME}/installs/openmpi/bin/mpicc -g -o lat lat.c init_elan: % : %.c - gcc $< -o $@ -lelan4 -lelan -lrmscall -lelan3 + gcc -g $< -o $@ -lelan4 -lelan -lrmscall -lelan3 clean: -rm -rf $(EXECS) diff --git a/src/mca/ptl/elan/tests/init_elan.c b/src/mca/ptl/elan/tests/init_elan.c index dede6941cf..0c9d888d9e 100644 --- a/src/mca/ptl/elan/tests/init_elan.c +++ b/src/mca/ptl/elan/tests/init_elan.c @@ -7,20 +7,30 @@ #include #include #include + #include #include #include -#define USE_BASEINIT 1 - -int self; -int nproc; +#include +#define USE_BASEINIT 0 +#define USE_ELANINIT (1-USE_BASEINIT) + +ELAN_LOCATION location; +ELAN_CAPABILITY Cap; +ELAN4_CTX *ctx = NULL; +ELAN4_SDRAM *sdram = NULL; +ELAN4_ALLOC *alloc = NULL; +ELAN4_COOKIEPOOL *cpool = NULL; +ELAN_BASE *elan_base; + +int i, self; +int nproc; int main (int argc, char *argv[]) { #if USE_BASEINIT - ELAN_BASE *elan_base; if (!(elan_base = elan_baseInit(0))) { perror( "elan_baseInit() failed" ); exit(1); @@ -29,8 +39,31 @@ main (int argc, char *argv[]) nproc = elan_base->state->nvp; self = elan_base->state->vp; elan_gsync(elan_base->allGroup); -#else +#elif USE_ELANINIT + elan_base = (ELAN_BASE*) malloc(sizeof(ELAN_BASE)); + if (!(elan_base->state = elan_init(0))) { + perror( "elan_init() failed" ); + exit(1); + } + for (i = 0; i < 1; i++) { + ELAN_STATE *elan_state; + ELAN_CAPABILITY *cap; + ELAN_LOCATION loc; + + elan_state = elan_base->state; + ctx = elan_state->ctx; + cap = elan_state->cap; + + if (elan4_add_p2pvp (ctx, i, cap) < 0) + fprintf(stderr, "elan_init() failed" ); + elan4_block_inputter (ctx, 1); + if (elan4_attach (ctx, cap)) + fprintf(stderr, "elan4_attach() failed" ); + } + + nproc = elan_base->state->nvp; + self = elan_base->state->vp; #endif return 0; }