Ticket #61115: darwin_compat.h

File darwin_compat.h, 1.5 KB (added by ballapete (Peter "Pete" Dyballa), 4 years ago)

Darwin C header compitability file for npth

Line 
1 /*
2  * Source: https://github.com/pktgen/sshfs/blob/master/compat/darwin_compat.h
3  * Copyright (c) 2006-2008 Amit Singh/Google Inc.
4  * Copyright (c) 2011-2013 Benjamin Fleischer
5  */
6
7 #ifndef _DARWIN_COMPAT_
8 #define _DARWIN_COMPAT_
9
10 #include <pthread.h>
11
12 /* Semaphores */
13
14 struct __local_sem_t
15 {
16     unsigned int    count;
17     pthread_mutex_t count_lock;
18     pthread_cond_t  count_cond;
19 };
20
21 typedef struct fuse_sem {
22     int id;
23     union {
24         struct __local_sem_t local;
25     } __data;
26 } darwin_sem_t;
27
28 #define DARWIN_SEM_VALUE_MAX ((int32_t)32767)
29
30 int darwin_sem_init(darwin_sem_t *sem, int pshared, unsigned int value);
31 int darwin_sem_destroy(darwin_sem_t *sem);
32 int darwin_sem_getvalue(darwin_sem_t *sem, unsigned int *value);
33 int darwin_sem_post(darwin_sem_t *sem);
34 int darwin_sem_timedwait(darwin_sem_t *sem, const struct timespec *abs_timeout);
35 int darwin_sem_trywait(darwin_sem_t *sem);
36 int darwin_sem_wait(darwin_sem_t *sem);
37
38 /* Caller must not include <semaphore.h> */
39
40 typedef darwin_sem_t sem_t;
41
42 #define sem_init(s, p, v)   darwin_sem_init(s, p, v)
43 #define sem_destroy(s)      darwin_sem_destroy(s)
44 #define sem_getvalue(s, v)  darwin_sem_getvalue(s, v)
45 #define sem_post(s)         darwin_sem_post(s)
46 #define sem_timedwait(s, t) darwin_sem_timedwait(s, t)
47 #define sem_trywait(s)      darwin_sem_trywait(s)
48 #define sem_wait(s)         darwin_sem_wait(s)
49
50 #define SEM_VALUE_MAX       DARWIN_SEM_VALUE_MAX
51
52 #endif /* _DARWIN_COMPAT_ */