eal/windows: add pthread mutex

Add pthread mutex lock as it is needed for the thread safe rte_flow
functions.

Signed-off-by: Suanming Mou <suanmingm@nvidia.com>
Tested-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Ranjit Menon <ranjit.menon@intel.com>
Acked-by: Narcisa Vasile <navasile@linux.microsoft.com>
This commit is contained in:
Suanming Mou 2020-10-15 09:07:46 +08:00 committed by Thomas Monjalon
parent ed94631da7
commit 96bb99f270

View File

@ -28,6 +28,10 @@ typedef uintptr_t pthread_t;
/* defining pthread_attr_t type on Windows since there is no in Microsoft libc*/
typedef void *pthread_attr_t;
typedef void *pthread_mutexattr_t;
typedef CRITICAL_SECTION pthread_mutex_t;
typedef SYNCHRONIZATION_BARRIER pthread_barrier_t;
#define pthread_barrier_init(barrier, attr, count) \
@ -146,6 +150,35 @@ pthread_join(__rte_unused pthread_t thread,
return 0;
}
static inline int
pthread_mutex_init(pthread_mutex_t *mutex,
__rte_unused pthread_mutexattr_t *attr)
{
InitializeCriticalSection(mutex);
return 0;
}
static inline int
pthread_mutex_lock(pthread_mutex_t *mutex)
{
EnterCriticalSection(mutex);
return 0;
}
static inline int
pthread_mutex_unlock(pthread_mutex_t *mutex)
{
LeaveCriticalSection(mutex);
return 0;
}
static inline int
pthread_mutex_destroy(pthread_mutex_t *mutex)
{
DeleteCriticalSection(mutex);
return 0;
}
#ifdef __cplusplus
}
#endif