Add some missing rw_lock symbols
git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@27 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
This commit is contained in:
parent
77b1fe8fa8
commit
ed61a7d05e
|
@ -21,10 +21,10 @@ typedef enum {
|
||||||
RW_READER
|
RW_READER
|
||||||
} krw_t;
|
} krw_t;
|
||||||
|
|
||||||
#define RW_READ_HELD(x) (rw_read_held((x)))
|
#define RW_READ_HELD(x) (__rw_read_held((x)))
|
||||||
#define RW_WRITE_HELD(x) (rw_write_held((x)))
|
#define RW_WRITE_HELD(x) (__rw_write_held((x)))
|
||||||
#define RW_LOCK_HELD(x) (rw_lock_held((x)))
|
#define RW_LOCK_HELD(x) (__rw_lock_held((x)))
|
||||||
#define RW_ISWRITER(x) (rw_iswriter(x))
|
#define RW_ISWRITER(x) (__rw_iswriter(x))
|
||||||
|
|
||||||
#define RW_MAGIC 0x3423645a
|
#define RW_MAGIC 0x3423645a
|
||||||
#define RW_POISON 0xa6
|
#define RW_POISON 0xa6
|
||||||
|
@ -36,6 +36,10 @@ typedef struct {
|
||||||
struct task_struct *rw_owner; /* holder of the write lock */
|
struct task_struct *rw_owner; /* holder of the write lock */
|
||||||
} krwlock_t;
|
} krwlock_t;
|
||||||
|
|
||||||
|
extern int __rw_read_held(krwlock_t *rwlp);
|
||||||
|
extern int __rw_write_held(krwlock_t *rwlp);
|
||||||
|
extern int __rw_lock_held(krwlock_t *rwlp);
|
||||||
|
|
||||||
static __inline__ void
|
static __inline__ void
|
||||||
rw_init(krwlock_t *rwlp, char *name, krw_type_t type, void *arg)
|
rw_init(krwlock_t *rwlp, char *name, krw_type_t type, void *arg)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,6 +13,8 @@ extern "C" {
|
||||||
|
|
||||||
/* Missing defines.
|
/* Missing defines.
|
||||||
*/
|
*/
|
||||||
|
#define FALSE 0
|
||||||
|
#define TRUE 1
|
||||||
#define INT32_MAX INT_MAX
|
#define INT32_MAX INT_MAX
|
||||||
#define UINT64_MAX (~0ULL)
|
#define UINT64_MAX (~0ULL)
|
||||||
#define NBBY 8
|
#define NBBY 8
|
||||||
|
|
|
@ -1,7 +1,33 @@
|
||||||
#include <sys/rwlock.h>
|
#include <sys/rwlock.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
rw_lock_held(krwlock_t *rwlp)
|
__rw_read_held(krwlock_t *rwlp)
|
||||||
|
{
|
||||||
|
BUG_ON(rwlp->rw_magic != RW_MAGIC);
|
||||||
|
|
||||||
|
if (__rw_lock_held(rwlp) && rwlp->rw_owner == NULL) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(__rw_read_held);
|
||||||
|
|
||||||
|
int
|
||||||
|
__rw_write_held(krwlock_t *rwlp)
|
||||||
|
{
|
||||||
|
BUG_ON(rwlp->rw_magic != RW_MAGIC);
|
||||||
|
|
||||||
|
if (rwlp->rw_owner == current) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(__rw_write_held);
|
||||||
|
|
||||||
|
int
|
||||||
|
__rw_lock_held(krwlock_t *rwlp)
|
||||||
{
|
{
|
||||||
BUG_ON(rwlp->rw_magic != RW_MAGIC);
|
BUG_ON(rwlp->rw_magic != RW_MAGIC);
|
||||||
|
|
||||||
|
@ -15,27 +41,4 @@ rw_lock_held(krwlock_t *rwlp)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(__rw_lock_held);
|
||||||
int
|
|
||||||
rw_read_held(krwlock_t *rwlp)
|
|
||||||
{
|
|
||||||
BUG_ON(rwlp->rw_magic != RW_MAGIC);
|
|
||||||
|
|
||||||
if (rw_lock_held(rwlp) && rwlp->rw_owner == NULL) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
rw_write_held(krwlock_t *rwlp)
|
|
||||||
{
|
|
||||||
BUG_ON(rwlp->rw_magic != RW_MAGIC);
|
|
||||||
|
|
||||||
if (rwlp->rw_owner == current) {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue