]>
git.proxmox.com Git - mirror_spl-debian.git/blob - include/sys/rwlock.h
a4b6ce6d7c08a9daf997114cb16da130340e8e5c
4 #include <linux/module.h>
5 #include <linux/slab.h>
6 #include <linux/rwsem.h>
7 #include <asm/current.h>
16 RW_DRIVER
= 2, /* driver (DDI) rwlock */
17 RW_DEFAULT
= 4 /* kernel default rwlock */
26 #define RW_MAGIC 0x3423645a
27 #define RW_POISON 0xa6
33 struct rw_semaphore rw_sem
;
34 struct task_struct
*rw_owner
; /* holder of the write lock */
37 extern void __rw_init(krwlock_t
*rwlp
, char *name
, krw_type_t type
, void *arg
);
38 extern void __rw_destroy(krwlock_t
*rwlp
);
39 extern int __rw_tryenter(krwlock_t
*rwlp
, krw_t rw
);
40 extern void __rw_enter(krwlock_t
*rwlp
, krw_t rw
);
41 extern void __rw_exit(krwlock_t
*rwlp
);
42 extern void __rw_downgrade(krwlock_t
*rwlp
);
43 extern int __rw_tryupgrade(krwlock_t
*rwlp
);
44 extern kthread_t
*__rw_owner(krwlock_t
*rwlp
);
45 extern int __rw_read_held(krwlock_t
*rwlp
);
46 extern int __rw_write_held(krwlock_t
*rwlp
);
47 extern int __rw_lock_held(krwlock_t
*rwlp
);
49 #define rw_init(rwlp, name, type, arg) \
52 __rw_init(rwlp, #rwlp, type, arg); \
54 __rw_init(rwlp, name, type, arg); \
56 #define rw_destroy(rwlp) __rw_destroy(rwlp)
57 #define rw_tryenter(rwlp, rw) __rw_tryenter(rwlp, rw)
58 #define rw_enter(rwlp, rw) __rw_enter(rwlp, rw)
59 #define rw_exit(rwlp) __rw_exit(rwlp)
60 #define rw_downgrade(rwlp) __rw_downgrade(rwlp)
61 #define rw_tryupgrade(rwlp) __rw_tryupgrade(rwlp)
62 #define rw_owner(rwlp) __rw_owner(rwlp)
63 #define RW_READ_HELD(rwlp) __rw_read_held(rwlp)
64 #define RW_WRITE_HELD(rwlp) __rw_write_held(rwlp)
65 #define RW_LOCK_HELD(rwlp) __rw_lock_held(rwlp)
71 #endif /* _SPL_RWLOCK_H */