diff -uNr linux-2.4.4-pre4/include/linux/rwsem.h linux/include/linux/rwsem.h --- linux-2.4.4-pre4/include/linux/rwsem.h Thu Apr 19 22:07:49 2001 +++ linux/include/linux/rwsem.h Thu Apr 19 23:52:41 2001 @@ -42,20 +42,24 @@ #include #include -#ifdef CONFIG_RWSEM_GENERIC_SPINLOCK -#include /* use a generic implementation */ -#else -#include /* use an arch-specific implementation */ -#endif +struct rw_semaphore; /* defined contention handler functions for the generic case * - these are also used for the exchange-and-add based algorithm */ -#if defined(CONFIG_RWSEM_GENERIC) || defined(CONFIG_RWSEM_XCHGADD_ALGORITHM) +#if defined(CONFIG_RWSEM_GENERIC_SPINLOCK) || defined(CONFIG_RWSEM_XCHGADD_ALGORITHM) /* we use FASTCALL convention for the helpers */ extern struct rw_semaphore *FASTCALL(rwsem_down_read_failed(struct rw_semaphore *sem)); extern struct rw_semaphore *FASTCALL(rwsem_down_write_failed(struct rw_semaphore *sem)); extern struct rw_semaphore *FASTCALL(rwsem_wake(struct rw_semaphore *sem)); +#endif + +/* access the actual implementation of the rwsems + */ +#ifdef CONFIG_RWSEM_GENERIC_SPINLOCK +#include /* use a generic implementation */ +#else +#include /* use an arch-specific implementation */ #endif #ifndef rwsemtrace