[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 05/15] stubs: add stubs for io_uring interface
From: |
Stefan Hajnoczi |
Subject: |
[PATCH v3 05/15] stubs: add stubs for io_uring interface |
Date: |
Wed, 18 Dec 2019 16:32:18 +0000 |
From: Aarushi Mehta <address@hidden>
Follow linux-aio.o and stub out the block/io_uring.o APIs that will be
missing when a binary is linked with obj-util-y but without
block-util-y (e.g. vhost-user-gpu).
For example, the stubs are necessary so that a binary using util/async.o
from obj-util-y for qemu_bh_new() links successfully. In this case
block/io_uring.o from block-util-y isn't needed and we can avoid
dragging in the block layer by linking the stubs instead. The stub
functions never get called.
Signed-off-by: Aarushi Mehta <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
MAINTAINERS | 1 +
stubs/Makefile.objs | 1 +
stubs/io_uring.c | 32 ++++++++++++++++++++++++++++++++
3 files changed, 34 insertions(+)
create mode 100644 stubs/io_uring.c
diff --git a/MAINTAINERS b/MAINTAINERS
index fc7f53b229..2f578c70e7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2603,6 +2603,7 @@ M: Stefan Hajnoczi <address@hidden>
L: address@hidden
S: Maintained
F: block/io_uring.c
+F: stubs/io_uring.c
qcow2
M: Kevin Wolf <address@hidden>
diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
index 4a50e95ec3..56c177c507 100644
--- a/stubs/Makefile.objs
+++ b/stubs/Makefile.objs
@@ -13,6 +13,7 @@ stub-obj-y += iothread.o
stub-obj-y += iothread-lock.o
stub-obj-y += is-daemonized.o
stub-obj-$(CONFIG_LINUX_AIO) += linux-aio.o
+stub-obj-$(CONFIG_LINUX_IO_URING) += io_uring.o
stub-obj-y += machine-init-done.o
stub-obj-y += migr-blocker.o
stub-obj-y += change-state-handler.o
diff --git a/stubs/io_uring.c b/stubs/io_uring.c
new file mode 100644
index 0000000000..622d1e4648
--- /dev/null
+++ b/stubs/io_uring.c
@@ -0,0 +1,32 @@
+/*
+ * Linux io_uring support.
+ *
+ * Copyright (C) 2009 IBM, Corp.
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+#include "qemu/osdep.h"
+#include "block/aio.h"
+#include "block/raw-aio.h"
+
+void luring_detach_aio_context(LuringState *s, AioContext *old_context)
+{
+ abort();
+}
+
+void luring_attach_aio_context(LuringState *s, AioContext *new_context)
+{
+ abort();
+}
+
+LuringState *luring_init(Error **errp)
+{
+ abort();
+}
+
+void luring_cleanup(LuringState *s)
+{
+ abort();
+}
--
2.23.0
- [PATCH v3 00/15] io_uring: add Linux io_uring AIO engine, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 01/15] configure: permit use of io_uring, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 02/15] qapi/block-core: add option for io_uring, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 03/15] block/block: add BDRV flag for io_uring, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 05/15] stubs: add stubs for io_uring interface,
Stefan Hajnoczi <=
- [PATCH v3 04/15] block/io_uring: implements interfaces for io_uring, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 06/15] util/async: add aio interfaces for io_uring, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 07/15] blockdev: adds bdrv_parse_aio to use io_uring, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 08/15] block/file-posix.c: extend to use io_uring, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 09/15] block: add trace events for io_uring, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 10/15] block/io_uring: adds userspace completion polling, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 11/15] qemu-io: adds option to use aio engine, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 12/15] qemu-img: adds option to use aio engine for benchmarking, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 13/15] qemu-nbd: adds option for aio engines, Stefan Hajnoczi, 2019/12/18
- [PATCH v3 14/15] tests/qemu-iotests: enable testing with aio options, Stefan Hajnoczi, 2019/12/18