Module: wine Branch: master Commit: 27fc318161cad21d08c3ee71dc8248d3dae1eae8 URL: https://gitlab.winehq.org/wine/wine/-/commit/27fc318161cad21d08c3ee71dc8248d...
Author: Paul Gofman pgofman@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