return(ExAcquireResourceExclusiveLite(Resource,Wait));
}
+#endif /* LIBCAPTIVE */
+
BOOLEAN
STDCALL
ExAcquireResourceExclusiveLite (
return(FALSE);
}
+
static BOOLEAN EiAddSharedOwner(PERESOURCE Resource)
/*
* FUNCTION: Adds the current thread to the shared owners of the resource
KeReleaseSpinLock(&Resource->SpinLock, oldIrql);
return;
}
+#ifndef LIBCAPTIVE
/* else, awake the waiters */
KeReleaseSemaphore(Resource->SharedWaiters,0,oldWaiters,0);
KeReleaseSpinLock(&Resource->SpinLock, oldIrql);
DPRINT("ExConvertExclusiveToSharedLite() finished\n");
+#else /* !LIBCAPTIVE */
+ /* no waiters allower for libcaptive */
+ KeBugCheck(0);
+#endif /* LIBCAPTIVE */
}
+#ifndef LIBCAPTIVE
+
VOID
STDCALL
ExDisableResourceBoostLite (
Resource->Flag |= ResourceDisableBoost;
}
+#endif /* LIBCAPTIVE */
+
ULONG
STDCALL
ExGetExclusiveWaiterCount (
return(Resource->NumberOfExclusiveWaiters);
}
+
BOOLEAN
STDCALL
ExAcquireSharedStarveExclusive (
return(TRUE);
}
+#ifndef LIBCAPTIVE
+
BOOLEAN
STDCALL
ExAcquireSharedWaitForExclusive (
return(ExDeleteResourceLite(Resource));
}
+#endif /* LIBCAPTIVE */
+
NTSTATUS
STDCALL
ExDeleteResourceLite (
return(STATUS_SUCCESS);;
}
+
ULONG
STDCALL
ExGetSharedWaiterCount (
return(Resource->NumberOfSharedWaiters);
}
+#ifndef LIBCAPTIVE
+
NTSTATUS
STDCALL
ExInitializeResource (
return(0);
}
-#ifndef LIBCAPTIVE
-
BOOLEAN
STDCALL
ExIsResourceAcquiredExclusiveLite (
return(0);
}
+
VOID
STDCALL
ExReinitializeResourceLite (
Resource->OwnerThreads[1].a.OwnerCount=0;
}
+
VOID
FASTCALL
ExReleaseResourceLite (
ExGetCurrentResourceThread()));
}
+#ifndef LIBCAPTIVE
+
VOID
STDCALL
ExReleaseResourceForThread (
return(ExReleaseResourceForThreadLite(Resource,ResourceThreadId));
}
+#endif /* LIBCAPTIVE */
+
VOID
STDCALL
ExReleaseResourceForThreadLite (
Resource->NumberOfSharedWaiters);
if (Resource->NumberOfSharedWaiters)
{
+#ifndef LIBCAPTIVE
DPRINT("Releasing semaphore\n");
KeReleaseSemaphore(Resource->SharedWaiters,
IO_NO_INCREMENT,
Resource->NumberOfSharedWaiters,
FALSE);
+#else /* !LIBCAPTIVE */
+ KeBugCheck(0);
+#endif /* !LIBCAPTIVE */
}
KeReleaseSpinLock(&Resource->SpinLock, oldIrql);
DPRINT("ExReleaseResourceForThreadLite() finished\n");
DPRINT("ExReleaseResourceForThreadLite() finished\n");
}
+#ifndef LIBCAPTIVE
VOID
STDCALL