]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/ppc/locks.h
xnu-1504.3.12.tar.gz
[apple/xnu.git] / osfmk / ppc / locks.h
index 1e7964aab9a36ac572d73013c692750615ede9d7..639a820a80ca152a2bb1dc3245e4778a751ad181 100644 (file)
@@ -113,10 +113,11 @@ typedef struct {
 } 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;
 
@@ -130,8 +131,13 @@ typedef struct _lck_mtx_ext_ {
 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
 
@@ -140,7 +146,8 @@ typedef struct {
        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 */
@@ -160,6 +167,7 @@ typedef struct {
 #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
@@ -180,7 +188,7 @@ typedef struct {
 } 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;