qemu/util
Vladimir Sementsov-Ogievskiy f16ba00de9 util: introduce SharedResource
Introduce an API for some shared splittable resource, like memory.
It's going to be used by backup. Backup uses both read/write io and
copy_range. copy_range may consume memory implictly, so the new API is
abstract: it doesn't allocate any real memory but only hands out
tickets.

The idea is that we have some total amount of something and callers
should wait in coroutine queue if there is not enough of the resource
at the moment.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 20191022111805.3432-5-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2019-10-28 11:22:31 +01:00
..
aio-posix.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
aio-wait.c block: Use a single global AioWait 2018-09-25 15:50:15 +02:00
aio-win32.c aio-posix: Fix concurrent aio_poll/set_fd_handler. 2019-01-14 14:09:41 +00:00
aiocb.c
async.c util/async: avoid useless cast 2019-10-24 19:26:05 +02:00
atomic64.c util: add atomic64 2018-10-02 18:47:55 +02:00
base64.c
bitmap.c bitmap: Add bitmap_copy_with_{src|dst}_offset() 2019-07-15 15:39:02 +02:00
bitops.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
buffer.c
bufferiszero.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
cacheinfo.c Fix cacheline detection on FreeBSD/powerpc. 2019-09-19 14:42:13 +02:00
compatfd.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
coroutine-sigaltstack.c
coroutine-ucontext.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
coroutine-win32.c
crc32c.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
cutils.c cutils: remove one unnecessary pointer operation 2019-07-15 15:39:02 +02:00
drm.c util: promote qemu_egl_rendernode_open() to libqemuutil 2018-08-27 10:51:44 +02:00
envlist.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
error.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
event_notifier-posix.c event_notifier: avoid dandling file descriptor in event_notifier_cleanup 2019-10-24 19:26:52 +02:00
event_notifier-win32.c
fifo8.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
filemonitor-inotify.c filemon: fix watch IDs to avoid potential wraparound issues 2019-04-02 13:52:02 +01:00
filemonitor-stub.c filemon: fix watch IDs to avoid potential wraparound issues 2019-04-02 13:52:02 +01:00
getauxval.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
guest-random.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
hbitmap.c hbitmap: handle set/reset with zero length 2019-10-28 11:22:30 +01:00
hexdump.c
host-utils.c
id.c qemu-common: Move qemu_isalnum() etc. to qemu/ctype.h 2019-06-11 20:22:09 +02:00
iov.c util/ioc.c: try to reassure Coverity about qemu_iovec_init_extended 2019-10-08 14:27:35 +01:00
iova-tree.c util: remove redundant include of glib.h and add osdep.h 2018-06-29 12:22:28 +01:00
keyval.c
lockcnt.c
log.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
main-loop.c util: merge main-loop.c and iohandler.c 2019-07-15 11:20:43 +02:00
Makefile.objs util: introduce SharedResource 2019-10-28 11:22:31 +01:00
memfd.c linux-user: add memfd_create 2019-09-11 08:46:17 +02:00
mmap-alloc.c util/mmap-alloc: support MAP_SYNC in qemu_ram_mmap() 2019-04-25 14:17:36 -03:00
module.c module: return success on module load 2019-08-21 16:29:57 +02:00
notify.c xen / notify: introduce a new XenWatchList abstraction 2019-09-24 12:18:47 +01:00
osdep.c slirp: prefer c99 types over BSD kind 2019-02-07 15:49:08 +02:00
oslib-posix.c memory: fetch pmem size in get_file_size() 2019-09-16 12:32:21 +02:00
oslib-win32.c util: WSAEWOULDBLOCK on connect should map to EINPROGRESS 2019-10-04 18:49:18 +02:00
pagesize.c
path.c util/path: Do not cache all filenames at startup 2019-06-24 22:19:30 +02:00
qdist.c
qemu-co-shared-resource.c util: introduce SharedResource 2019-10-28 11:22:31 +01:00
qemu-config.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-coroutine-io.c yield_until_fd_readable: make it work with any AioContect 2019-10-25 14:38:29 +02:00
qemu-coroutine-lock.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-coroutine-sleep.c qemu-coroutine-sleep: introduce qemu_co_sleep_wake 2019-10-22 09:22:07 -05:00
qemu-coroutine.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-error.c monitor error: Make printf()-like functions return a value 2019-04-18 22:18:59 +02:00
qemu-openpty.c
qemu-option.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-print.c qemu-print: New qemu_fprintf(), qemu_vfprintf() 2019-04-18 22:18:59 +02:00
qemu-progress.c
qemu-sockets.c util/qemu-sockets: fix keep_alive handling in inet_connect_saddr 2019-09-25 08:15:44 -05:00
qemu-thread-common.h Clean up includes 2018-12-20 10:29:08 +01:00
qemu-thread-posix.c qemu-thread: Add qemu_cond_timedwait 2019-09-16 17:13:06 +02:00
qemu-thread-win32.c qemu-thread: Add qemu_cond_timedwait 2019-09-16 17:13:06 +02:00
qemu-timer-common.c
qemu-timer.c qemu-timer: reuse MIN macro in qemu_timeout_ns_to_ms 2019-10-24 20:10:18 +02:00
qht.c qht: constify arguments to some internal functions 2018-09-26 08:55:54 -07:00
qsp.c qemu-thread: Add qemu_cond_timedwait 2019-09-16 17:13:06 +02:00
range.c Don't talk about the LGPL if the file is licensed under the GPL 2019-01-30 10:51:20 +01:00
rcu.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
readline.c qemu-common: Move qemu_isalnum() etc. to qemu/ctype.h 2019-06-11 20:22:09 +02:00
stats64.c
sys_membarrier.c
systemd.c
thread-pool.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
throttle.c
timed-average.c
trace-events socket: Add backlog parameter to socket_listen 2019-09-03 23:24:42 +02:00
unicode.c json: Reject invalid UTF-8 sequences 2018-08-24 20:26:37 +02:00
uri.c cutils: Provide strchrnul 2018-06-29 12:32:10 +02:00
uuid.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
vfio-helpers.c Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00