|  | /* | 
|  | * Fsdev Throttle | 
|  | * | 
|  | * Copyright (C) 2016 Huawei Technologies Duesseldorf GmbH | 
|  | * | 
|  | * Author: Pradeep Jagadeesh <pradeep.jagadeesh@huawei.com> | 
|  | * | 
|  | * This work is licensed under the terms of the GNU GPL, version 2 or | 
|  | * (at your option) any later version. | 
|  | * | 
|  | * See the COPYING file in the top-level directory for details. | 
|  | * | 
|  | */ | 
|  |  | 
|  | #ifndef QEMU_FSDEV_THROTTLE_H | 
|  | #define QEMU_FSDEV_THROTTLE_H | 
|  |  | 
|  | #include "block/aio.h" | 
|  | #include "qemu/coroutine.h" | 
|  | #include "qemu/throttle.h" | 
|  |  | 
|  | typedef struct FsThrottle { | 
|  | ThrottleState ts; | 
|  | ThrottleTimers tt; | 
|  | ThrottleConfig cfg; | 
|  | CoQueue      throttled_reqs[THROTTLE_MAX]; | 
|  | } FsThrottle; | 
|  |  | 
|  | int fsdev_throttle_parse_opts(QemuOpts *, FsThrottle *, Error **); | 
|  |  | 
|  | void fsdev_throttle_init(FsThrottle *); | 
|  |  | 
|  | void coroutine_fn fsdev_co_throttle_request(FsThrottle *, ThrottleDirection , | 
|  | struct iovec *, int); | 
|  |  | 
|  | void fsdev_throttle_cleanup(FsThrottle *); | 
|  |  | 
|  | #endif /* QEMU_FSDEV_THROTTLE_H */ |