blob: 3e94082e513c09228a8ff1bf752c31e10e825f9f [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _NTIORINGX_H_
#define _NTIORINGX_H_
#ifdef __cplusplus
extern "C" {
#endif
#if NTDDI_VERSION >= NTDDI_WIN10_CO
typedef enum IORING_VERSION {
IORING_VERSION_INVALID = 0,
IORING_VERSION_1,
IORING_VERSION_2
#if NTDDI_VERSION >= NTDDI_WIN10_NI
, IORING_VERSION_3 = 300
#endif
, IORING_VERSION_4 = 400
} IORING_VERSION;
typedef enum IORING_FEATURE_FLAGS {
IORING_FEATURE_FLAGS_NONE = 0,
IORING_FEATURE_UM_EMULATION = 0x00000001,
IORING_FEATURE_SET_COMPLETION_EVENT = 0x00000002
} IORING_FEATURE_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS(IORING_FEATURE_FLAGS)
typedef enum IORING_OP_CODE {
IORING_OP_NOP,
IORING_OP_READ,
IORING_OP_REGISTER_FILES,
IORING_OP_REGISTER_BUFFERS,
IORING_OP_CANCEL
#if NTDDI_VERSION >= NTDDI_WIN10_NI
, IORING_OP_WRITE
, IORING_OP_FLUSH
#endif
, IORING_OP_READ_SCATTER
, IORING_OP_WRITE_GATHER
} IORING_OP_CODE;
typedef struct IORING_BUFFER_INFO {
void* Address;
UINT32 Length;
} IORING_BUFFER_INFO;
typedef struct IORING_REGISTERED_BUFFER {
UINT32 BufferIndex;
UINT32 Offset;
} IORING_REGISTERED_BUFFER;
#define IORING_SUBMIT_WAIT_ALL MAXUINT32
#endif /* NTDDI_WIN10_CO */
#ifdef __cplusplus
}
#endif
#endif /* _NTIORINGX_H_ */