aboutsummaryrefslogtreecommitdiff
path: root/sys/gnu/fs/xfs/FreeBSD/support/sv.h
blob: 1a378d2275911b73bff64ff7769a6a76f5ae2cd9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef __XFS_SUPPORT_SV_H__
#define __XFS_SUPPORT_SV_H__

#include <sys/condvar.h>

/* 
 * Synchronisation variables 
 *
 * parameters "pri", "svf" and "rts" are not (yet?) implemented
 *
 */

typedef struct cv sv_t;

#define init_sv(sv,type,name,flag)	cv_init(sv, name)
#define sv_init(sv,flag,name)		cv_init(sv, name)
/* sv_wait should exit with lock unlocked */
#define sv_wait(sv, pri, lock, spl)	cv_wait_unlock(sv, lock)
#define sv_wait_sig(sv, pri, lock, spl) cv_wait_sig_nolock(sv, lock)
#define sv_signal(sv)			cv_signal(sv)
#define sv_broadcast(sv)		cv_broadcast(sv)
#define sv_destroy(sv)			cv_destroy(sv)

#define SV_FIFO         0x0             /* sv_t is FIFO type */
#define SV_LIFO         0x2             /* sv_t is LIFO type */
#define SV_PRIO         0x4             /* sv_t is PRIO type */
#define SV_KEYED        0x6             /* sv_t is KEYED type */
#define SV_DEFAULT      SV_FIFO

#endif /* __XFS_SUPPORT_SV_H__ */