* [PATCH] io_uring: Avoid anonymous enums in io_uring uapi
@ 2024-03-28 21:09 Gabriel Krisman Bertazi
2024-03-28 23:05 ` (subset) " Jens Axboe
0 siblings, 1 reply; 2+ messages in thread
From: Gabriel Krisman Bertazi @ 2024-03-28 21:09 UTC (permalink / raw)
To: axboe; +Cc: io-uring, Gabriel Krisman Bertazi
While valid C, anonymous enums confuse Cython (Python to C translator),
as reported by Ritesh (YoSTEALTH) [1] . Since people rely on it when
building against liburing and we want to keep this header in sync with
the library version, let's name the existing enums in the uapi header.
[1] https://github.com/cython/cython/issues/3240
Signed-off-by: Gabriel Krisman Bertazi <[email protected]>
---
include/uapi/linux/io_uring.h | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h
index 7bd10201a02b..a7f847543a7f 100644
--- a/include/uapi/linux/io_uring.h
+++ b/include/uapi/linux/io_uring.h
@@ -115,7 +115,7 @@ struct io_uring_sqe {
*/
#define IORING_FILE_INDEX_ALLOC (~0U)
-enum {
+enum io_uring_sqe_flags_bit {
IOSQE_FIXED_FILE_BIT,
IOSQE_IO_DRAIN_BIT,
IOSQE_IO_LINK_BIT,
@@ -374,7 +374,7 @@ enum io_uring_op {
/*
* IORING_OP_MSG_RING command types, stored in sqe->addr
*/
-enum {
+enum io_uring_msg_ring_flags {
IORING_MSG_DATA, /* pass sqe->len as 'res' and off as user_data */
IORING_MSG_SEND_FD, /* send a registered fd to another ring */
};
@@ -425,9 +425,7 @@ struct io_uring_cqe {
#define IORING_CQE_F_SOCK_NONEMPTY (1U << 2)
#define IORING_CQE_F_NOTIF (1U << 3)
-enum {
- IORING_CQE_BUFFER_SHIFT = 16,
-};
+#define IORING_CQE_BUFFER_SHIFT 16
/*
* Magic offsets for the application to mmap the data it needs
@@ -526,7 +524,7 @@ struct io_uring_params {
/*
* io_uring_register(2) opcodes and arguments
*/
-enum {
+enum io_uring_register_op {
IORING_REGISTER_BUFFERS = 0,
IORING_UNREGISTER_BUFFERS = 1,
IORING_REGISTER_FILES = 2,
@@ -583,7 +581,7 @@ enum {
};
/* io-wq worker categories */
-enum {
+enum io_wq_type {
IO_WQ_BOUND,
IO_WQ_UNBOUND,
};
@@ -688,7 +686,7 @@ struct io_uring_buf_ring {
* IORING_OFF_PBUF_RING | (bgid << IORING_OFF_PBUF_SHIFT)
* to get a virtual mapping for the ring.
*/
-enum {
+enum io_uring_register_pbuf_ring_flags {
IOU_PBUF_RING_MMAP = 1,
};
@@ -719,7 +717,7 @@ struct io_uring_napi {
/*
* io_uring_restriction->opcode values
*/
-enum {
+enum io_uring_register_restriction_op {
/* Allow an io_uring_register(2) opcode */
IORING_RESTRICTION_REGISTER_OP = 0,
@@ -775,7 +773,7 @@ struct io_uring_recvmsg_out {
/*
* Argument for IORING_OP_URING_CMD when file is a socket
*/
-enum {
+enum io_uring_socket_op {
SOCKET_URING_OP_SIOCINQ = 0,
SOCKET_URING_OP_SIOCOUTQ,
SOCKET_URING_OP_GETSOCKOPT,
--
2.44.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: (subset) [PATCH] io_uring: Avoid anonymous enums in io_uring uapi
2024-03-28 21:09 [PATCH] io_uring: Avoid anonymous enums in io_uring uapi Gabriel Krisman Bertazi
@ 2024-03-28 23:05 ` Jens Axboe
0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2024-03-28 23:05 UTC (permalink / raw)
To: Gabriel Krisman Bertazi; +Cc: io-uring
On Thu, 28 Mar 2024 17:09:35 -0400, Gabriel Krisman Bertazi wrote:
> While valid C, anonymous enums confuse Cython (Python to C translator),
> as reported by Ritesh (YoSTEALTH) [1] . Since people rely on it when
> building against liburing and we want to keep this header in sync with
> the library version, let's name the existing enums in the uapi header.
>
> [1] https://github.com/cython/cython/issues/3240
>
> [...]
Applied, thanks!
[1/1] io_uring: Avoid anonymous enums in io_uring uapi
(no commit info)
Best regards,
--
Jens Axboe
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-03-28 23:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-28 21:09 [PATCH] io_uring: Avoid anonymous enums in io_uring uapi Gabriel Krisman Bertazi
2024-03-28 23:05 ` (subset) " Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox