Blame test/mpi/rma/mcs_mutex.h
|
Packit Service |
c5cf8c |
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
* (C) 2013 by Argonne National Laboratory.
|
|
Packit Service |
c5cf8c |
* See COPYRIGHT in top-level directory.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifndef MCS_MUTEX_H_INCLUDED
|
|
Packit Service |
c5cf8c |
#define MCS_MUTEX_H_INCLUDED
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#include <mpi.h>
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#define MCS_MUTEX_TAG 100
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifdef ENABLE_DEBUG
|
|
Packit Service |
c5cf8c |
#define debug_print(...) do { printf(__VA_ARGS__); } while (0)
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
#define debug_print(...)
|
|
Packit Service |
c5cf8c |
#endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
struct mcs_mutex_s {
|
|
Packit Service |
c5cf8c |
int tail_rank;
|
|
Packit Service |
c5cf8c |
MPI_Comm comm;
|
|
Packit Service |
c5cf8c |
MPI_Win window;
|
|
Packit Service |
c5cf8c |
int *base;
|
|
Packit Service |
c5cf8c |
MPI_Info win_info;
|
|
Packit Service |
c5cf8c |
};
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct mcs_mutex_s *MCS_Mutex;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#define MCS_MTX_ELEM_DISP 0
|
|
Packit Service |
c5cf8c |
#define MCS_MTX_TAIL_DISP 1
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
int MCS_Mutex_create(int tail_rank, MPI_Comm comm, MCS_Mutex * hdl_out);
|
|
Packit Service |
c5cf8c |
int MCS_Mutex_free(MCS_Mutex * hdl_ptr);
|
|
Packit Service |
c5cf8c |
int MCS_Mutex_lock(MCS_Mutex hdl);
|
|
Packit Service |
c5cf8c |
int MCS_Mutex_trylock(MCS_Mutex hdl, int *success);
|
|
Packit Service |
c5cf8c |
int MCS_Mutex_unlock(MCS_Mutex hdl);
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#endif /* MCS_MUTEX_H_INCLUDED */
|