| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- # Copyright 2017 Cloudbase Solutions Srl
- # All Rights Reserved.
- import ctypes
- _libqemu = ctypes.CDLL('libqemu.so')
- MODULE_INIT_BLOCK = 0
- MODULE_INIT_OPTS = 1
- MODULE_INIT_QOM = 2
- MODULE_INIT_TRACE = 3
- MODULE_INIT_MAX = 4
- BDRV_BLOCK_DATA = 1
- BDRV_BLOCK_ZERO = 2
- BDRV_BLOCK_OFFSET_VALID = 4
- BDRV_BLOCK_RAW = 8
- BDRV_BLOCK_ALLOCATED = 0x10
- BDRV_BLOCK_EOF = 0x20
- BDRV_SECTOR_BITS = 9
- class QObject(ctypes.Structure):
- _fields_ = [("type", ctypes.c_void_p),
- ("refcnt", ctypes.c_size_t)]
- class QString(ctypes.Structure):
- _fields_ = [("base", QObject),
- ("string", ctypes.c_char_p),
- ("length", ctypes.c_size_t),
- ("capacity", ctypes.c_size_t)]
- class Error(ctypes.Structure):
- _fields_ = [("msg", ctypes.c_char_p),
- ("err_class", ctypes.c_int),
- ("src", ctypes.c_char_p),
- ("func", ctypes.c_char_p),
- ("line", ctypes.c_int),
- ("hint", ctypes.c_void_p)]
- _libqemu.qemu_vfree.argtypes = [ctypes.c_void_p]
- _libqemu.qemu_vfree.restype = None
- qemu_vfree = _libqemu.qemu_vfree
- _libqemu.module_call_init.argtypes = [ctypes.c_int]
- _libqemu.module_call_init.restype = None
- module_call_init = _libqemu.module_call_init
- _libqemu.qemu_init_exec_dir.argtypes = [ctypes.c_char_p]
- _libqemu.qemu_init_exec_dir.restype = None
- qemu_init_exec_dir = _libqemu.qemu_init_exec_dir
- _libqemu.qemu_init_main_loop.argtypes = [
- ctypes.POINTER(ctypes.POINTER(Error))]
- _libqemu.qemu_init_main_loop.res_type = ctypes.c_int
- qemu_init_main_loop = _libqemu.qemu_init_main_loop
- _libqemu.qcrypto_init.argtypes = [ctypes.POINTER(ctypes.POINTER(Error))]
- _libqemu.qcrypto_init.res_type = ctypes.c_int
- qcrypto_init = _libqemu.qcrypto_init
- _libqemu.error_set_progname.argtypes = [ctypes.c_char_p]
- _libqemu.error_set_progname.restype = None
- error_set_progname = _libqemu.error_set_progname
- _libqemu.error_reportf_err.argtypes = [ctypes.POINTER(Error), ctypes.c_char_p]
- _libqemu.error_reportf_err.res_type = None
- error_reportf_err = _libqemu.error_reportf_err
- _libqemu.qstring_from_str.argtypes = [ctypes.c_char_p]
- _libqemu.qstring_from_str.restype = ctypes.POINTER(QString)
- qstring_from_str = _libqemu.qstring_from_str
- _libqemu.qdict_new.argtypes = []
- _libqemu.qdict_new.res_type = ctypes.c_void_p
- qdict_new = _libqemu.qdict_new
- _libqemu.qdict_put_obj.argtypes = [
- ctypes.c_void_p, ctypes.c_char_p, ctypes.POINTER(QObject)]
- _libqemu.qdict_put_obj.restype = None
- qdict_put_obj = _libqemu.qdict_put_obj
- _libqemu.bdrv_init.argtypes = []
- _libqemu.bdrv_init.restype = None
- bdrv_init = _libqemu.bdrv_init
- _libqemu.blk_new_open.argtypes = [
- ctypes.c_char_p, ctypes.c_char_p, ctypes.c_void_p, ctypes.c_int,
- ctypes.POINTER(ctypes.POINTER(Error))]
- _libqemu.blk_new_open.restype = ctypes.c_void_p
- blk_new_open = _libqemu.blk_new_open
- _libqemu.blk_blockalign.argtypes = [ctypes.c_void_p, ctypes.c_size_t]
- _libqemu.blk_blockalign.restype = ctypes.c_void_p
- blk_blockalign = _libqemu.blk_blockalign
- _libqemu.blk_bs.argtypes = [ctypes.c_void_p]
- _libqemu.blk_bs.restype = ctypes.c_void_p
- blk_bs = _libqemu.blk_bs
- _libqemu.blk_nb_sectors.argtypes = [ctypes.c_void_p]
- _libqemu.blk_nb_sectors.restype = ctypes.c_int64
- blk_nb_sectors = _libqemu.blk_nb_sectors
- _libqemu.blk_pread.argtypes = [
- ctypes.c_void_p, ctypes.c_int64, ctypes.c_void_p, ctypes.c_int]
- _libqemu.blk_pread.res_type = ctypes.c_int
- blk_pread = _libqemu.blk_pread
- _libqemu.blk_unref.argtypes = [ctypes.c_void_p]
- _libqemu.blk_unref.restype = None
- blk_unref = _libqemu.blk_unref
- _libqemu.bdrv_get_block_status_above.argtypes = [
- ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int64, ctypes.c_int,
- ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_void_p)]
- _libqemu.bdrv_get_block_status_above.restype = ctypes.c_int64
- bdrv_get_block_status_above = _libqemu.bdrv_get_block_status_above
|