|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 4/4] xenvif: sync common files with xenbus
Take assert.h, dbg_print.h, mutex.h, and thread.c/h from xenbus.
Signed-off-by: Césaire Mounah <cesaire.mounah@xxxxxxxxxx>
---
src/xenvif/dbg_print.h | 66 ++++++++++++++++++------------
src/xenvif/mutex.h | 93 ++++++++++++++++++++++++++++--------------
src/xenvif/names.h | 26 ++++++------
src/xenvif/thread.c | 72 ++++++++++++++++----------------
src/xenvif/thread.h | 52 +++++++++++------------
5 files changed, 177 insertions(+), 132 deletions(-)
diff --git a/src/xenvif/dbg_print.h b/src/xenvif/dbg_print.h
index 21bea0c..17abb40 100644
--- a/src/xenvif/dbg_print.h
+++ b/src/xenvif/dbg_print.h
@@ -1,32 +1,32 @@
/* Copyright (c) Xen Project.
* Copyright (c) Cloud Software Group, Inc.
* All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
+ *
+ * Redistribution and use in source and binary forms,
+ * with or without modification, are permitted provided
* that the following conditions are met:
- *
- * * Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the
+ *
+ * * Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the
* following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the
- * following disclaimer in the documentation and/or other
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the
+ * following disclaimer in the documentation and/or other
* materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
@@ -36,12 +36,12 @@
#include <ntddk.h>
#include <stdarg.h>
-#pragma warning(disable:4127) // conditional expression is constant
-
#define stringify_literal(_text) #_text
#define stringify(_text) stringify_literal(_text)
#define __MODULE__ stringify(PROJECT)
+#pragma warning(disable:4127) // conditional expression is constant
+
static __inline VOID
__Error(
_In_ PCSTR Prefix,
@@ -138,4 +138,20 @@ __Info(
#define Info(...) \
__Info(__MODULE__ "|" __FUNCTION__ ": ", __VA_ARGS__)
+#define DBG_PRINT_ENABLE_FILTER(_Id, _Level) \
+ do { \
+ DbgSetDebugFilterState((_Id), (_Level), TRUE); \
+ } while (FALSE)
+
+static __inline VOID
+__DbgPrintEnable(
+ VOID
+ )
+{
+ DBG_PRINT_ENABLE_FILTER(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL);
+ DBG_PRINT_ENABLE_FILTER(DPFLTR_IHVDRIVER_ID, DPFLTR_WARNING_LEVEL);
+ DBG_PRINT_ENABLE_FILTER(DPFLTR_IHVDRIVER_ID, DPFLTR_TRACE_LEVEL);
+ DBG_PRINT_ENABLE_FILTER(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL);
+}
+
#endif // _XENVIF_DBG_PRINT_H
diff --git a/src/xenvif/mutex.h b/src/xenvif/mutex.h
index 00a2d9c..15a0589 100644
--- a/src/xenvif/mutex.h
+++ b/src/xenvif/mutex.h
@@ -1,32 +1,32 @@
/* Copyright (c) Xen Project.
* Copyright (c) Cloud Software Group, Inc.
* All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
+ *
+ * Redistribution and use in source and binary forms,
+ * with or without modification, are permitted provided
* that the following conditions are met:
- *
- * * Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the
+ *
+ * * Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the
* following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the
- * following disclaimer in the documentation and/or other
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the
+ * following disclaimer in the documentation and/or other
* materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
@@ -44,7 +44,7 @@ typedef struct _MUTEX {
static FORCEINLINE VOID
InitializeMutex(
- _In_ PMUTEX Mutex
+ _Out_ PMUTEX Mutex
)
{
RtlZeroMemory(Mutex, sizeof (MUTEX));
@@ -52,17 +52,48 @@ InitializeMutex(
KeInitializeEvent(&Mutex->Event, SynchronizationEvent, TRUE);
}
+static FORCEINLINE BOOLEAN
+_IRQL_requires_max_(PASSIVE_LEVEL)
+TryAcquireMutex(
+ _Inout_ PMUTEX Mutex
+ )
+{
+ LARGE_INTEGER Timeout;
+ NTSTATUS status;
+
+ Timeout.QuadPart = 0;
+
+ status = KeWaitForSingleObject(&Mutex->Event,
+ Executive,
+ KernelMode,
+ FALSE,
+ &Timeout);
+ if (status == STATUS_TIMEOUT)
+ return FALSE;
+
+ ASSERT(NT_SUCCESS(status));
+
+ ASSERT3P(Mutex->Owner, ==, NULL);
+ Mutex->Owner = KeGetCurrentThread();
+
+ return TRUE;
+}
+
static FORCEINLINE VOID
_IRQL_requires_max_(PASSIVE_LEVEL)
AcquireMutex(
- _In_ PMUTEX Mutex
+ _Inout_ PMUTEX Mutex
)
{
- (VOID) KeWaitForSingleObject(&Mutex->Event,
- Executive,
- KernelMode,
- FALSE,
- NULL);
+ NTSTATUS status;
+
+ status = KeWaitForSingleObject(&Mutex->Event,
+ Executive,
+ KernelMode,
+ FALSE,
+ NULL);
+
+ ASSERT(NT_SUCCESS(status));
ASSERT3P(Mutex->Owner, ==, NULL);
Mutex->Owner = KeGetCurrentThread();
@@ -71,7 +102,7 @@ AcquireMutex(
static FORCEINLINE VOID
_IRQL_requires_max_(PASSIVE_LEVEL)
ReleaseMutex(
- _In_ PMUTEX Mutex
+ _Inout_ PMUTEX Mutex
)
{
ASSERT3P(Mutex->Owner, ==, KeGetCurrentThread());
diff --git a/src/xenvif/names.h b/src/xenvif/names.h
index b0404f3..e1b8d52 100644
--- a/src/xenvif/names.h
+++ b/src/xenvif/names.h
@@ -38,7 +38,7 @@
#include "types.h"
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
PowerTypeName(
_In_ POWER_STATE_TYPE Type
)
@@ -58,7 +58,7 @@ PowerTypeName(
#undef _POWER_ACTION_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
PowerSystemStateName(
_In_ SYSTEM_POWER_STATE State
)
@@ -84,7 +84,7 @@ PowerSystemStateName(
#undef _POWER_SYSTEM_STATE_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
PowerDeviceStateName(
_In_ DEVICE_POWER_STATE State
)
@@ -108,7 +108,7 @@ PowerDeviceStateName(
#undef _POWER_DEVICE_STATE_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
PowerActionName(
_In_ POWER_ACTION Type
)
@@ -134,7 +134,7 @@ PowerActionName(
#undef _POWER_ACTION_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
PowerMinorFunctionName(
_In_ ULONG MinorFunction
)
@@ -156,7 +156,7 @@ PowerMinorFunctionName(
#undef _POWER_MINOR_FUNCTION_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
PnpDeviceStateName(
_In_ DEVICE_PNP_STATE State
)
@@ -183,7 +183,7 @@ PnpDeviceStateName(
#undef _STATE_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
PnpMinorFunctionName(
_In_ ULONG Function
)
@@ -226,7 +226,7 @@ PnpMinorFunctionName(
#undef _PNP_MINOR_FUNCTION_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
PartialResourceDescriptorTypeName(
_In_ UCHAR Type
)
@@ -255,7 +255,7 @@ PartialResourceDescriptorTypeName(
#undef _PARTIAL_RESOURCE_DESCRIPTOR_TYPE_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
DeviceUsageTypeName(
_In_ DEVICE_USAGE_NOTIFICATION_TYPE Type
)
@@ -277,7 +277,7 @@ DeviceUsageTypeName(
#undef _DEVICE_USAGE_TYPE_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
InterfaceTypeName(
_In_ INTERFACE_TYPE Type
)
@@ -315,7 +315,7 @@ InterfaceTypeName(
#undef _INTERFACE_TYPE_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
DmaWidthName(
_In_ DMA_WIDTH Width
)
@@ -339,7 +339,7 @@ DmaWidthName(
#undef _DMA_WIDTH_NAME
}
-static FORCEINLINE const CHAR *
+static FORCEINLINE PCSTR
DmaSpeedName(
_In_ DMA_SPEED Speed
)
@@ -364,7 +364,7 @@ DmaSpeedName(
#undef _DMA_SPEED_NAME
}
-static FORCEINLINE const PCHAR
+static FORCEINLINE PCSTR
XenbusStateName(
_In_ XenbusState State
)
diff --git a/src/xenvif/thread.c b/src/xenvif/thread.c
index ed9315e..ed7266b 100644
--- a/src/xenvif/thread.c
+++ b/src/xenvif/thread.c
@@ -1,32 +1,32 @@
/* Copyright (c) Xen Project.
* Copyright (c) Cloud Software Group, Inc.
* All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
+ *
+ * Redistribution and use in source and binary forms,
+ * with or without modification, are permitted provided
* that the following conditions are met:
- *
- * * Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the
+ *
+ * * Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the
* following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the
- * following disclaimer in the documentation and/or other
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the
+ * following disclaimer in the documentation and/or other
* materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
@@ -37,7 +37,7 @@
#include "assert.h"
#include "util.h"
-#define THREAD_POOL 'ERHT'
+#define THREAD_TAG 'ERHT'
struct _XENVIF_THREAD {
XENVIF_THREAD_FUNCTION Function;
@@ -53,7 +53,7 @@ __ThreadAllocate(
_In_ ULONG Length
)
{
- return __AllocatePoolWithTag(NonPagedPool, Length, THREAD_POOL);
+ return __AllocatePoolWithTag(NonPagedPool, Length, THREAD_TAG);
}
static FORCEINLINE VOID
@@ -61,12 +61,12 @@ __ThreadFree(
_In_ PVOID Buffer
)
{
- __FreePoolWithTag(Buffer, THREAD_POOL);
+ __FreePoolWithTag(Buffer, THREAD_TAG);
}
static FORCEINLINE VOID
__ThreadWake(
- _Out_ PXENVIF_THREAD Thread
+ _Inout_ PXENVIF_THREAD Thread
)
{
KeSetEvent(&Thread->Event, IO_NO_INCREMENT, FALSE);
@@ -74,7 +74,7 @@ __ThreadWake(
VOID
ThreadWake(
- _Out_ PXENVIF_THREAD Thread
+ _Inout_ PXENVIF_THREAD Thread
)
{
__ThreadWake(Thread);
@@ -82,7 +82,7 @@ ThreadWake(
static FORCEINLINE VOID
__ThreadAlert(
- _Out_ PXENVIF_THREAD Thread
+ _Inout_ PXENVIF_THREAD Thread
)
{
Thread->Alerted = TRUE;
@@ -91,7 +91,7 @@ __ThreadAlert(
VOID
ThreadAlert(
- _Out_ PXENVIF_THREAD Thread
+ _Inout_ PXENVIF_THREAD Thread
)
{
__ThreadAlert(Thread);
@@ -101,11 +101,11 @@ KSTART_ROUTINE ThreadFunction;
VOID
ThreadFunction(
- _In_ PVOID Argument
+ _In_ PVOID Argument
)
{
- PXENVIF_THREAD Self = Argument;
- NTSTATUS status;
+ PXENVIF_THREAD Self = Argument;
+ NTSTATUS status;
status = Self->Function(Self, Self->Context);
@@ -131,8 +131,6 @@ ThreadCreate(
(*Thread) = __ThreadAllocate(sizeof (XENVIF_THREAD));
- Trace("Create thread %p %p\n", Function, Thread);
-
status = STATUS_NO_MEMORY;
if (*Thread == NULL)
goto fail1;
@@ -207,10 +205,10 @@ ThreadIsAlerted(
VOID
ThreadJoin(
- _Out_ PXENVIF_THREAD Thread
+ _Inout_ PXENVIF_THREAD Thread
)
{
- LONG References;
+ LONG References;
ASSERT3U(KeGetCurrentIrql(), ==, PASSIVE_LEVEL);
ASSERT3P(KeGetCurrentThread(), !=, Thread->Thread);
diff --git a/src/xenvif/thread.h b/src/xenvif/thread.h
index 6ee965a..f343ddc 100644
--- a/src/xenvif/thread.h
+++ b/src/xenvif/thread.h
@@ -1,32 +1,32 @@
/* Copyright (c) Xen Project.
* Copyright (c) Cloud Software Group, Inc.
* All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
+ *
+ * Redistribution and use in source and binary forms,
+ * with or without modification, are permitted provided
* that the following conditions are met:
- *
- * * Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the
+ *
+ * * Redistributions of source code must retain the above
+ * copyright notice, this list of conditions and the
* following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the
- * following disclaimer in the documentation and/or other
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the
+ * following disclaimer in the documentation and/or other
* materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
@@ -59,17 +59,17 @@ ThreadIsAlerted(
extern VOID
ThreadWake(
- _Out_ PXENVIF_THREAD Thread
+ _Inout_ PXENVIF_THREAD Thread
);
extern VOID
ThreadAlert(
- _Out_ PXENVIF_THREAD Thread
+ _Inout_ PXENVIF_THREAD Thread
);
extern VOID
ThreadJoin(
- _Out_ PXENVIF_THREAD Thread
+ _Inout_ PXENVIF_THREAD Thread
);
#endif // _XENVIF_THREAD_H
--
2.55.0.windows.5
--
Césaire Mounah | Vates Windows Guest Tools Engineer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |