3 * Copyright 2011 Daniel Borkmann <dborkma@tik.ee.ethz.ch>
6 * Faculty of Computer Science, Mathematics and Natural Sciences,
7 * Leipzig University of Applied Sciences (HTWK Leipzig)
15 struct nao_spin_lock
{
16 pthread_spinlock_t lock
;
19 struct nao_mutex_lock
{
23 static inline int nao_spin_lock_init(struct nao_spin_lock
*l
)
25 return -pthread_spin_init(&l
->lock
, 0);
28 static inline void nao_spin_lock_destroy(struct nao_spin_lock
*l
)
30 pthread_spin_destroy(&l
->lock
);
33 static inline void nao_spin_lock_lock(struct nao_spin_lock
*l
)
35 pthread_spin_lock(&l
->lock
);
38 static inline void nao_spin_lock_unlock(struct nao_spin_lock
*l
)
40 pthread_spin_unlock(&l
->lock
);
43 static inline int nao_mutex_lock_init(struct nao_mutex_lock
*l
)
45 return -pthread_mutex_init(&l
->lock
, 0);
48 static inline void nao_mutex_lock_destroy(struct nao_mutex_lock
*l
)
50 pthread_mutex_destroy(&l
->lock
);
53 static inline void nao_mutex_lock_lock(struct nao_mutex_lock
*l
)
55 pthread_mutex_lock(&l
->lock
);
58 static inline void nao_mutex_lock_unlock(struct nao_mutex_lock
*l
)
60 pthread_mutex_unlock(&l
->lock
);
63 #endif /* LOCKING_X86_H */