Module: wine
Branch: master
Commit: 27fc318161cad21d08c3ee71dc8248d3dae1eae8
URL: https://gitlab.winehq.org/wine/wine/-/commit/27fc318161cad21d08c3ee71dc8248…
Author: Paul Gofman <pgofman(a)codeweavers.com>
Date: Mon Jul 10 14:09:22 2023 -0600
include: Add initial ioring definitions.
---
include/Makefile.in | 2 ++
include/ioringapi.h | 42 ++++++++++++++++++++++++++++++++++++++++++
include/ntioring_x.h | 39 +++++++++++++++++++++++++++++++++++++++
3 files changed, 83 insertions(+)
diff --git a/include/Makefile.in b/include/Makefile.in
index b1b582ff4d6..5fd20858aee 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -376,6 +376,7 @@ SOURCES = \
inspectable.idl \
interactioncontext.h \
intshcut.h \
+ ioringapi.h \
ip2string.h \
ipexport.h \
iphlpapi.h \
@@ -575,6 +576,7 @@ SOURCES = \
ntdef.h \
ntdsapi.h \
ntgdi.h \
+ ntioring_x.h \
ntlsa.h \
ntquery.h \
ntsecapi.h \
diff --git a/include/ioringapi.h b/include/ioringapi.h
new file mode 100644
index 00000000000..3ccbfc80654
--- /dev/null
+++ b/include/ioringapi.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2023 Paul Gofman for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __IORINGAPI_H_
+#define __IORINGAPI_H_
+
+#include <ntioring_x.h>
+
+struct IORING_CAPABILITIES
+{
+ IORING_VERSION MaxVersion;
+ UINT32 MaxSubmissionQueueSize;
+ UINT32 MaxCompletionQueueSize;
+ IORING_FEATURE_FLAGS FeatureFlags;
+};
+typedef struct IORING_CAPABILITIES IORING_CAPABILITIES;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI QueryIoRingCapabilities(IORING_CAPABILITIES *caps);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/include/ntioring_x.h b/include/ntioring_x.h
new file mode 100644
index 00000000000..bf16d9368d4
--- /dev/null
+++ b/include/ntioring_x.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2023 Paul Gofman for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __NTIORING_X_H_
+#define __NTIORING_X_H_
+
+enum IORING_VERSION
+{
+ IORING_VERSION_INVALID = 0,
+ IORING_VERSION_1 = 1,
+ IORING_VERSION_2 = 2,
+ IORING_VERSION_3 = 300,
+};
+typedef enum IORING_VERSION IORING_VERSION;
+
+enum IORING_FEATURE_FLAGS
+{
+ IORING_FEATURE_FLAGS_NONE = 0,
+ IORING_FEATURE_UM_EMULATION = 0x00000001,
+ IORING_FEATURE_SET_COMPLETION_EVENT = 0x00000002,
+};
+typedef enum IORING_FEATURE_FLAGS IORING_FEATURE_FLAGS;
+
+#endif