} lck_mtx_stat_t;
typedef struct _lck_mtx_ext_ {
- lck_mtx_t lck_mtx;
+ lck_mtx_t lck_mtx;
struct _lck_grp_ *lck_mtx_grp;
unsigned int lck_mtx_attr;
lck_mtx_deb_t lck_mtx_deb;
+ /* Unused on PowerPC */
lck_mtx_stat_t lck_mtx_stat;
} lck_mtx_ext_t;
typedef struct {
unsigned int opaque[3];
} lck_mtx_t;
+
+typedef struct {
+ unsigned int opaque[16];
+} lck_mtx_ext_t;
#else
-typedef struct __lck_mtx_t__ lck_mtx_t;
+typedef struct __lck_mtx_t__ lck_mtx_t;
+typedef struct __lck_mtx_ext_t__ lck_mtx_ext_t;
#endif
#endif
union {
struct {
unsigned int lck_rwd_shared_cnt:16, /* No. of shared granted request */
- lck_rwd_pad16:12, /* padding */
+ lck_rwd_priv_excl:1, /* priority for Writer */
+ lck_rwd_pad17:11, /* padding */
lck_rwd_want_excl:1, /* Writer is waiting, or locked for write */
lck_rwd_want_upgrade:1, /* Read-to-write upgrade waiting */
lck_rwd_waiting:1, /* Someone is sleeping on lock */
#define lck_rw_want_upgrade lck_rw_sw.lck_rwd.lck_rwd_want_upgrade
#define lck_rw_want_excl lck_rw_sw.lck_rwd.lck_rwd_want_excl
#define lck_rw_waiting lck_rw_sw.lck_rwd.lck_rwd_waiting
+#define lck_rw_priv_excl lck_rw_sw.lck_rwd.lck_rwd_priv_excl
#define lck_rw_shared_cnt lck_rw_sw.lck_rwd.lck_rwd_shared_cnt
#define lck_rw_tag lck_rw_sw.lck_rwi.lck_rwi_tag
} lck_rw_stat_t;
typedef struct _lck_rw_ext_ {
- lck_rw_t lck_rw;
+ lck_rw_t lck_rw;
struct _lck_grp_ *lck_rw_grp;
unsigned int lck_rw_attr;
lck_rw_deb_t lck_rw_deb;