#ifndef _I386_LOCK_H_
#define _I386_LOCK_H_
-#include <sys/appleapiopts.h>
-
-#ifdef __APPLE_API_PRIVATE
-
-#ifdef MACH_KERNEL_PRIVATE
-
-#include <kern/macro_help.h>
-#include <kern/assert.h>
-#include <i386/hw_lock_types.h>
-#include <i386/locks.h>
-
-#include <mach_rt.h>
-#include <mach_ldebug.h>
-
-typedef lck_rw_t lock_t;
-
-extern unsigned int LockTimeOutTSC; /* Lock timeout in TSC ticks */
-extern unsigned int LockTimeOut; /* Lock timeout in absolute time */
-
-
-#if defined(__GNUC__)
-
-/*
- * General bit-lock routines.
- */
-
-#define bit_lock(bit,l) \
- __asm__ volatile(" jmp 1f \n \
- 0: btl %0, %1 \n \
- jb 0b \n \
- 1: lock \n \
- btsl %0,%1 \n \
- jb 0b" : \
- : \
- "r" (bit), "m" (*(volatile int *)(l)) : \
- "memory");
-
-#define bit_unlock(bit,l) \
- __asm__ volatile(" lock \n \
- btrl %0,%1" : \
- : \
- "r" (bit), "m" (*(volatile int *)(l)));
-
-/*
- * Set or clear individual bits in a long word.
- * The locked access is needed only to lock access
- * to the word, not to individual bits.
- */
-
-#define i_bit_set(bit,l) \
- __asm__ volatile(" lock \n \
- btsl %0,%1" : \
- : \
- "r" (bit), "m" (*(volatile int *)(l)));
-
-#define i_bit_clear(bit,l) \
- __asm__ volatile(" lock \n \
- btrl %0,%1" : \
- : \
- "r" (bit), "m" (*(volatile int *)(l)));
-
-static inline char xchgb(volatile char * cp, char new);
-
-static inline void atomic_incl(volatile long * p, long delta);
-static inline void atomic_incs(volatile short * p, short delta);
-static inline void atomic_incb(volatile char * p, char delta);
-
-static inline void atomic_decl(volatile long * p, long delta);
-static inline void atomic_decs(volatile short * p, short delta);
-static inline void atomic_decb(volatile char * p, char delta);
-
-static inline long atomic_getl(const volatile long * p);
-static inline short atomic_gets(const volatile short * p);
-static inline char atomic_getb(const volatile char * p);
-
-static inline void atomic_setl(volatile long * p, long value);
-static inline void atomic_sets(volatile short * p, short value);
-static inline void atomic_setb(volatile char * p, char value);
-
-static inline char xchgb(volatile char * cp, char new)
-{
- register char old = new;
-
- __asm__ volatile (" xchgb %0,%2" :
- "=q" (old) :
- "0" (new), "m" (*(volatile char *)cp) : "memory");
- return (old);
-}
-
-static inline void atomic_incl(volatile long * p, long delta)
-{
- __asm__ volatile (" lock \n \
- add %0,%1" : \
- : \
- "r" (delta), "m" (*(volatile long *)p));
-}
-
-static inline void atomic_incs(volatile short * p, short delta)
-{
- __asm__ volatile (" lock \n \
- addw %0,%1" : \
- : \
- "q" (delta), "m" (*(volatile short *)p));
-}
-
-static inline void atomic_incb(volatile char * p, char delta)
-{
- __asm__ volatile (" lock \n \
- addb %0,%1" : \
- : \
- "q" (delta), "m" (*(volatile char *)p));
-}
-
-static inline void atomic_decl(volatile long * p, long delta)
-{
- __asm__ volatile (" lock \n \
- sub %0,%1" : \
- : \
- "r" (delta), "m" (*(volatile long *)p));
-}
-
-static inline int atomic_decl_and_test(volatile long * p, long delta)
-{
- uint8_t ret;
- __asm__ volatile (
- " lock \n\t"
- " sub %1,%2 \n\t"
- " sete %0"
- : "=qm" (ret)
- : "r" (delta), "m" (*(volatile long *)p));
- return ret;
-}
-
-static inline void atomic_decs(volatile short * p, short delta)
-{
- __asm__ volatile (" lock \n \
- subw %0,%1" : \
- : \
- "q" (delta), "m" (*(volatile short *)p));
-}
-
-static inline void atomic_decb(volatile char * p, char delta)
-{
- __asm__ volatile (" lock \n \
- subb %0,%1" : \
- : \
- "q" (delta), "m" (*(volatile char *)p));
-}
-
-static inline long atomic_getl(const volatile long * p)
-{
- return (*p);
-}
-
-static inline short atomic_gets(const volatile short * p)
-{
- return (*p);
-}
-
-static inline char atomic_getb(const volatile char * p)
-{
- return (*p);
-}
-
-static inline void atomic_setl(volatile long * p, long value)
-{
- *p = value;
-}
-
-static inline void atomic_sets(volatile short * p, short value)
-{
- *p = value;
-}
-
-static inline void atomic_setb(volatile char * p, char value)
-{
- *p = value;
-}
-
-
-#else /* !defined(__GNUC__) */
-
-extern void i_bit_set(
- int index,
- void *addr);
-
-extern void i_bit_clear(
- int index,
- void *addr);
-
-extern void bit_lock(
- int index,
- void *addr);
-
-extern void bit_unlock(
- int index,
- void *addr);
-
-/*
- * All other routines defined in __GNUC__ case lack
- * definitions otherwise. - XXX
- */
-
-#endif /* !defined(__GNUC__) */
-
-extern void kernel_preempt_check (void);
-
-#endif /* MACH_KERNEL_PRIVATE */
-
-#endif /* __APLE_API_PRIVATE */
+#warning This header is deprecated. Use <kern/locks.h> instead.
#endif /* _I386_LOCK_H_ */