/* begin_generated_IBM_copyright_prolog */ /* */ /* This is an automatically generated copyright prolog. */ /* After initializing, DO NOT MODIFY OR MOVE */ /* --------------------------------------------------------------- */ /* Licensed Materials - Property of IBM */ /* Blue Gene/Q 5765-PER 5765-PRP */ /* */ /* (C) Copyright IBM Corp. 2011, 2012 All Rights Reserved */ /* US Government Users Restricted Rights - */ /* Use, duplication, or disclosure restricted */ /* by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* --------------------------------------------------------------- */ /* */ /* end_generated_IBM_copyright_prolog */ /* (C)Copyright IBM Corp. 2007, 2011 */ /** * \file include/mpidpost.h * \brief The trailing device header * * This file is included after the rest of the headers * (mpidimpl.h, mpidpre.h, and mpiimpl.h) */ #ifndef __include_mpidpost_h__ #define __include_mpidpost_h__ #include #include "mpidi_prototypes.h" #include "mpidi_macros.h" #include "../src/mpid_progress.h" #include "../src/mpid_request.h" #include "../src/mpid_recvq.h" #include "../src/pt2pt/mpid_isend.h" #include "../src/pt2pt/mpid_send.h" #include "../src/pt2pt/mpid_irecv.h" #ifdef DYNAMIC_TASKING #define MPID_ICCREATE_REMOTECOMM_HOOK(_p,_c,_np,_gp,_r) \ MPID_PG_ForwardPGInfo(_p,_c,_np,_gp,_r) #else /* ! DYNAMIC_TASKING */ /* If DYNAMIC_TASKING is not defined, PAMID does not provide its own GPID routines, so provide one here. **/ /* FIXME: A temporary version for lpids within my comm world */ static inline int MPID_GPID_GetAllInComm( MPID_Comm *comm_ptr, int local_size, int local_gpids[], int *singlePG ) { int i; int *gpid = local_gpids; for (i=0; ilocal_size; i++) { *gpid++ = 0; (void)MPID_VCR_Get_lpid( comm_ptr->vcr[i], gpid ); gpid++; } *singlePG = 1; return 0; } /* FIXME: A temp for lpids within my comm world */ static inline int MPID_GPID_ToLpidArray( int size, int gpid[], int lpid[] ) { int i; for (i=0; ivcrt ); MPID_VCRT_Get_ptr( newcomm_ptr->vcrt, &newcomm_ptr->vcr ); for (i=0; irank, i, lpids[i] ); */ if (lpids[i] < commworld_ptr->remote_size) { MPID_VCR_Dup( commworld_ptr->vcr[lpids[i]], &newcomm_ptr->vcr[i] ); } else { /* We must find the corresponding vcr for a given lpid */ /* FIXME: Error */ return 1; /* MPID_VCR_Dup( ???, &newcomm_ptr->vcr[i] ); */ } } return 0; } #endif /* DYNAMIC_TASKING */ #endif