本文整理汇总了C++中qemu_free函数的典型用法代码示例。如果您正苦于以下问题:C++ qemu_free函数的具体用法?C++ qemu_free怎么用?C++ qemu_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了qemu_free函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: eth_cleanup
static void eth_cleanup(VLANClientState *nc)
{
struct fs_eth *eth = DO_UPCAST(NICState, nc, nc)->opaque;
cpu_unregister_io_memory(eth->ethregs);
/* Disconnect the client. */
eth->dma_out->client.push = NULL;
eth->dma_out->client.opaque = NULL;
eth->dma_in->client.opaque = NULL;
eth->dma_in->client.pull = NULL;
qemu_free(eth);
}
开发者ID:dsqmoore,项目名称:qemu-1,代码行数:13,代码来源:etraxfs_eth.c
示例2: skin_reload_configuration
SkinScreen* skin_reload_configuration(SkinScreen *skin, const char *file)
{
SkinConfig *old_config;
old_config = skin->config;
skin->config = (SkinConfig*) qemu_mallocz(sizeof(SkinConfig));
if (skin_load_file(skin, file)) {
qemu_free(skin->config);
skin->config = old_config;
return NULL;
}
skin_layout_free(old_config->landscape);
skin_layout_free(old_config->portrait);
qemu_free(old_config);
qemu_free(skin->path);
skin->path = (char *)qemu_malloc(strlen(file) + 1);
strcpy(skin->path, file);
return skin;
}
开发者ID:hongjiujing,项目名称:Opensource,代码行数:22,代码来源:skin_config.c
示例3: migrate_fd_release
void migrate_fd_release(MigrationState *mig_state)
{
FdMigrationState *s = migrate_to_fms(mig_state);
DPRINTF("releasing state\n");
if (s->state == MIG_STATE_ACTIVE) {
s->state = MIG_STATE_CANCELLED;
notifier_list_notify(&migration_state_notifiers);
migrate_fd_cleanup(s);
}
qemu_free(s);
}
开发者ID:kemari-kvm,项目名称:qemu,代码行数:13,代码来源:migration.c
示例4: msix_init
/* Initialize the MSI-X structures. Note: if MSI-X is supported, BAR size is
* modified, it should be retrieved with msix_bar_size. */
int msix_init(struct PCIDevice *dev, unsigned short nentries,
MemoryRegion *bar,
unsigned bar_nr, unsigned bar_size)
{
int ret;
/* Nothing to do if MSI is not supported by interrupt controller */
if (!msix_supported)
return -ENOTSUP;
if (nentries > MSIX_MAX_ENTRIES)
return -EINVAL;
dev->msix_entry_used = qemu_mallocz(MSIX_MAX_ENTRIES *
sizeof *dev->msix_entry_used);
dev->msix_table_page = qemu_mallocz(MSIX_PAGE_SIZE);
msix_mask_all(dev, nentries);
memory_region_init_io(&dev->msix_mmio, &msix_mmio_ops, dev,
"msix", MSIX_PAGE_SIZE);
dev->msix_entries_nr = nentries;
ret = msix_add_config(dev, nentries, bar_nr, bar_size);
if (ret)
goto err_config;
dev->cap_present |= QEMU_PCI_CAP_MSIX;
msix_mmio_setup(dev, bar);
return 0;
err_config:
dev->msix_entries_nr = 0;
memory_region_destroy(&dev->msix_mmio);
qemu_free(dev->msix_table_page);
dev->msix_table_page = NULL;
qemu_free(dev->msix_entry_used);
dev->msix_entry_used = NULL;
return ret;
}
开发者ID:dsqmoore,项目名称:qemu-1,代码行数:41,代码来源:msix.c
示例5: virtio_blk_alloc_request
static VirtIOBlockReq *virtio_blk_get_request(VirtIOBlock *s)
{
VirtIOBlockReq *req = virtio_blk_alloc_request(s);
if (req != NULL) {
if (!virtqueue_pop(s->vq, &req->elem)) {
qemu_free(req);
return NULL;
}
}
return req;
}
开发者ID:agocke,项目名称:qemu,代码行数:13,代码来源:virtio-blk.c
示例6: buffered_close
static int buffered_close(void *opaque)
{
QEMUFileBuffered *s = opaque;
int ret;
DPRINTF("closing\n");
while (!s->has_error && s->buffer_size) {
buffered_flush(s);
if (s->freeze_output)
s->wait_for_unfreeze(s);
}
ret = s->close(s->opaque);
qemu_del_timer(s->timer);
qemu_free_timer(s->timer);
qemu_free(s->buffer);
qemu_free(s);
return ret;
}
开发者ID:16aug,项目名称:nvmeqemu,代码行数:22,代码来源:buffered_file.c
示例7: v9fs_list_xattr
/*
* Get the list and pass to each layer to find out whether
* to send the data or not
*/
ssize_t v9fs_list_xattr(FsContext *ctx, const char *path,
void *value, size_t vsize)
{
ssize_t size = 0;
void *ovalue = value;
XattrOperations *xops;
char *orig_value, *orig_value_start;
ssize_t xattr_len, parsed_len = 0, attr_len;
/* Get the actual len */
xattr_len = llistxattr(rpath(ctx, path), value, 0);
if (xattr_len <= 0) {
return xattr_len;
}
/* Now fetch the xattr and find the actual size */
orig_value = qemu_malloc(xattr_len);
xattr_len = llistxattr(rpath(ctx, path), orig_value, xattr_len);
/* store the orig pointer */
orig_value_start = orig_value;
while (xattr_len > parsed_len) {
xops = get_xattr_operations(ctx->xops, orig_value);
if (!xops) {
goto next_entry;
}
if (!value) {
size += xops->listxattr(ctx, path, orig_value, value, vsize);
} else {
size = xops->listxattr(ctx, path, orig_value, value, vsize);
if (size < 0) {
goto err_out;
}
value += size;
vsize -= size;
}
next_entry:
/* Got the next entry */
attr_len = strlen(orig_value) + 1;
parsed_len += attr_len;
orig_value += attr_len;
}
if (value) {
size = value - ovalue;
}
err_out:
qemu_free(orig_value_start);
return size;
}
开发者ID:MegabytePhreak,项目名称:qemu-mcf5307,代码行数:55,代码来源:virtio-9p-xattr.c
示例8: qemu_mallocz
MigrationState *exec_start_outgoing_migration(const char *command,
int64_t bandwidth_limit,
int detach)
{
FdMigrationState *s;
FILE *f;
s = qemu_mallocz(sizeof(*s));
f = popen(command, "w");
if (f == NULL) {
dprintf("Unable to popen exec target\n");
goto err_after_alloc;
}
s->fd = fileno(f);
if (s->fd == -1) {
dprintf("Unable to retrieve file descriptor for popen'd handle\n");
goto err_after_open;
}
if (fcntl(s->fd, F_SETFD, O_NONBLOCK) == -1) {
dprintf("Unable to set nonblocking mode on file descriptor\n");
goto err_after_open;
}
s->opaque = qemu_popen(f, "w");
s->close = exec_close;
s->get_error = file_errno;
s->write = file_write;
s->mig_state.cancel = migrate_fd_cancel;
s->mig_state.get_status = migrate_fd_get_status;
s->mig_state.release = migrate_fd_release;
s->state = MIG_STATE_ACTIVE;
s->mon_resume = NULL;
s->bandwidth_limit = bandwidth_limit;
if (!detach)
migrate_fd_monitor_suspend(s);
migrate_fd_connect(s);
return &s->mig_state;
err_after_open:
pclose(f);
err_after_alloc:
qemu_free(s);
return NULL;
}
开发者ID:325116067,项目名称:semc-qsd8x50,代码行数:51,代码来源:migration-exec.c
示例9: vreader_emul_delete
static void
vreader_emul_delete(VReaderEmul *vreader_emul)
{
if (vreader_emul == NULL) {
return;
}
if (vreader_emul->slot) {
PK11_FreeSlot(vreader_emul->slot);
}
if (vreader_emul->type_params) {
g_free(vreader_emul->type_params);
}
qemu_free(vreader_emul);
}
开发者ID:mithleshvrts,项目名称:qemu-kvm-rhel6,代码行数:14,代码来源:vcard_emul_nss.c
示例10: virtio_blk_flush_complete
static void virtio_blk_flush_complete(void *opaque, int ret)
{
VirtIOBlockReq *req = opaque;
if (ret) {
if (virtio_blk_handle_rw_error(req, -ret, 0)) {
return;
}
}
virtio_blk_req_complete(req, VIRTIO_BLK_S_OK);
bdrv_acct_done(req->dev->bs, &req->acct);
qemu_free(req);
}
开发者ID:mithleshvrts,项目名称:qemu-kvm-rhel6,代码行数:14,代码来源:virtio-blk.c
示例11: qemu_malloc
void *qemu_realloc(void *ptr, size_t size)
{
size_t old_size, copy;
void *new_ptr;
if (!ptr)
return qemu_malloc(size);
old_size = *(size_t *)((char *)ptr - 16);
copy = old_size < size ? old_size : size;
new_ptr = qemu_malloc(size);
memcpy(new_ptr, ptr, copy);
qemu_free(ptr);
return new_ptr;
}
开发者ID:mithleshvrts,项目名称:qemu-kvm-rhel6,代码行数:14,代码来源:mmap.c
示例12: qemu_rbd_close
static void qemu_rbd_close(BlockDriverState *bs)
{
BDRVRBDState *s = bs->opaque;
close(s->fds[0]);
close(s->fds[1]);
qemu_aio_set_fd_handler(s->fds[RBD_FD_READ], NULL , NULL, NULL, NULL,
NULL);
rbd_close(s->image);
rados_ioctx_destroy(s->io_ctx);
qemu_free(s->snap);
rados_shutdown(s->cluster);
}
开发者ID:16aug,项目名称:nvmeqemu,代码行数:14,代码来源:rbd.c
示例13: usb_host_handle_destroy
static void usb_host_handle_destroy(USBDevice *dev)
{
USBHostDevice *s = (USBHostDevice *)dev;
int i;
if (!s)
return;
for (i = 0; i < s->num_interfaces; i++)
usb_release_interface(s->udev, i);
usb_close(s->udev);
s->udev = NULL;
qemu_free(s);
}
开发者ID:AmesianX,项目名称:winkvm,代码行数:14,代码来源:usb-libusb.c
示例14: qemu_malloc
static void *load_at(int fd, int offset, int size)
{
void *ptr;
if (lseek(fd, offset, SEEK_SET) < 0)
return NULL;
ptr = qemu_malloc(size);
if (!ptr)
return NULL;
if (read(fd, ptr, size) != size) {
qemu_free(ptr);
return NULL;
}
return ptr;
}
开发者ID:anhkgg,项目名称:temu,代码行数:14,代码来源:loader.c
示例15: qcow2_snapshot_delete
int qcow2_snapshot_delete(BlockDriverState *bs, const char *snapshot_id)
{
BDRVQcowState *s = bs->opaque;
QCowSnapshot *sn;
int snapshot_index, ret;
if (bs->read_only)
return -EACCES;
snapshot_index = find_snapshot_by_id_or_name(bs, snapshot_id);
if (snapshot_index < 0)
return -ENOENT;
sn = &s->snapshots[snapshot_index];
ret = qcow2_update_snapshot_refcount(bs, sn->l1_table_offset, sn->l1_size, -1);
if (ret < 0)
return ret;
/* must update the copied flag on the current cluster offsets */
ret = qcow2_update_snapshot_refcount(bs, s->l1_table_offset, s->l1_size, 0);
if (ret < 0)
return ret;
qcow2_free_clusters(bs, sn->l1_table_offset, sn->l1_size * sizeof(uint64_t));
qemu_free(sn->id_str);
qemu_free(sn->name);
memmove(sn, sn + 1, (s->nb_snapshots - snapshot_index - 1) * sizeof(*sn));
s->nb_snapshots--;
ret = qcow_write_snapshots(bs);
if (ret < 0) {
/* XXX: restore snapshot if error ? */
return ret;
}
#ifdef DEBUG_ALLOC
qcow2_check_refcounts(bs);
#endif
return 0;
}
开发者ID:deepakar,项目名称:CS111-S13,代码行数:37,代码来源:qcow2-snapshot.c
示例16: parallels_open
static int parallels_open(BlockDriverState *bs, const char *filename, int flags)
{
BDRVParallelsState *s = (BDRVParallelsState *)bs->opaque;
int fd, i;
struct parallels_header ph;
fd = open(filename, O_RDWR | O_BINARY | O_LARGEFILE);
if (fd < 0) {
fd = open(filename, O_RDONLY | O_BINARY | O_LARGEFILE);
if (fd < 0)
return -1;
}
bs->read_only = 1; // no write support yet
s->fd = fd;
if (read(fd, &ph, sizeof(ph)) != sizeof(ph))
goto fail;
if (memcmp(ph.magic, HEADER_MAGIC, 16) ||
(le32_to_cpu(ph.version) != HEADER_VERSION)) {
goto fail;
}
bs->total_sectors = le32_to_cpu(ph.nb_sectors);
if (lseek(s->fd, 64, SEEK_SET) != 64)
goto fail;
s->tracks = le32_to_cpu(ph.tracks);
s->catalog_size = le32_to_cpu(ph.catalog_entries);
s->catalog_bitmap = (uint32_t *)qemu_malloc(s->catalog_size * 4);
if (!s->catalog_bitmap)
goto fail;
if (read(s->fd, s->catalog_bitmap, s->catalog_size * 4) !=
s->catalog_size * 4)
goto fail;
for (i = 0; i < s->catalog_size; i++)
le32_to_cpus(&s->catalog_bitmap[i]);
return 0;
fail:
if (s->catalog_bitmap)
qemu_free(s->catalog_bitmap);
close(fd);
return -1;
}
开发者ID:doniexun,项目名称:MemCheck,代码行数:49,代码来源:block-parallels.c
示例17: qemu_mallocz
MigrationState *fd_start_outgoing_migration(Monitor *mon,
const char *fdname,
int64_t bandwidth_limit,
int detach,
int blk,
int inc)
{
FdMigrationState *s;
s = qemu_mallocz(sizeof(*s));
s->fd = monitor_get_fd(mon, fdname);
if (s->fd == -1) {
DPRINTF("fd_migration: invalid file descriptor identifier\n");
goto err_after_alloc;
}
if (fcntl(s->fd, F_SETFL, O_NONBLOCK) == -1) {
DPRINTF("Unable to set nonblocking mode on file descriptor\n");
goto err_after_open;
}
s->get_error = fd_errno;
s->write = fd_write;
s->close = fd_close;
s->mig_state.cancel = migrate_fd_cancel;
s->mig_state.get_status = migrate_fd_get_status;
s->mig_state.release = migrate_fd_release;
s->mig_state.blk = blk;
s->mig_state.shared = inc;
s->state = MIG_STATE_ACTIVE;
s->mon = NULL;
s->bandwidth_limit = bandwidth_limit;
if (!detach) {
migrate_fd_monitor_suspend(s, mon);
}
migrate_fd_connect(s);
return &s->mig_state;
err_after_open:
close(s->fd);
err_after_alloc:
qemu_free(s);
return NULL;
}
开发者ID:16aug,项目名称:nvmeqemu,代码行数:49,代码来源:migration-fd.c
示例18: qloopio_free
static void
qloopio_free(void* impl)
{
QLoopIo* io = impl;
if (io->ready)
qloopio_removePending(io);
/* remove from global list */
qlooper_delIo(io->looper, io);
/* make QEMU forget about this fd */
qemu_set_fd_handler(io->fd, NULL, NULL, NULL);
io->fd = -1;
qemu_free(io);
}
开发者ID:ACSOP,项目名称:android_external_qemu,代码行数:15,代码来源:looper-qemu.c
示例19: vhost_dev_stop
void vhost_dev_stop(struct vhost_dev *hdev, VirtIODevice *vdev)
{
int i;
for (i = 0; i < hdev->nvqs; ++i) {
vhost_virtqueue_cleanup(hdev,
vdev,
hdev->vqs + i,
i);
}
vhost_client_sync_dirty_bitmap(&hdev->client, 0,
(target_phys_addr_t)~0x0ull);
hdev->started = false;
qemu_free(hdev->log);
hdev->log_size = 0;
}
开发者ID:iggy,项目名称:qemu,代码行数:15,代码来源:vhost.c
示例20: qloopio_free
static void
qloopio_free(void* impl)
{
QLoopIo* io = impl;
if (io->ready)
qloopio_removePending(io);
qlooper_delIo(io->looper, io);
qemu_set_fd_handler(io->fd, NULL, NULL, NULL);
io->fd = -1;
qemu_free(io);
}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:15,代码来源:looper-qemu.c
注:本文中的qemu_free函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论