]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/mach/sync_policy.h
xnu-4903.270.47.tar.gz
[apple/xnu.git] / osfmk / mach / sync_policy.h
index 50e0b214232ea4489632c16c774d11fc864eafca..605388fcc71f222ecdc2f2b0bed6c5c041e1d686 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * unlawful or unlicensed copies of an Apple operating system, or to
  * circumvent, violate, or enable the circumvention or violation of, any
  * terms of an Apple operating system software license agreement.
  * unlawful or unlicensed copies of an Apple operating system, or to
  * circumvent, violate, or enable the circumvention or violation of, any
  * terms of an Apple operating system software license agreement.
- * 
+ *
  * Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this file.
  * Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
+ *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  * @OSF_COPYRIGHT@
  */
 
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  * @OSF_COPYRIGHT@
  */
 
-#ifndef        _MACH_SYNC_POLICY_H_
+#ifndef _MACH_SYNC_POLICY_H_
 #define _MACH_SYNC_POLICY_H_
 
 typedef int sync_policy_t;
 #define _MACH_SYNC_POLICY_H_
 
 typedef int sync_policy_t;
@@ -37,22 +37,30 @@ typedef int sync_policy_t;
 /*
  *     These options define the wait ordering of the synchronizers
  */
 /*
  *     These options define the wait ordering of the synchronizers
  */
-#define SYNC_POLICY_FIFO               0x0
-#define SYNC_POLICY_FIXED_PRIORITY     0x1
-#define SYNC_POLICY_REVERSED           0x2
-#define SYNC_POLICY_ORDER_MASK         0x3
-#define SYNC_POLICY_LIFO               (SYNC_POLICY_FIFO|SYNC_POLICY_REVERSED)
+#define SYNC_POLICY_FIFO                0x0
+#define SYNC_POLICY_FIXED_PRIORITY      0x1
+#define SYNC_POLICY_REVERSED            0x2
+#define SYNC_POLICY_ORDER_MASK          0x3
+#define SYNC_POLICY_LIFO                (SYNC_POLICY_FIFO|SYNC_POLICY_REVERSED)
 
 
-#ifdef KERNEL_PRIVATE
+#ifdef  KERNEL_PRIVATE
 
 /*
  *     These options provide addition (kernel-private) behaviors
  */
 
 
 /*
  *     These options provide addition (kernel-private) behaviors
  */
 
-#define SYNC_POLICY_PREPOST            0x4
+#define SYNC_POLICY_PREPOST             0x4
+#define SYNC_POLICY_DISABLE_IRQ         0x8
+
+/*
+ * If the waitq is IRQ safe, 0x10 suggests it's a waitq embedded in turnstile.
+ * If the waitq is not IRQ safe, 0x10 suggests it's a waitq of a port and should use it's turnstile safeq.
+ */
+#define SYNC_POLICY_TURNSTILE           0x10
+#define SYNC_POLICY_PORT                0x10
 
 
-#endif /* KERNEL_PRIVATE */
+#endif  /* KERNEL_PRIVATE */
 
 
-#define SYNC_POLICY_MAX                        0x7
+#define SYNC_POLICY_MAX                 0x7
 
 
-#endif         /* _MACH_SYNC_POLICY_H_ */
+#endif  /* _MACH_SYNC_POLICY_H_ */