[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XENVIF PATCH v2 4/4] transmitter: Map out IRQL annotations
No functional changes. Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx> --- src/xenvif/transmitter.c | 54 +++++++++++++++++++++++++++++++++------- src/xenvif/transmitter.h | 17 +++++++++++++ 2 files changed, 62 insertions(+), 9 deletions(-) diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c index b46ccc3..75b80f3 100644 --- a/src/xenvif/transmitter.c +++ b/src/xenvif/transmitter.c @@ -2633,6 +2633,7 @@ done: return Count; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE VOID __TransmitterRingTrigger( IN PXENVIF_TRANSMITTER_RING Ring @@ -2713,6 +2714,7 @@ __TransmitterRingPushRequests( #define XENVIF_TRANSMITTER_LOCK_BIT ((ULONG_PTR)1) +_IRQL_requires_(DISPATCH_LEVEL) static DECLSPEC_NOINLINE VOID TransmitterRingSwizzle( IN PXENVIF_TRANSMITTER_RING Ring @@ -2762,6 +2764,7 @@ TransmitterRingSwizzle( } } +_IRQL_requires_(DISPATCH_LEVEL) static DECLSPEC_NOINLINE VOID TransmitterRingSchedule( IN PXENVIF_TRANSMITTER_RING Ring @@ -3052,6 +3055,7 @@ __TransmitterSetCompletionInfo( Packet->Completion.PayloadLength = (USHORT)Payload->Length; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE VOID __TransmitterReturnPackets( IN PXENVIF_TRANSMITTER Transmitter, @@ -3087,8 +3091,8 @@ __TransmitterReturnPackets( } } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE BOOLEAN -__drv_requiresIRQL(DISPATCH_LEVEL) __TransmitterRingTryAcquireLock( IN PXENVIF_TRANSMITTER_RING Ring ) @@ -3119,8 +3123,8 @@ __TransmitterRingTryAcquireLock( return Acquired; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE VOID -__drv_requiresIRQL(DISPATCH_LEVEL) __TransmitterRingAcquireLock( IN PXENVIF_TRANSMITTER_RING Ring ) @@ -3135,6 +3139,7 @@ __TransmitterRingAcquireLock( } } +_IRQL_requires_(DISPATCH_LEVEL) static VOID TransmitterRingAcquireLock( IN PXENVIF_TRANSMITTER_RING Ring @@ -3143,8 +3148,8 @@ TransmitterRingAcquireLock( __TransmitterRingAcquireLock(Ring); } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE BOOLEAN -__drv_requiresIRQL(DISPATCH_LEVEL) __TransmitterRingTryReleaseLock( IN PXENVIF_TRANSMITTER_RING Ring ) @@ -3178,8 +3183,8 @@ __TransmitterRingTryReleaseLock( return Released; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE VOID -__drv_requiresIRQL(DISPATCH_LEVEL) __TransmitterRingReleaseLock( IN PXENVIF_TRANSMITTER_RING Ring ) @@ -3217,6 +3222,7 @@ __TransmitterRingReleaseLock( } } +_IRQL_requires_(DISPATCH_LEVEL) static DECLSPEC_NOINLINE VOID TransmitterRingReleaseLock( IN PXENVIF_TRANSMITTER_RING Ring @@ -3225,6 +3231,7 @@ TransmitterRingReleaseLock( __TransmitterRingReleaseLock(Ring); } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE BOOLEAN __TransmitterRingUnmask( IN PXENVIF_TRANSMITTER_RING Ring, @@ -3247,11 +3254,8 @@ __TransmitterRingUnmask( Force); } -__drv_functionClass(KDEFERRED_ROUTINE) -__drv_maxIRQL(DISPATCH_LEVEL) -__drv_minIRQL(DISPATCH_LEVEL) -__drv_requiresIRQL(DISPATCH_LEVEL) -__drv_sameIRQL +_Function_class_(KDEFERRED_ROUTINE) +_IRQL_requires_(DISPATCH_LEVEL) static VOID TransmitterRingPollDpc( IN PKDPC Dpc, @@ -3284,6 +3288,7 @@ TransmitterRingPollDpc( KSERVICE_ROUTINE TransmitterRingEvtchnCallback; +_Use_decl_annotations_ BOOLEAN TransmitterRingEvtchnCallback( IN PKINTERRUPT InterruptObject, @@ -3318,6 +3323,7 @@ TransmitterRingEvtchnCallback( #define XENVIF_TRANSMITTER_WATCHDOG_PERIOD 30 +_IRQL_requires_(PASSIVE_LEVEL) static NTSTATUS TransmitterRingWatchdog( IN PXENVIF_THREAD Self, @@ -3391,6 +3397,7 @@ TransmitterRingWatchdog( return STATUS_SUCCESS; } +_IRQL_requires_(PASSIVE_LEVEL) static FORCEINLINE NTSTATUS __TransmitterRingInitialize( IN PXENVIF_TRANSMITTER Transmitter, @@ -3653,6 +3660,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE NTSTATUS __TransmitterRingConnect( IN PXENVIF_TRANSMITTER_RING Ring @@ -3824,6 +3832,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE NTSTATUS __TransmitterRingStoreWrite( IN PXENVIF_TRANSMITTER_RING Ring, @@ -3884,6 +3893,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE NTSTATUS __TransmitterRingEnable( IN PXENVIF_TRANSMITTER_RING Ring @@ -3915,6 +3925,7 @@ __TransmitterRingEnable( return STATUS_SUCCESS; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE VOID __TransmitterRingDisable( IN PXENVIF_TRANSMITTER_RING Ring @@ -4024,6 +4035,7 @@ __TransmitterRingDisable( Ring->Index); } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE VOID __TransmitterRingDisconnect( IN PXENVIF_TRANSMITTER_RING Ring @@ -4081,6 +4093,7 @@ __TransmitterRingDisconnect( Ring->GnttabCache = NULL; } +_IRQL_requires_(PASSIVE_LEVEL) static FORCEINLINE VOID __TransmitterRingTeardown( IN PXENVIF_TRANSMITTER_RING Ring @@ -4164,6 +4177,7 @@ __TransmitterRingTeardown( __TransmitterFree(Ring); } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE VOID __TransmitterRingQueuePacket( IN PXENVIF_TRANSMITTER_RING Ring, @@ -4200,6 +4214,7 @@ __TransmitterRingQueuePacket( __TransmitterRingReleaseLock(Ring); } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE VOID __TransmitterRingAbortPackets( IN PXENVIF_TRANSMITTER_RING Ring @@ -4251,6 +4266,7 @@ __TransmitterRingAbortPackets( __TransmitterRingReleaseLock(Ring); } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE NTSTATUS __TransmitterRingQueueArp( IN PXENVIF_TRANSMITTER_RING Ring, @@ -4301,6 +4317,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE NTSTATUS __TransmitterRingQueueNeighbourAdvertisement( IN PXENVIF_TRANSMITTER_RING Ring, @@ -4355,6 +4372,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE BOOLEAN __TransmitterHasMulticastControl( IN PXENVIF_TRANSMITTER Transmitter @@ -4363,6 +4381,7 @@ __TransmitterHasMulticastControl( return Transmitter->MulticastControl; } +_IRQL_requires_(DISPATCH_LEVEL) BOOLEAN TransmitterHasMulticastControl( IN PXENVIF_TRANSMITTER Transmitter @@ -4442,6 +4461,7 @@ TransmitterDebugCallback( UNREFERENCED_PARAMETER(Crashing); } +_IRQL_requires_(PASSIVE_LEVEL) NTSTATUS TransmitterInitialize( IN PXENVIF_FRONTEND Frontend, @@ -4655,6 +4675,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) NTSTATUS TransmitterConnect( IN PXENVIF_TRANSMITTER Transmitter @@ -4765,6 +4786,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) static FORCEINLINE NTSTATUS __TransmitterRequestMulticastControl( IN PXENVIF_TRANSMITTER Transmitter, @@ -4795,6 +4817,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) NTSTATUS TransmitterRequestMulticastControl( IN PXENVIF_TRANSMITTER Transmitter, @@ -4819,6 +4842,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) NTSTATUS TransmitterStoreWrite( IN PXENVIF_TRANSMITTER Transmitter, @@ -4861,6 +4885,7 @@ fail1: return status; } +_IRQL_requires_(DISPATCH_LEVEL) NTSTATUS TransmitterEnable( IN PXENVIF_TRANSMITTER Transmitter @@ -4885,6 +4910,7 @@ TransmitterEnable( return STATUS_SUCCESS; } +_IRQL_requires_(DISPATCH_LEVEL) VOID TransmitterDisable( IN PXENVIF_TRANSMITTER Transmitter @@ -4907,6 +4933,7 @@ TransmitterDisable( Trace("<====\n"); } +_IRQL_requires_(DISPATCH_LEVEL) VOID TransmitterDisconnect( IN PXENVIF_TRANSMITTER Transmitter @@ -4944,6 +4971,7 @@ TransmitterDisconnect( Trace("<====\n"); } +_IRQL_requires_(PASSIVE_LEVEL) VOID TransmitterTeardown( IN PXENVIF_TRANSMITTER Transmitter @@ -5118,6 +5146,7 @@ done: return Value; } +_IRQL_requires_(DISPATCH_LEVEL) NTSTATUS TransmitterQueuePacket( IN PXENVIF_TRANSMITTER Transmitter, @@ -5209,6 +5238,7 @@ fail1: return status; } +_IRQL_requires_max_(APC_LEVEL) VOID TransmitterAbortPackets( IN PXENVIF_TRANSMITTER Transmitter @@ -5232,6 +5262,7 @@ TransmitterAbortPackets( KeLowerIrql(Irql); } +_IRQL_requires_(DISPATCH_LEVEL) VOID TransmitterQueueArp( IN PXENVIF_TRANSMITTER Transmitter, @@ -5243,6 +5274,7 @@ TransmitterQueueArp( (VOID) __TransmitterRingQueueArp(Ring, Address); } +_IRQL_requires_(DISPATCH_LEVEL) VOID TransmitterQueueNeighbourAdvertisement( IN PXENVIF_TRANSMITTER Transmitter, @@ -5254,6 +5286,7 @@ TransmitterQueueNeighbourAdvertisement( (VOID) __TransmitterRingQueueNeighbourAdvertisement(Ring, Address); } +_IRQL_requires_(DISPATCH_LEVEL) VOID TransmitterQueueMulticastControl( IN PXENVIF_TRANSMITTER Transmitter, @@ -5266,6 +5299,7 @@ TransmitterQueueMulticastControl( (VOID) __TransmitterRingQueueMulticastControl(Ring, Address, Add); } +_IRQL_requires_(DISPATCH_LEVEL) VOID TransmitterQueryRingSize( IN PXENVIF_TRANSMITTER Transmitter, @@ -5296,6 +5330,7 @@ TransmitterNotify( Ring->PollDpcs++; } +_IRQL_requires_(DISPATCH_LEVEL) VOID TransmitterQueryOffloadOptions( IN PXENVIF_TRANSMITTER Transmitter, @@ -5416,6 +5451,7 @@ TransmitterQueryOffloadOptions( MAXIMUM_IPV6_OPTIONS_LENGTH - \ MAXIMUM_TCP_HEADER_LENGTH) +_IRQL_requires_(DISPATCH_LEVEL) VOID TransmitterQueryLargePacketSize( IN PXENVIF_TRANSMITTER Transmitter, diff --git a/src/xenvif/transmitter.h b/src/xenvif/transmitter.h index f7f65dd..30ef371 100644 --- a/src/xenvif/transmitter.h +++ b/src/xenvif/transmitter.h @@ -43,38 +43,45 @@ typedef struct _XENVIF_TRANSMITTER XENVIF_TRANSMITTER, *PXENVIF_TRANSMITTER; +_IRQL_requires_(PASSIVE_LEVEL) extern NTSTATUS TransmitterInitialize( IN PXENVIF_FRONTEND Frontend, OUT PXENVIF_TRANSMITTER *Transmitter ); +_IRQL_requires_(DISPATCH_LEVEL) extern NTSTATUS TransmitterConnect( IN PXENVIF_TRANSMITTER Transmitter ); +_IRQL_requires_(DISPATCH_LEVEL) extern NTSTATUS TransmitterStoreWrite( IN PXENVIF_TRANSMITTER Transmitter, IN PXENBUS_STORE_TRANSACTION Transaction ); +_IRQL_requires_(DISPATCH_LEVEL) extern NTSTATUS TransmitterEnable( IN PXENVIF_TRANSMITTER Transmitter ); +_IRQL_requires_(DISPATCH_LEVEL) extern VOID TransmitterDisable( IN PXENVIF_TRANSMITTER Transmitter ); +_IRQL_requires_(DISPATCH_LEVEL) extern VOID TransmitterDisconnect( IN PXENVIF_TRANSMITTER Transmitter ); +_IRQL_requires_(PASSIVE_LEVEL) extern VOID TransmitterTeardown( IN PXENVIF_TRANSMITTER Transmitter @@ -86,23 +93,27 @@ TransmitterNotify( IN ULONG Index ); +_IRQL_requires_max_(APC_LEVEL) extern VOID TransmitterAbortPackets( IN PXENVIF_TRANSMITTER Transmitter ); +_IRQL_requires_(DISPATCH_LEVEL) extern VOID TransmitterQueueArp( IN PXENVIF_TRANSMITTER Transmitter, IN PIPV4_ADDRESS Address ); +_IRQL_requires_(DISPATCH_LEVEL) extern VOID TransmitterQueueNeighbourAdvertisement( IN PXENVIF_TRANSMITTER Transmitter, IN PIPV6_ADDRESS Address ); +_IRQL_requires_(DISPATCH_LEVEL) extern VOID TransmitterQueueMulticastControl( IN PXENVIF_TRANSMITTER Transmitter, @@ -110,12 +121,14 @@ TransmitterQueueMulticastControl( IN BOOLEAN Add ); +_IRQL_requires_(DISPATCH_LEVEL) extern VOID TransmitterQueryRingSize( IN PXENVIF_TRANSMITTER Transmitter, OUT PULONG Size ); +_IRQL_requires_(DISPATCH_LEVEL) extern NTSTATUS TransmitterQueuePacket( IN PXENVIF_TRANSMITTER Transmitter, @@ -130,12 +143,14 @@ TransmitterQueuePacket( IN PVOID Cookie ); +_IRQL_requires_(DISPATCH_LEVEL) extern VOID TransmitterQueryOffloadOptions( IN PXENVIF_TRANSMITTER Transmitter, OUT PXENVIF_VIF_OFFLOAD_OPTIONS Options ); +_IRQL_requires_(DISPATCH_LEVEL) extern VOID TransmitterQueryLargePacketSize( IN PXENVIF_TRANSMITTER Transmitter, @@ -143,11 +158,13 @@ TransmitterQueryLargePacketSize( OUT PULONG Size ); +_IRQL_requires_(DISPATCH_LEVEL) BOOLEAN TransmitterHasMulticastControl( IN PXENVIF_TRANSMITTER Transmitter ); +_IRQL_requires_(DISPATCH_LEVEL) NTSTATUS TransmitterRequestMulticastControl( IN PXENVIF_TRANSMITTER Transmitter, -- 2.51.0.windows.1 -- Ngoc Tu Dinh | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |