|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XENVIF PATCH v2 1/4] controller: Map out IRQL annotations
This is an initial, exploratory work to help inform the rework of
the controller interface.
No functional changes.
Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
v2: I've removed the annotations on the VIF interface since I haven't finished
my analysis of that.
The previous version contained lots of trailing space deletions, which also have
been deleted in v2.
Resending yet again because the patch set was blocked by the mailing list.
---
src/xenvif/controller.c | 16 ++++++++++++++++
src/xenvif/controller.h | 12 ++++++++++++
2 files changed, 28 insertions(+)
diff --git a/src/xenvif/controller.c b/src/xenvif/controller.c
index ae86837..e032972 100644
--- a/src/xenvif/controller.c
+++ b/src/xenvif/controller.c
@@ -137,6 +137,7 @@ ControllerReleaseLock(
__ControllerReleaseLock(Controller);
}
+_IRQL_requires_min_(DISPATCH_LEVEL)
static FORCEINLINE VOID
__ControllerSend(
IN PXENVIF_CONTROLLER Controller
@@ -177,6 +178,7 @@ ControllerPoll(
Controller->Shared->rsp_event = rsp_cons + 1;
}
+_IRQL_requires_min_(DISPATCH_LEVEL)
static NTSTATUS
ControllerPutRequest(
IN PXENVIF_CONTROLLER Controller,
@@ -248,6 +250,7 @@ fail1:
#define XENVIF_CONTROLLER_POLL_PERIOD 100 // ms
+_IRQL_requires_(DISPATCH_LEVEL)
static NTSTATUS
ControllerGetResponse(
IN PXENVIF_CONTROLLER Controller,
@@ -318,6 +321,7 @@ ControllerGetResponse(
KSERVICE_ROUTINE ControllerEvtchnCallback;
+_Use_decl_annotations_
BOOLEAN
ControllerEvtchnCallback(
IN PKINTERRUPT InterruptObject,
@@ -345,6 +349,7 @@ ControllerDebugCallback(
UNREFERENCED_PARAMETER(Crashing);
}
+_IRQL_requires_(PASSIVE_LEVEL)
NTSTATUS
ControllerInitialize(
IN PXENVIF_FRONTEND Frontend,
@@ -390,6 +395,7 @@ fail1:
return status;
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerConnect(
IN PXENVIF_CONTROLLER Controller
@@ -597,6 +603,7 @@ fail1:
return status;
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerStoreWrite(
IN PXENVIF_CONTROLLER Controller,
@@ -670,6 +677,7 @@ ControllerDisable(
Trace("<===>\n");
}
+_IRQL_requires_(DISPATCH_LEVEL)
VOID
ControllerDisconnect(
IN PXENVIF_CONTROLLER Controller
@@ -732,6 +740,7 @@ done:
Trace("<====\n");
}
+_IRQL_requires_(PASSIVE_LEVEL)
VOID
ControllerTeardown(
IN PXENVIF_CONTROLLER Controller
@@ -762,6 +771,7 @@ ControllerTeardown(
__ControllerFree(Controller);
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerSetHashAlgorithm(
IN PXENVIF_CONTROLLER Controller,
@@ -802,6 +812,7 @@ fail1:
return status;
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerGetHashFlags(
IN PXENVIF_CONTROLLER Controller,
@@ -842,6 +853,7 @@ fail1:
return status;
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerSetHashFlags(
IN PXENVIF_CONTROLLER Controller,
@@ -882,6 +894,7 @@ fail1:
return status;
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerSetHashKey(
IN PXENVIF_CONTROLLER Controller,
@@ -976,6 +989,7 @@ fail1:
return status;
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerGetHashMappingSize(
IN PXENVIF_CONTROLLER Controller,
@@ -1016,6 +1030,7 @@ fail1:
return status;
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerSetHashMappingSize(
IN PXENVIF_CONTROLLER Controller,
@@ -1056,6 +1071,7 @@ fail1:
return status;
}
+_IRQL_requires_(DISPATCH_LEVEL)
NTSTATUS
ControllerSetHashMapping(
IN PXENVIF_CONTROLLER Controller,
diff --git a/src/xenvif/controller.h b/src/xenvif/controller.h
index b14e066..18e09b7 100644
--- a/src/xenvif/controller.h
+++ b/src/xenvif/controller.h
@@ -41,17 +41,20 @@
typedef struct _XENVIF_CONTROLLER XENVIF_CONTROLLER, *PXENVIF_CONTROLLER;
+_IRQL_requires_(PASSIVE_LEVEL)
extern NTSTATUS
ControllerInitialize(
IN PXENVIF_FRONTEND Frontend,
OUT PXENVIF_CONTROLLER *Controller
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerConnect(
IN PXENVIF_CONTROLLER Controller
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerStoreWrite(
IN PXENVIF_CONTROLLER Controller,
@@ -68,34 +71,40 @@ ControllerDisable(
IN PXENVIF_CONTROLLER Controller
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern VOID
ControllerDisconnect(
IN PXENVIF_CONTROLLER Controller
);
+_IRQL_requires_(PASSIVE_LEVEL)
extern VOID
ControllerTeardown(
IN PXENVIF_CONTROLLER Controller
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerSetHashAlgorithm(
IN PXENVIF_CONTROLLER Controller,
IN ULONG Algorithm
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerGetHashFlags(
IN PXENVIF_CONTROLLER Controller,
IN PULONG Flags
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerSetHashFlags(
IN PXENVIF_CONTROLLER Controller,
IN ULONG Flags
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerSetHashKey(
IN PXENVIF_CONTROLLER Controller,
@@ -103,18 +112,21 @@ ControllerSetHashKey(
IN ULONG Size
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerGetHashMappingSize(
IN PXENVIF_CONTROLLER Controller,
IN PULONG Size
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerSetHashMappingSize(
IN PXENVIF_CONTROLLER Controller,
IN ULONG Size
);
+_IRQL_requires_(DISPATCH_LEVEL)
extern NTSTATUS
ControllerSetHashMapping(
IN PXENVIF_CONTROLLER Controller,
--
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 |