master
 1/**
 2 * This file has no copyright assigned and is placed in the Public Domain.
 3 * This file is part of the mingw-w64 runtime package.
 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 5 */
 6
 7#ifndef _NTIORINGX_H_
 8#define _NTIORINGX_H_
 9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#if NTDDI_VERSION >= NTDDI_WIN10_CO
15
16typedef enum IORING_VERSION {
17  IORING_VERSION_INVALID = 0,
18  IORING_VERSION_1,
19  IORING_VERSION_2
20#if NTDDI_VERSION >= NTDDI_WIN10_NI
21  , IORING_VERSION_3 = 300
22#endif
23  , IORING_VERSION_4 = 400
24} IORING_VERSION;
25
26typedef enum IORING_FEATURE_FLAGS {
27  IORING_FEATURE_FLAGS_NONE = 0,
28  IORING_FEATURE_UM_EMULATION = 0x00000001,
29  IORING_FEATURE_SET_COMPLETION_EVENT = 0x00000002
30} IORING_FEATURE_FLAGS;
31DEFINE_ENUM_FLAG_OPERATORS(IORING_FEATURE_FLAGS)
32
33typedef enum IORING_OP_CODE {
34  IORING_OP_NOP,
35  IORING_OP_READ,
36  IORING_OP_REGISTER_FILES,
37  IORING_OP_REGISTER_BUFFERS,
38  IORING_OP_CANCEL
39#if NTDDI_VERSION >= NTDDI_WIN10_NI
40  , IORING_OP_WRITE
41  , IORING_OP_FLUSH
42#endif
43  , IORING_OP_READ_SCATTER
44  , IORING_OP_WRITE_GATHER
45} IORING_OP_CODE;
46
47typedef struct IORING_BUFFER_INFO {
48  void* Address;
49  UINT32 Length;
50} IORING_BUFFER_INFO;
51
52typedef struct IORING_REGISTERED_BUFFER {
53  UINT32 BufferIndex;
54  UINT32 Offset;
55} IORING_REGISTERED_BUFFER;
56
57#define IORING_SUBMIT_WAIT_ALL MAXUINT32
58
59#endif /* NTDDI_WIN10_CO */
60
61#ifdef __cplusplus
62}
63#endif
64
65#endif /* _NTIORINGX_H_ */