Jordan Rose | 5980140 | 2014-09-10 16:17:42 +0000 | [diff] [blame] | 1 | // Like the compiler, the static analyzer treats some functions differently if |
| 2 | // they come from a system header -- for example, pthread_mutex* functions |
| 3 | // should not invalidate regions of their arguments. |
| 4 | #pragma clang system_header |
| 5 | |
| 6 | typedef struct { |
| 7 | void *foo; |
| 8 | } pthread_mutex_t; |
| 9 | |
| 10 | typedef struct { |
| 11 | void *foo; |
| 12 | } pthread_mutexattr_t; |
| 13 | |
| 14 | typedef struct { |
| 15 | void *foo; |
| 16 | } lck_grp_t; |
| 17 | |
| 18 | typedef pthread_mutex_t lck_mtx_t; |
| 19 | |
| 20 | extern int pthread_mutex_lock(pthread_mutex_t *); |
| 21 | extern int pthread_mutex_unlock(pthread_mutex_t *); |
| 22 | extern int pthread_mutex_trylock(pthread_mutex_t *); |
| 23 | extern int pthread_mutex_destroy(pthread_mutex_t *); |
| 24 | extern int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); |
| 25 | extern int lck_mtx_lock(lck_mtx_t *); |
| 26 | extern int lck_mtx_unlock(lck_mtx_t *); |
| 27 | extern int lck_mtx_try_lock(lck_mtx_t *); |
| 28 | extern void lck_mtx_destroy(lck_mtx_t *lck, lck_grp_t *grp); |