X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=drivers%2Fnet%2Fndis%2Fndis%2Fcontrol.c;fp=drivers%2Fnet%2Fndis%2Fndis%2Fcontrol.c;h=f7e33b9d5ec916520a56dfd93f1ec3a6938742ec;hp=3947bc520d345835bc35cc9a27387c545cdc71cc;hb=7c0cf90e3b750f1f0dc83b2eec9e5c68a512c30f;hpb=ee8b63255465d8c28be3e7bd11628015708fc1ab diff --git a/drivers/net/ndis/ndis/control.c b/drivers/net/ndis/ndis/control.c index 3947bc5..f7e33b9 100644 --- a/drivers/net/ndis/ndis/control.c +++ b/drivers/net/ndis/ndis/control.c @@ -9,6 +9,9 @@ */ #include +/* + * @implemented + */ VOID EXPORT NdisReinitializePacket( @@ -18,6 +21,10 @@ NdisReinitializePacket( (Packet)->Private.ValidCounts = FALSE; } + +/* + * @unimplemented + */ VOID EXPORT NdisAcquireReadWriteLock( @@ -35,6 +42,9 @@ NdisAcquireReadWriteLock( } +/* + * @implemented + */ VOID EXPORT NdisAcquireSpinLock( @@ -45,10 +55,13 @@ NdisAcquireSpinLock( * SpinLock = Pointer to the initialized NDIS spin lock to be acquired */ { - UNIMPLEMENTED + KeAcquireSpinLock(&SpinLock->SpinLock, &SpinLock->OldIrql); } +/* + * @implemented + */ VOID EXPORT NdisAllocateSpinLock( @@ -59,10 +72,13 @@ NdisAllocateSpinLock( * SpinLock = Pointer to an NDIS spin lock structure */ { - UNIMPLEMENTED + KeInitializeSpinLock(&SpinLock->SpinLock); } +/* + * @implemented + */ VOID EXPORT NdisDprAcquireSpinLock( @@ -73,10 +89,14 @@ NdisDprAcquireSpinLock( * SpinLock = Pointer to the initialized NDIS spin lock to be acquired */ { - UNIMPLEMENTED + KeAcquireSpinLockAtDpcLevel(&SpinLock->SpinLock); + SpinLock->OldIrql = DISPATCH_LEVEL; } +/* + * @implemented + */ VOID EXPORT NdisDprReleaseSpinLock( @@ -87,10 +107,13 @@ NdisDprReleaseSpinLock( * SpinLock = Pointer to the acquired NDIS spin lock to be released */ { - UNIMPLEMENTED + KeReleaseSpinLockFromDpcLevel(&SpinLock->SpinLock); } +/* + * @implemented + */ VOID EXPORT NdisFreeSpinLock( @@ -101,10 +124,13 @@ NdisFreeSpinLock( * SpinLock = Pointer to an initialized NDIS spin lock */ { - UNIMPLEMENTED + /* Nothing to do here! */ } +/* + * @unimplemented + */ VOID EXPORT NdisGetCurrentProcessorCpuUsage( @@ -119,6 +145,9 @@ NdisGetCurrentProcessorCpuUsage( } +/* + * @implemented + */ VOID EXPORT NdisInitializeEvent( @@ -129,10 +158,13 @@ NdisInitializeEvent( * Event = Pointer to an NDIS event structure to be initialized */ { - UNIMPLEMENTED + KeInitializeEvent(&Event->Event, NotificationEvent, FALSE); } +/* + * @implemented + */ VOID EXPORT NdisReleaseSpinLock( @@ -143,10 +175,13 @@ NdisReleaseSpinLock( * SpinLock = Pointer to the acquired NDIS spin lock to be released */ { - UNIMPLEMENTED + KeReleaseSpinLock(&SpinLock->SpinLock, SpinLock->OldIrql); } +/* + * @implemented + */ VOID EXPORT NdisResetEvent( @@ -157,10 +192,13 @@ NdisResetEvent( * Event = Pointer to the initialized event object to be reset */ { - UNIMPLEMENTED + KeResetEvent(&Event->Event); } +/* + * @implemented + */ VOID EXPORT NdisSetEvent( @@ -171,10 +209,13 @@ NdisSetEvent( * Event = Pointer to the initialized event object to be set */ { - UNIMPLEMENTED + KeSetEvent(&Event->Event, IO_NO_INCREMENT, FALSE); } +/* + * @implemented + */ BOOLEAN EXPORT NdisWaitEvent( @@ -189,9 +230,18 @@ NdisWaitEvent( * TRUE if the event is in the signaled state */ { - UNIMPLEMENTED + LARGE_INTEGER Timeout; + NTSTATUS Status; + + Timeout.QuadPart = MsToWait * -10000LL; + + Status = KeWaitForSingleObject(&Event->Event, + Executive, + KernelMode, + TRUE, + &Timeout); - return FALSE; + return (Status == STATUS_SUCCESS); } /* EOF */