qemu/block/export/virtio-blk-handler.h
<<
>>
Prefs
   1/*
   2 * Handler for virtio-blk I/O
   3 *
   4 * Copyright (C) 2022 Bytedance Inc. and/or its affiliates. All rights reserved.
   5 *
   6 * Author:
   7 *   Xie Yongji <xieyongji@bytedance.com>
   8 *
   9 * This work is licensed under the terms of the GNU GPL, version 2 or
  10 * later.  See the COPYING file in the top-level directory.
  11 */
  12
  13#ifndef VIRTIO_BLK_HANDLER_H
  14#define VIRTIO_BLK_HANDLER_H
  15
  16#include "sysemu/block-backend.h"
  17
  18#define VIRTIO_BLK_SECTOR_BITS 9
  19#define VIRTIO_BLK_SECTOR_SIZE (1ULL << VIRTIO_BLK_SECTOR_BITS)
  20
  21#define VIRTIO_BLK_MAX_DISCARD_SECTORS 32768
  22#define VIRTIO_BLK_MAX_WRITE_ZEROES_SECTORS 32768
  23
  24typedef struct {
  25    BlockBackend *blk;
  26    char *serial;
  27    uint32_t logical_block_size;
  28    bool writable;
  29} VirtioBlkHandler;
  30
  31int coroutine_fn virtio_blk_process_req(VirtioBlkHandler *handler,
  32                                        struct iovec *in_iov,
  33                                        struct iovec *out_iov,
  34                                        unsigned int in_num,
  35                                        unsigned int out_num);
  36
  37#endif /* VIRTIO_BLK_HANDLER_H */
  38