*
* - spin_lock_init(x)
* - spin_lock(x)
+ * - spin_lock_nested(x, subclass)
* - spin_unlock(x)
* - spin_trylock(x)
*
* - wait_for_completion(c)
*/
+static cfs_wait_handler_t wait_handler;
+
+void init_completion_module(cfs_wait_handler_t handler)
+{
+ wait_handler = handler;
+}
+
+int call_wait_handler(int timeout)
+{
+ if (!wait_handler)
+ return -ENOSYS;
+ return wait_handler(timeout);
+}
+
void init_completion(struct completion *c)
{
LASSERT(c != NULL);
void wait_for_completion(struct completion *c)
{
LASSERT(c != NULL);
+ do {
+ if (call_wait_handler(1000) < 0)
+ break;
+ } while (c->done == 0);
}
int wait_for_completion_interruptible(struct completion *c)
{
LASSERT(c != NULL);
+ do {
+ if (call_wait_handler(1000) < 0)
+ break;
+ } while (c->done == 0);
return 0;
}
(void)s;
}
+void fini_rwsem(struct rw_semaphore *s)
+{
+ LASSERT(s != NULL);
+ (void)s;
+}
+
#ifdef HAVE_LIBPTHREAD
/*