Diff for /qemu/block.h between versions 1.1.1.5 and 1.1.1.6

version 1.1.1.5, 2018/04/24 17:21:00 version 1.1.1.6, 2018/04/24 17:34:49
Line 4 Line 4
 #include "qemu-aio.h"  #include "qemu-aio.h"
 #include "qemu-common.h"  #include "qemu-common.h"
 #include "qemu-option.h"  #include "qemu-option.h"
   #include "qobject.h"
   
 /* block.c */  /* block.c */
 typedef struct BlockDriver BlockDriver;  typedef struct BlockDriver BlockDriver;
Line 37  typedef struct QEMUSnapshotInfo { Line 38  typedef struct QEMUSnapshotInfo {
                                      bdrv_file_open()) */                                       bdrv_file_open()) */
 #define BDRV_O_NOCACHE     0x0020 /* do not use the host page cache */  #define BDRV_O_NOCACHE     0x0020 /* do not use the host page cache */
 #define BDRV_O_CACHE_WB    0x0040 /* use write-back caching */  #define BDRV_O_CACHE_WB    0x0040 /* use write-back caching */
   #define BDRV_O_NATIVE_AIO  0x0080 /* use native AIO instead of the thread pool */
   
 #define BDRV_O_CACHE_MASK  (BDRV_O_NOCACHE | BDRV_O_CACHE_WB)  #define BDRV_O_CACHE_MASK  (BDRV_O_NOCACHE | BDRV_O_CACHE_WB)
   
 void bdrv_info(Monitor *mon);  #define BDRV_SECTOR_BITS   9
 void bdrv_info_stats(Monitor *mon);  #define BDRV_SECTOR_SIZE   (1 << BDRV_SECTOR_BITS)
   #define BDRV_SECTOR_MASK   ~(BDRV_SECTOR_SIZE - 1);
   
   void bdrv_info_print(Monitor *mon, const QObject *data);
   void bdrv_info(Monitor *mon, QObject **ret_data);
   void bdrv_stats_print(Monitor *mon, const QObject *data);
   void bdrv_info_stats(Monitor *mon, QObject **ret_data);
   
 void bdrv_init(void);  void bdrv_init(void);
   void bdrv_init_with_whitelist(void);
 BlockDriver *bdrv_find_format(const char *format_name);  BlockDriver *bdrv_find_format(const char *format_name);
   BlockDriver *bdrv_find_whitelisted_format(const char *format_name);
 int bdrv_create(BlockDriver *drv, const char* filename,  int bdrv_create(BlockDriver *drv, const char* filename,
     QEMUOptionParameter *options);      QEMUOptionParameter *options);
 int bdrv_create2(BlockDriver *drv,  int bdrv_create2(BlockDriver *drv,
Line 77  void bdrv_register(BlockDriver *bdrv); Line 87  void bdrv_register(BlockDriver *bdrv);
 /* async block I/O */  /* async block I/O */
 typedef struct BlockDriverAIOCB BlockDriverAIOCB;  typedef struct BlockDriverAIOCB BlockDriverAIOCB;
 typedef void BlockDriverCompletionFunc(void *opaque, int ret);  typedef void BlockDriverCompletionFunc(void *opaque, int ret);
   typedef void BlockDriverDirtyHandler(BlockDriverState *bs, int64_t sector,
                                        int sector_num);
 BlockDriverAIOCB *bdrv_aio_readv(BlockDriverState *bs, int64_t sector_num,  BlockDriverAIOCB *bdrv_aio_readv(BlockDriverState *bs, int64_t sector_num,
                                  QEMUIOVector *iov, int nb_sectors,                                   QEMUIOVector *iov, int nb_sectors,
                                  BlockDriverCompletionFunc *cb, void *opaque);                                   BlockDriverCompletionFunc *cb, void *opaque);
 BlockDriverAIOCB *bdrv_aio_writev(BlockDriverState *bs, int64_t sector_num,  BlockDriverAIOCB *bdrv_aio_writev(BlockDriverState *bs, int64_t sector_num,
                                   QEMUIOVector *iov, int nb_sectors,                                    QEMUIOVector *iov, int nb_sectors,
                                   BlockDriverCompletionFunc *cb, void *opaque);                                    BlockDriverCompletionFunc *cb, void *opaque);
   BlockDriverAIOCB *bdrv_aio_flush(BlockDriverState *bs,
                                    BlockDriverCompletionFunc *cb, void *opaque);
 void bdrv_aio_cancel(BlockDriverAIOCB *acb);  void bdrv_aio_cancel(BlockDriverAIOCB *acb);
   
   typedef struct BlockRequest {
       /* Fields to be filled by multiwrite caller */
       int64_t sector;
       int nb_sectors;
       QEMUIOVector *qiov;
       BlockDriverCompletionFunc *cb;
       void *opaque;
   
       /* Filled by multiwrite implementation */
       int error;
   } BlockRequest;
   
   int bdrv_aio_multiwrite(BlockDriverState *bs, BlockRequest *reqs,
       int num_reqs);
   
 /* sg packet commands */  /* sg packet commands */
 int bdrv_ioctl(BlockDriverState *bs, unsigned long int req, void *buf);  int bdrv_ioctl(BlockDriverState *bs, unsigned long int req, void *buf);
 BlockDriverAIOCB *bdrv_aio_ioctl(BlockDriverState *bs,  BlockDriverAIOCB *bdrv_aio_ioctl(BlockDriverState *bs,
Line 118  int bdrv_get_type_hint(BlockDriverState  Line 146  int bdrv_get_type_hint(BlockDriverState 
 int bdrv_get_translation_hint(BlockDriverState *bs);  int bdrv_get_translation_hint(BlockDriverState *bs);
 int bdrv_is_removable(BlockDriverState *bs);  int bdrv_is_removable(BlockDriverState *bs);
 int bdrv_is_read_only(BlockDriverState *bs);  int bdrv_is_read_only(BlockDriverState *bs);
   int bdrv_set_read_only(BlockDriverState *bs, int read_only);
 int bdrv_is_sg(BlockDriverState *bs);  int bdrv_is_sg(BlockDriverState *bs);
   int bdrv_enable_write_cache(BlockDriverState *bs);
 int bdrv_is_inserted(BlockDriverState *bs);  int bdrv_is_inserted(BlockDriverState *bs);
 int bdrv_media_changed(BlockDriverState *bs);  int bdrv_media_changed(BlockDriverState *bs);
 int bdrv_is_locked(BlockDriverState *bs);  int bdrv_is_locked(BlockDriverState *bs);
Line 165  int bdrv_save_vmstate(BlockDriverState * Line 195  int bdrv_save_vmstate(BlockDriverState *
 int bdrv_load_vmstate(BlockDriverState *bs, uint8_t *buf,  int bdrv_load_vmstate(BlockDriverState *bs, uint8_t *buf,
                       int64_t pos, int size);                        int64_t pos, int size);
   
   #define BDRV_SECTORS_PER_DIRTY_CHUNK 2048
   
   void bdrv_set_dirty_tracking(BlockDriverState *bs, int enable);
   int bdrv_get_dirty(BlockDriverState *bs, int64_t sector);
   void bdrv_reset_dirty(BlockDriverState *bs, int64_t cur_sector,
                         int nr_sectors);
 #endif  #endif

Removed from v.1.1.1.5  
changed lines
  Added in v.1.1.1.6


unix.superglobalmegacorp.com