1
1

Merge pull request #807 from hjelmn/win_update

Window updates
Этот коммит содержится в:
Nathan Hjelm 2015-08-15 12:33:40 -06:00
родитель 741378280c b8356dae05
Коммит dbfd6e6e5e
4 изменённых файлов: 21 добавлений и 5 удалений

Просмотреть файл

@ -55,6 +55,7 @@ static ompi_errcode_intern_t ompi_err_rma_attach_intern;
static ompi_errcode_intern_t ompi_err_rma_range_intern;
static ompi_errcode_intern_t ompi_err_rma_conflict_intern;
static ompi_errcode_intern_t ompi_err_win_intern;
static ompi_errcode_intern_t ompi_err_rma_flavor_intern;
static void ompi_errcode_intern_construct(ompi_errcode_intern_t* errcode);
static void ompi_errcode_intern_destruct(ompi_errcode_intern_t* errcode);
@ -250,6 +251,14 @@ int ompi_errcode_intern_init (void)
opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_win_intern.index,
&ompi_err_win_intern);
OBJ_CONSTRUCT(&ompi_err_rma_flavor_intern, ompi_errcode_intern_t);
ompi_err_rma_flavor_intern.code = OMPI_ERR_RMA_FLAVOR;
ompi_err_rma_flavor_intern.mpi_code = MPI_ERR_RMA_FLAVOR;
ompi_err_rma_flavor_intern.index = pos++;
strncpy(ompi_err_rma_flavor_intern.errstring, "OMPI_ERR_RMA_FLAVOR", OMPI_MAX_ERROR_STRING);
opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_rma_flavor_intern.index,
&ompi_err_rma_flavor_intern);
ompi_errcode_intern_lastused=pos;
return OMPI_SUCCESS;
}
@ -279,6 +288,7 @@ int ompi_errcode_intern_finalize(void)
OBJ_DESTRUCT(&ompi_err_rma_range_intern);
OBJ_DESTRUCT(&ompi_err_rma_conflict_intern);
OBJ_DESTRUCT(&ompi_err_win_intern);
OBJ_DESTRUCT(&ompi_err_rma_flavor_intern);
OBJ_DESTRUCT(&ompi_errcodes_intern);
return OMPI_SUCCESS;

Просмотреть файл

@ -71,6 +71,7 @@ enum {
OMPI_ERR_RMA_RANGE = OMPI_ERR_BASE - 5,
OMPI_ERR_RMA_CONFLICT = OMPI_ERR_BASE - 6,
OMPI_ERR_WIN = OMPI_ERR_BASE - 7,
OMPI_ERR_RMA_FLAVOR = OMPI_ERR_BASE - 8,
};
#define OMPI_ERR_MAX (OMPI_ERR_BASE - 100)

Просмотреть файл

@ -27,6 +27,10 @@
static const char FUNC_NAME[] = "MPI_Win_get_info";
static void _win_info_set (ompi_info_t *info, const char *key, int set)
{
ompi_info_set (info, key, set ? "true" : "false");
}
int MPI_Win_get_info(MPI_Win win, MPI_Info *info_used)
{
@ -50,11 +54,10 @@ int MPI_Win_get_info(MPI_Win win, MPI_Info *info_used)
if (OMPI_SUCCESS == ret && *info_used) {
/* set standard info keys based on what the OSC module is using */
if (win->w_flags & OMPI_WIN_NO_LOCKS) {
ompi_info_set (*info_used, "no_locks", "true");
} else {
ompi_info_set (*info_used, "no_locks", "false");
}
_win_info_set (*info_used, "no_locks", win->w_flags & OMPI_WIN_NO_LOCKS);
_win_info_set (*info_used, "same_size", win->w_flags & OMPI_WIN_SAME_SIZE);
_win_info_set (*info_used, "same_disp_unit", win->w_flags & OMPI_WIN_SAME_DISP);
}
OMPI_ERRHANDLER_RETURN(ret, win, ret, FUNC_NAME);

Просмотреть файл

@ -41,6 +41,8 @@ BEGIN_C_DECLS
#define OMPI_WIN_FREED 0x00000001
#define OMPI_WIN_INVALID 0x00000002
#define OMPI_WIN_NO_LOCKS 0x00000004
#define OMPI_WIN_SAME_DISP 0x00000008
#define OMPI_WIN_SAME_SIZE 0x00000010
OMPI_DECLSPEC extern opal_pointer_array_t ompi_mpi_windows;