1/*
2	Copyright (c) 2002, Thomas Kurschel
3
4
5	Part of Radeon driver
6
7	Benaphore definition
8*/
9
10
11#ifndef _BENAPHORE_H
12#define _BENAPHORE_H
13
14
15typedef struct {
16	sem_id	sem;
17	int32	ben;
18} benaphore;
19
20
21#define INIT_BEN(x, prefix)	( (x).ben = 0, (x).sem = create_sem(0, #prefix " benaphore"), (x).sem )
22#define ACQUIRE_BEN(x)	if((atomic_add(&(x.ben), 1)) >= 1) acquire_sem(x.sem);
23#define RELEASE_BEN(x)	if((atomic_add(&(x.ben), -1)) > 1) release_sem(x.sem);
24#define	DELETE_BEN(x)	delete_sem(x.sem);
25
26#endif
27