qemu/block/coroutines.h
<<
>>
Prefs
   1/*
   2 * Block layer I/O functions
   3 *
   4 * Copyright (c) 2003 Fabrice Bellard
   5 *
   6 * Permission is hereby granted, free of charge, to any person obtaining a copy
   7 * of this software and associated documentation files (the "Software"), to deal
   8 * in the Software without restriction, including without limitation the rights
   9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  10 * copies of the Software, and to permit persons to whom the Software is
  11 * furnished to do so, subject to the following conditions:
  12 *
  13 * The above copyright notice and this permission notice shall be included in
  14 * all copies or substantial portions of the Software.
  15 *
  16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  22 * THE SOFTWARE.
  23 */
  24
  25#ifndef BLOCK_COROUTINES_INT_H
  26#define BLOCK_COROUTINES_INT_H
  27
  28#include "block/block_int.h"
  29
  30int coroutine_fn bdrv_co_check(BlockDriverState *bs,
  31                               BdrvCheckResult *res, BdrvCheckMode fix);
  32int coroutine_fn bdrv_co_invalidate_cache(BlockDriverState *bs, Error **errp);
  33
  34int generated_co_wrapper
  35bdrv_preadv(BdrvChild *child, int64_t offset, unsigned int bytes,
  36            QEMUIOVector *qiov, BdrvRequestFlags flags);
  37int generated_co_wrapper
  38bdrv_pwritev(BdrvChild *child, int64_t offset, unsigned int bytes,
  39             QEMUIOVector *qiov, BdrvRequestFlags flags);
  40
  41int coroutine_fn
  42bdrv_co_common_block_status_above(BlockDriverState *bs,
  43                                  BlockDriverState *base,
  44                                  bool include_base,
  45                                  bool want_zero,
  46                                  int64_t offset,
  47                                  int64_t bytes,
  48                                  int64_t *pnum,
  49                                  int64_t *map,
  50                                  BlockDriverState **file,
  51                                  int *depth);
  52int generated_co_wrapper
  53bdrv_common_block_status_above(BlockDriverState *bs,
  54                               BlockDriverState *base,
  55                               bool include_base,
  56                               bool want_zero,
  57                               int64_t offset,
  58                               int64_t bytes,
  59                               int64_t *pnum,
  60                               int64_t *map,
  61                               BlockDriverState **file,
  62                               int *depth);
  63
  64int coroutine_fn bdrv_co_readv_vmstate(BlockDriverState *bs,
  65                                       QEMUIOVector *qiov, int64_t pos);
  66int coroutine_fn bdrv_co_writev_vmstate(BlockDriverState *bs,
  67                                        QEMUIOVector *qiov, int64_t pos);
  68
  69int generated_co_wrapper
  70nbd_do_establish_connection(BlockDriverState *bs, Error **errp);
  71int coroutine_fn
  72nbd_co_do_establish_connection(BlockDriverState *bs, Error **errp);
  73
  74
  75#endif /* BLOCK_COROUTINES_INT_H */
  76