xref: /netbsd-src/sys/external/bsd/compiler_rt/dist/lib/tsan/tests/rtl/tsan_posix_util.h (revision a7c257b03e4462df2b1020128fb82716512d7856)
1 //===-- tsan_posix_util.h ---------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file is a part of ThreadSanitizer (TSan), a race detector.
11 //
12 // Test POSIX utils.
13 //===----------------------------------------------------------------------===//
14 #ifndef TSAN_POSIX_UTIL_H
15 #define TSAN_POSIX_UTIL_H
16 
17 #include <pthread.h>
18 
19 #ifdef __APPLE__
20 #define __interceptor_memcpy wrap_memcpy
21 #define __interceptor_memset wrap_memset
22 #define __interceptor_pthread_create wrap_pthread_create
23 #define __interceptor_pthread_join wrap_pthread_join
24 #define __interceptor_pthread_detach wrap_pthread_detach
25 #define __interceptor_pthread_mutex_init wrap_pthread_mutex_init
26 #define __interceptor_pthread_mutex_lock wrap_pthread_mutex_lock
27 #define __interceptor_pthread_mutex_unlock wrap_pthread_mutex_unlock
28 #define __interceptor_pthread_mutex_destroy wrap_pthread_mutex_destroy
29 #define __interceptor_pthread_mutex_trylock wrap_pthread_mutex_trylock
30 #define __interceptor_pthread_rwlock_init wrap_pthread_rwlock_init
31 #define __interceptor_pthread_rwlock_destroy wrap_pthread_rwlock_destroy
32 #define __interceptor_pthread_rwlock_trywrlock wrap_pthread_rwlock_trywrlock
33 #define __interceptor_pthread_rwlock_wrlock wrap_pthread_rwlock_wrlock
34 #define __interceptor_pthread_rwlock_unlock wrap_pthread_rwlock_unlock
35 #define __interceptor_pthread_rwlock_rdlock wrap_pthread_rwlock_rdlock
36 #define __interceptor_pthread_rwlock_tryrdlock wrap_pthread_rwlock_tryrdlock
37 #define __interceptor_pthread_cond_init wrap_pthread_cond_init
38 #define __interceptor_pthread_cond_signal wrap_pthread_cond_signal
39 #define __interceptor_pthread_cond_broadcast wrap_pthread_cond_broadcast
40 #define __interceptor_pthread_cond_wait wrap_pthread_cond_wait
41 #define __interceptor_pthread_cond_destroy wrap_pthread_cond_destroy
42 #endif
43 
44 extern "C" void *__interceptor_memcpy(void *, const void *, uptr);
45 extern "C" void *__interceptor_memset(void *, int, uptr);
46 extern "C" int __interceptor_pthread_create(pthread_t *thread,
47                                             const pthread_attr_t *attr,
48                                             void *(*start_routine)(void *),
49                                             void *arg);
50 extern "C" int __interceptor_pthread_join(pthread_t thread, void **value_ptr);
51 extern "C" int __interceptor_pthread_detach(pthread_t thread);
52 
53 extern "C" int __interceptor_pthread_mutex_init(
54     pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);
55 extern "C" int __interceptor_pthread_mutex_lock(pthread_mutex_t *mutex);
56 extern "C" int __interceptor_pthread_mutex_unlock(pthread_mutex_t *mutex);
57 extern "C" int __interceptor_pthread_mutex_destroy(pthread_mutex_t *mutex);
58 extern "C" int __interceptor_pthread_mutex_trylock(pthread_mutex_t *mutex);
59 
60 extern "C" int __interceptor_pthread_rwlock_init(
61     pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr);
62 extern "C" int __interceptor_pthread_rwlock_destroy(pthread_rwlock_t *rwlock);
63 extern "C" int __interceptor_pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);
64 extern "C" int __interceptor_pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);
65 extern "C" int __interceptor_pthread_rwlock_unlock(pthread_rwlock_t *rwlock);
66 extern "C" int __interceptor_pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);
67 extern "C" int __interceptor_pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);
68 
69 extern "C" int __interceptor_pthread_cond_init(pthread_cond_t *cond,
70                                                const pthread_condattr_t *attr);
71 extern "C" int __interceptor_pthread_cond_signal(pthread_cond_t *cond);
72 extern "C" int __interceptor_pthread_cond_broadcast(pthread_cond_t *cond);
73 extern "C" int __interceptor_pthread_cond_wait(pthread_cond_t *cond,
74                                                pthread_mutex_t *mutex);
75 extern "C" int __interceptor_pthread_cond_destroy(pthread_cond_t *cond);
76 
77 #endif  // #ifndef TSAN_POSIX_UTIL_H
78