]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/ipc/ipc_pset.h
xnu-3789.70.16.tar.gz
[apple/xnu.git] / osfmk / ipc / ipc_pset.h
index 863faedcf9de61cb6cac093134f2ce14f6371ed5..a18b9adcdfcade98441e3089db69022715d75216 100644 (file)
@@ -88,10 +88,17 @@ struct ipc_pset {
 #define        ips_active(pset)        io_active(&(pset)->ips_object)
 #define        ips_lock(pset)          io_lock(&(pset)->ips_object)
 #define        ips_lock_try(pset)      io_lock_try(&(pset)->ips_object)
+#define ips_lock_held_kdp(pset)        io_lock_held_kdp(&(pset)->ips_object)
 #define        ips_unlock(pset)        io_unlock(&(pset)->ips_object)
 #define        ips_reference(pset)     io_reference(&(pset)->ips_object)
 #define        ips_release(pset)       io_release(&(pset)->ips_object)
 
+/* get an ipc_pset pointer from an ipc_mqueue pointer */
+#define        ips_from_mq(mq)         ((struct ipc_pset *)((void *)( \
+                                       (char *)(mq) - \
+                                       __offsetof(struct ipc_pset, ips_messages)) \
+                               ))
+
 /* Allocate a port set */
 extern kern_return_t ipc_pset_alloc(
        ipc_space_t             space,