1 | /* |
2 | * Fsdev Throttle |
3 | * |
4 | * Copyright (C) 2016 Huawei Technologies Duesseldorf GmbH |
5 | * |
6 | * Author: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com> |
7 | * |
8 | * This work is licensed under the terms of the GNU GPL, version 2 or |
9 | * (at your option) any later version. |
10 | * |
11 | * See the COPYING file in the top-level directory for details. |
12 | * |
13 | */ |
14 | |
15 | #ifndef QEMU_FSDEV_THROTTLE_H |
16 | #define QEMU_FSDEV_THROTTLE_H |
17 | |
18 | #include "block/aio.h" |
19 | #include "qemu/coroutine.h" |
20 | #include "qemu/throttle.h" |
21 | |
22 | typedef struct FsThrottle { |
23 | ThrottleState ts; |
24 | ThrottleTimers tt; |
25 | ThrottleConfig cfg; |
26 | CoQueue throttled_reqs[2]; |
27 | } FsThrottle; |
28 | |
29 | void fsdev_throttle_parse_opts(QemuOpts *, FsThrottle *, Error **); |
30 | |
31 | void fsdev_throttle_init(FsThrottle *); |
32 | |
33 | void coroutine_fn fsdev_co_throttle_request(FsThrottle *, bool , |
34 | struct iovec *, int); |
35 | |
36 | void fsdev_throttle_cleanup(FsThrottle *); |
37 | |
38 | #endif /* QEMU_FSDEV_THROTTLE_H */ |
39 | |