|
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 */
|