root/headers/private/graphics/common/benaphore.h
/*
        Copyright (c) 2002, Thomas Kurschel


        Part of Radeon driver
                
        Benaphore definition
*/


#ifndef _BENAPHORE_H
#define _BENAPHORE_H


typedef struct {
        sem_id  sem;
        int32   ben;
} benaphore;

 
#define INIT_BEN(x, prefix)     ( (x).ben = 0, (x).sem = create_sem(0, #prefix " benaphore"), (x).sem )
#define ACQUIRE_BEN(x)  if((atomic_add(&(x.ben), 1)) >= 1) acquire_sem(x.sem);
#define RELEASE_BEN(x)  if((atomic_add(&(x.ben), -1)) > 1) release_sem(x.sem);
#define DELETE_BEN(x)   delete_sem(x.sem);

#endif