-#endif /* DIPC || MACH_KDB */
-
-#define is_fast_space(is) ((is)->is_fast)
-
-#define is_ref_lock_init(is) lck_mtx_init(&(is)->is_ref_lock_data, &ipc_lck_grp, &ipc_lck_attr)
-#define is_ref_lock_destroy(is) lck_mtx_destroy(&(is)->is_ref_lock_data, &ipc_lck_grp)
-
-#define ipc_space_reference_macro(is) \
-MACRO_BEGIN \
- lck_mtx_lock(&(is)->is_ref_lock_data); \
- assert((is)->is_references > 0); \
- (is)->is_references++; \
- lck_mtx_unlock(&(is)->is_ref_lock_data); \
-MACRO_END
-
-#define ipc_space_release_macro(is) \
-MACRO_BEGIN \
- ipc_space_refs_t _refs; \
- \
- lck_mtx_lock(&(is)->is_ref_lock_data); \
- assert((is)->is_references > 0); \
- _refs = --(is)->is_references; \
- lck_mtx_unlock(&(is)->is_ref_lock_data); \
- \
- if (_refs == 0) { \
- is_lock_destroy(is); \
- is_ref_lock_destroy(is); \
- is_free(is); \
- } \
-MACRO_END
-
-#define is_lock_init(is) lck_mtx_init(&(is)->is_lock_data, &ipc_lck_grp, &ipc_lck_attr)
-#define is_lock_destroy(is) lck_mtx_destroy(&(is)->is_lock_data, &ipc_lck_grp)
-
-#define is_read_lock(is) lck_mtx_lock(&(is)->is_lock_data)
-#define is_read_unlock(is) lck_mtx_unlock(&(is)->is_lock_data)
-#define is_read_sleep(is) lck_mtx_sleep(&(is)->is_lock_data, \
+#endif /* DIPC */
+
+extern lck_grp_t ipc_lck_grp;
+extern lck_attr_t ipc_lck_attr;
+
+#define is_lock_init(is) lck_spin_init(&(is)->is_lock_data, &ipc_lck_grp, &ipc_lck_attr)
+#define is_lock_destroy(is) lck_spin_destroy(&(is)->is_lock_data, &ipc_lck_grp)
+
+#define is_read_lock(is) lck_spin_lock(&(is)->is_lock_data)
+#define is_read_unlock(is) lck_spin_unlock(&(is)->is_lock_data)
+#define is_read_sleep(is) lck_spin_sleep(&(is)->is_lock_data, \