Annotation of qemu/block/raw.c, revision 1.1

1.1     ! root        1: 
        !             2: #include "qemu-common.h"
        !             3: #include "block_int.h"
        !             4: #include "module.h"
        !             5: 
        !             6: static int raw_open(BlockDriverState *bs, int flags)
        !             7: {
        !             8:     bs->sg = bs->file->sg;
        !             9:     return 0;
        !            10: }
        !            11: 
        !            12: static int raw_read(BlockDriverState *bs, int64_t sector_num,
        !            13:                     uint8_t *buf, int nb_sectors)
        !            14: {
        !            15:     return bdrv_read(bs->file, sector_num, buf, nb_sectors);
        !            16: }
        !            17: 
        !            18: static int raw_write(BlockDriverState *bs, int64_t sector_num,
        !            19:                      const uint8_t *buf, int nb_sectors)
        !            20: {
        !            21:     return bdrv_write(bs->file, sector_num, buf, nb_sectors);
        !            22: }
        !            23: 
        !            24: static BlockDriverAIOCB *raw_aio_readv(BlockDriverState *bs,
        !            25:     int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
        !            26:     BlockDriverCompletionFunc *cb, void *opaque)
        !            27: {
        !            28:     return bdrv_aio_readv(bs->file, sector_num, qiov, nb_sectors, cb, opaque);
        !            29: }
        !            30: 
        !            31: static BlockDriverAIOCB *raw_aio_writev(BlockDriverState *bs,
        !            32:     int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
        !            33:     BlockDriverCompletionFunc *cb, void *opaque)
        !            34: {
        !            35:     return bdrv_aio_writev(bs->file, sector_num, qiov, nb_sectors, cb, opaque);
        !            36: }
        !            37: 
        !            38: static void raw_close(BlockDriverState *bs)
        !            39: {
        !            40: }
        !            41: 
        !            42: static void raw_flush(BlockDriverState *bs)
        !            43: {
        !            44:     bdrv_flush(bs->file);
        !            45: }
        !            46: 
        !            47: static BlockDriverAIOCB *raw_aio_flush(BlockDriverState *bs,
        !            48:     BlockDriverCompletionFunc *cb, void *opaque)
        !            49: {
        !            50:     return bdrv_aio_flush(bs->file, cb, opaque);
        !            51: }
        !            52: 
        !            53: static int64_t raw_getlength(BlockDriverState *bs)
        !            54: {
        !            55:     return bdrv_getlength(bs->file);
        !            56: }
        !            57: 
        !            58: static int raw_truncate(BlockDriverState *bs, int64_t offset)
        !            59: {
        !            60:     return bdrv_truncate(bs->file, offset);
        !            61: }
        !            62: 
        !            63: static int raw_probe(const uint8_t *buf, int buf_size, const char *filename)
        !            64: {
        !            65:    return 1; /* everything can be opened as raw image */
        !            66: }
        !            67: 
        !            68: static int raw_is_inserted(BlockDriverState *bs)
        !            69: {
        !            70:     return bdrv_is_inserted(bs->file);
        !            71: }
        !            72: 
        !            73: static int raw_eject(BlockDriverState *bs, int eject_flag)
        !            74: {
        !            75:     return bdrv_eject(bs->file, eject_flag);
        !            76: }
        !            77: 
        !            78: static int raw_set_locked(BlockDriverState *bs, int locked)
        !            79: {
        !            80:     bdrv_set_locked(bs->file, locked);
        !            81:     return 0;
        !            82: }
        !            83: 
        !            84: static int raw_ioctl(BlockDriverState *bs, unsigned long int req, void *buf)
        !            85: {
        !            86:    return bdrv_ioctl(bs->file, req, buf);
        !            87: }
        !            88: 
        !            89: static BlockDriverAIOCB *raw_aio_ioctl(BlockDriverState *bs,
        !            90:         unsigned long int req, void *buf,
        !            91:         BlockDriverCompletionFunc *cb, void *opaque)
        !            92: {
        !            93:    return bdrv_aio_ioctl(bs->file, req, buf, cb, opaque);
        !            94: }
        !            95: 
        !            96: static int raw_create(const char *filename, QEMUOptionParameter *options)
        !            97: {
        !            98:     return bdrv_create_file(filename, options);
        !            99: }
        !           100: 
        !           101: static QEMUOptionParameter raw_create_options[] = {
        !           102:     {
        !           103:         .name = BLOCK_OPT_SIZE,
        !           104:         .type = OPT_SIZE,
        !           105:         .help = "Virtual disk size"
        !           106:     },
        !           107:     { NULL }
        !           108: };
        !           109: 
        !           110: static int raw_has_zero_init(BlockDriverState *bs)
        !           111: {
        !           112:     return bdrv_has_zero_init(bs->file);
        !           113: }
        !           114: 
        !           115: static BlockDriver bdrv_raw = {
        !           116:     .format_name        = "raw",
        !           117: 
        !           118:     /* It's really 0, but we need to make qemu_malloc() happy */
        !           119:     .instance_size      = 1,
        !           120: 
        !           121:     .bdrv_open          = raw_open,
        !           122:     .bdrv_close         = raw_close,
        !           123:     .bdrv_read          = raw_read,
        !           124:     .bdrv_write         = raw_write,
        !           125:     .bdrv_flush         = raw_flush,
        !           126:     .bdrv_probe         = raw_probe,
        !           127:     .bdrv_getlength     = raw_getlength,
        !           128:     .bdrv_truncate      = raw_truncate,
        !           129: 
        !           130:     .bdrv_aio_readv     = raw_aio_readv,
        !           131:     .bdrv_aio_writev    = raw_aio_writev,
        !           132:     .bdrv_aio_flush     = raw_aio_flush,
        !           133: 
        !           134:     .bdrv_is_inserted   = raw_is_inserted,
        !           135:     .bdrv_eject         = raw_eject,
        !           136:     .bdrv_set_locked    = raw_set_locked,
        !           137:     .bdrv_ioctl         = raw_ioctl,
        !           138:     .bdrv_aio_ioctl     = raw_aio_ioctl,
        !           139: 
        !           140:     .bdrv_create        = raw_create,
        !           141:     .create_options     = raw_create_options,
        !           142:     .bdrv_has_zero_init = raw_has_zero_init,
        !           143: };
        !           144: 
        !           145: static void bdrv_raw_init(void)
        !           146: {
        !           147:     bdrv_register(&bdrv_raw);
        !           148: }
        !           149: 
        !           150: block_init(bdrv_raw_init);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.