Blame src/mpi/romio/mpl/include/mpl_proc_mutex.h

Packit Service c5cf8c
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
Packit Service c5cf8c
/*
Packit Service c5cf8c
 *  (C) 2001 by Argonne National Laboratory.
Packit Service c5cf8c
 *      See COPYRIGHT in top-level directory.
Packit Service c5cf8c
 */
Packit Service c5cf8c
Packit Service c5cf8c
#ifndef MPL_PROC_MUTEX_H_INCLUDED
Packit Service c5cf8c
#define MPL_PROC_MUTEX_H_INCLUDED
Packit Service c5cf8c
Packit Service c5cf8c
#include "mplconfig.h"
Packit Service c5cf8c
Packit Service c5cf8c
/* Define interprocess mutex interface.
Packit Service c5cf8c
 *
Packit Service c5cf8c
 * The user should always call MPL_proc_mutex_enabled(void) to check if
Packit Service c5cf8c
 * the functionality of interprocess mutex is enabled before use.
Packit Service c5cf8c
 * It returns 1 if the functionality is enabled, otherwise returns 0.
Packit Service c5cf8c
 */
Packit Service c5cf8c
Packit Service c5cf8c
/* _INVALID exists to avoid accidental macro evaluations to 0 */
Packit Service c5cf8c
#define MPL_PROC_MUTEX_PACKAGE_INVALID 0
Packit Service c5cf8c
#define MPL_PROC_MUTEX_PACKAGE_NONE    1
Packit Service c5cf8c
#define MPL_PROC_MUTEX_PACKAGE_POSIX   2
Packit Service c5cf8c
Packit Service c5cf8c
/* Return values */
Packit Service c5cf8c
#define MPL_PROC_MUTEX_SUCCESS 0
Packit Service c5cf8c
#define MPL_PROC_MUTEX_EINTR   -1
Packit Service c5cf8c
#define MPL_PROC_MUTEX_EINVAL  -2
Packit Service c5cf8c
Packit Service c5cf8c
#if defined(MPL_PROC_MUTEX_PACKAGE_NAME) && (MPL_PROC_MUTEX_PACKAGE_NAME == MPL_PROC_MUTEX_PACKAGE_POSIX)
Packit Service c5cf8c
#include "mpl_proc_mutex_posix.h"
Packit Service c5cf8c
#elif defined(MPL_PROC_MUTEX_PACKAGE_NAME) && (MPL_PROC_MUTEX_PACKAGE_NAME == MPL_PROC_MUTEX_PACKAGE_NONE)
Packit Service c5cf8c
typedef int MPL_proc_mutex_t;
Packit Service c5cf8c
static inline int MPL_proc_mutex_enabled(void)
Packit Service c5cf8c
{
Packit Service c5cf8c
    return 0;   /* always disabled */
Packit Service c5cf8c
}
Packit Service c5cf8c
Packit Service c5cf8c
#define MPL_proc_mutex_create(mutex_ptr_, err_ptr_)  { *((int*)err_ptr_) = MPL_PROC_MUTEX_EINVAL;}
Packit Service c5cf8c
#define MPL_proc_mutex_destroy(mutex_ptr_, err_ptr_) { *((int*)err_ptr_) = MPL_PROC_MUTEX_EINVAL;}
Packit Service c5cf8c
#define MPL_proc_mutex_lock(mutex_ptr_, err_ptr_)  { *((int*)err_ptr_) = MPL_PROC_MUTEX_EINVAL;}
Packit Service c5cf8c
#define MPL_proc_mutex_unlock(mutex_ptr_, err_ptr_) { *((int*)err_ptr_) = MPL_PROC_MUTEX_EINVAL;}
Packit Service c5cf8c
#else
Packit Service c5cf8c
#error "proc package (MPL_PROC_MUTEX_PACKAGE_NAME) not defined or unknown"
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#endif /* MPL_PROC_MUTEX_H_INCLUDED */