-<<<<<<< HEAD
-ifeq ($(CONFIG_MARU),y)
-common-obj-y = virtio-9p-maru.o
-common-obj-y += virtio-9p-local-maru.o
-endif
-
-ifneq ($(CONFIG_MARU),y)
-common-obj-y = virtio-9p.o
-common-obj-y += virtio-9p-local.o
-endif
-
-common-obj-y += virtio-9p-coth.o cofs.o codir.o cofile.o
-ifneq ($(CONFIG_WIN32),y)
-common-obj-y += virtio-9p-xattr-user.o virtio-9p-posix-acl.o
-common-obj-y += virtio-9p-xattr.o coxattr.o
-endif
-common-obj-$(CONFIG_LINUX) += virtio-9p-synth.o
-common-obj-$(CONFIG_LINUX) += virtio-9p-proxy.o
-common-obj-$(CONFIG_OPEN_BY_HANDLE) += virtio-9p-handle.o
-=======
common-obj-y = 9p.o
common-obj-y += 9p-local.o 9p-xattr.o
common-obj-y += 9p-xattr-user.o 9p-posix-acl.o
common-obj-y += coxattr.o 9p-synth.o
common-obj-$(CONFIG_OPEN_BY_HANDLE) += 9p-handle.o
common-obj-y += 9p-proxy.o
->>>>>>> v2.6.0
obj-y += virtio-9p-device.o
error_report("qemu: could not load kernel '%s': %s\n",
kernel_filename, strerror(errno));
- g_free(path);
exit(1);
}
#include "display.h"
#include "vigs_qt5.h"
#include "qom/object_interfaces.h"
+#include "qapi/error.h"
#if defined(CONFIG_LINUX)
#include <X11/Xlib.h>
#ifndef _QEMU_DISPLAY_H
#define _QEMU_DISPLAY_H
+#include "qemu/osdep.h"
#include "qemu-common.h"
#define TYPE_DISPLAYOBJECT "display"
#include "ui/console.h"
#include "qemu/main-loop.h"
#include "qemu/error-report.h"
+#include "qapi/error.h"
#define PCI_VENDOR_ID_VIGS 0x19B2
#define PCI_DEVICE_ID_VIGS 0x1011
*/
#include "vigs_log.h"
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include <glib/gprintf.h>
#ifndef _QEMU_VIGS_TYPES_H
#define _QEMU_VIGS_TYPES_H
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "vigs_protocol.h"
#ifndef _QEMU_WINSYS_H
#define _QEMU_WINSYS_H
+#include "qemu/osdep.h"
#include "qemu-common.h"
typedef uint32_t winsys_id;
#ifndef _QEMU_WORK_QUEUE_H
#define _QEMU_WORK_QUEUE_H
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/queue.h"
#include "qemu/thread.h"
+#include "qapi/error.h"
struct work_queue_item;
#ifndef _QEMU_YAGL_TYPES_H
#define _QEMU_YAGL_TYPES_H
+#include "qemu/osdep.h"
#include "qemu-common.h"
typedef uint32_t yagl_pid;
#ifndef _HAX_H
#define _HAX_H
-#include "config-host.h"
+#include "qemu/osdep.h"
#include "qemu-common.h"
extern bool hax_allowed;
info = g_malloc0(sizeof (struct LinkInfo));
queues = qemu_find_net_clients_except(name, ncs,
- NET_CLIENT_OPTIONS_KIND_MAX,
+ NET_CLIENT_OPTIONS_KIND__MAX,
MAX_QUEUE_NUM);
if (queues == 0) {
*
*/
-#include "qapi/qmp/json-lexer.h"
+#include "qemu/osdep.h"
#include "qemu-common.h"
+#include "qapi/qmp/json-lexer.h"
#include "ecs-json-streamer.h"
#define MAX_TOKEN_SIZE (64ULL << 20)
#include <stdbool.h>
#include <stdlib.h>
+#include "qemu/osdep.h"
#include "hw/qdev.h"
#include "net/net.h"
#include "ui/console.h"
#include "qemu/timer.h"
#include "qemu/main-loop.h"
#include "sysemu/char.h"
-#include "config.h"
#include "qapi/qmp/qint.h"
#include "emulator.h"
int ecs_write(int fd, const uint8_t *buf, int len)
{
+ int ret, remain;
+
LOG_TRACE("write buflen : %d, buf : %s\n", len, (char *)buf);
if (fd < 0) {
return -1;
}
- return send_all(fd, buf, len);
+ remain = len;
+ while (len > 0) {
+ ret = write(fd, buf, remain);
+ if (ret < 0) {
+ if (errno != EINTR && errno != EAGAIN) {
+ return -1;
+ }
+ } else if (ret == 0) {
+ break;
+ } else {
+ buf += ret;
+ remain -= ret;
+ }
+ }
+
+ return len - remain;
}
void ecs_client_close(ECS_Client *clii)
}
timer_mod(current_ecs->alive_timer,
- qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + get_ticks_per_sec() * TIMER_ALIVE_S);
+ qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + NANOSECONDS_PER_SECOND * TIMER_ALIVE_S);
}
cs->alive_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, alive_checker, cs);
timer_mod(cs->alive_timer,
- qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + get_ticks_per_sec() * TIMER_ALIVE_S);
+ qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + NANOSECONDS_PER_SECOND * TIMER_ALIVE_S);
return 0;
}
*
*/
+#include "qemu/osdep.h"
#include "ui/console.h"
#include "ecs.h"
#include <string.h>
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "fsdev/qemu-fsdev.h"
*
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/queue.h"
#include "qemu/sockets.h"
#include "qemu/option.h"
-#include <monitor/monitor.h>
+#include "monitor/monitor.h"
+#include "qapi/error.h"
#include "qmp-commands.h"
#include "qapi/qmp/qjson.h"
#include "qapi/qmp/json-parser.h"
{
QObject *obj = qobject_from_jsonf(
"{ 'error': { 'class': %s, 'desc': %s } }",
- ErrorClass_lookup[error_get_class(err)], error_get_pretty(err));
+ QapiErrorClass_lookup[error_get_class(err)], error_get_pretty(err));
return qobject_to_qdict(obj);
}
#include <stdbool.h>
#include <glib.h>
+#include "qemu/osdep.h"
#include "hw/qdev.h"
#include "net/net.h"
#include "net/slirp.h"
*
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/option.h"
#include "qemu/config-file.h"
#include <string.h>
#include <stdlib.h>
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/error-report.h"
*
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "hw/virtio/maru_virtio_nfc.h"
#ifndef __SDCARD_H__
#define __SDCARD_H__
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "monitor/qdev.h"
#include "fsdev/qemu-fsdev.h"
*
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include <math.h>
extern bool hax_allowed;
#endif
+#include "qemu/osdep.h"
#include "ui/console.h"
#include "sysemu/sysemu.h"
#include "block/block_int.h"
#include <getopt.h>
#include <libgen.h>
+#include "qemu/osdep.h"
#include "qemu/config-file.h"
#include "qemu/sockets.h"
#include "qemu/error-report.h"
#define EALREADY WSAEALREADY
#endif
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/main-loop.h"
#include "qemu/sockets.h"
LOG_INFO("eventcast socket is connected.\n");
break;
} else {
- int connection_errno = socket_error();
+ int connection_errno = errno;
if (connection_errno == EINPROGRESS) {
fd_set writefds;
*
* Contact:
* SeokYeon Hwang <syeon.hwang@samsung.com>
- * SangJin Kim <sangjin3.kim@samsung.com>
- * KiTae Kim <kt920.kim@samsung.com>
- * JinHyung Jo <jinhyung.jo@samsung.com>
- * SungMin Ha <sungmin82.ha@samsung.com>
- * MunKyu Im <munkyu.im@samsung.com>
- * JiHye Kim <jihye1128.kim@samsung.com>
- * GiWoong Kim <giwoong.kim@samsung.com>
- * DongKyun Yun
- * DoHyung Hong
- * Hyunjun Son
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* add some TIZEN-speciaized device...
*/
+#include "qemu/osdep.h"
#include "hw/boards.h"
#include "hw/i386/pc.h"
#ifndef MARU_PM_H_
#define MARU_PM_H_
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "hw/acpi/acpi.h"
*/
+#include "qemu/osdep.h"
#include "hw/i386/pc.h"
#include "ui/console.h"
#include "hw/pci/pci.h"
#ifndef __MARU_BRILLCODEC_H__
#define __MARU_BRILLCODEC_H__
+#include "qemu/osdep.h"
#include "hw/pci/pci.h"
#include "libavcodec/avcodec.h"
#define SUPPORT_MEMORY_MONOPOLIZING
//#define ENCODE_VIDEO_USE_MEMORY_MONOPOLIZING
+#include "qemu/osdep.h"
#include "qemu/main-loop.h"
+#include "qapi/error.h"
#include "hw/pci/pci.h"
#include "hw/maru_device_ids.h"
#include <inttypes.h>
#include <signal.h>
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/main-loop.h"
+#include "qapi/error.h"
#include "exec/cpu-common.h"
#include "maru_camera.h"
*
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "videodev2_min.h"
#include "maru_camera_convert.h"
*
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
+#include "qemu/cutils.h"
#include "sysemu/kvm.h"
#include "maru_camera.h"
#include "debug_ch.h"
#include <QDirIterator>
#include <QImageReader>
#include "maru_camera_image.h"
+#include "qemu/osdep.h"
#include "ui/qemu-pixman.h"
// Internal classes
* with Qt5 QImage class
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/timer.h"
+#include "qemu/cutils.h"
#include "sysemu/kvm.h"
#include "emul_state.h"
#include "maru_camera.h"
*
*/
+#include "qemu/osdep.h"
#include "hw/maru_device_ids.h"
#include "maru_virtio_esm.h"
#include "emul_state.h"
uint16_t percentage;
};
-static VirtQueueElement elem;
+static VirtQueueElement *elem;
struct progress_info progress;
static void virtio_esm_handle(VirtIODevice *vdev, VirtQueue *vq)
{
VirtIOESM *vesm = VIRTIO_MARU_ESM(vdev);
- int index = 0;
TRACE("virtqueue handler.\n");
if (virtio_queue_empty(vesm->vq)) {
}
// Get a queue buffer.
- index = virtqueue_pop(vq, &elem);
- TRACE("virtqueue pop. index: %d\n", index);
+ elem = virtqueue_pop(vq, sizeof(VirtQueueElement));
- TRACE("virtio element out number : %d\n", elem.out_num);
- if (elem.out_num != 1) {
+ TRACE("virtio element out number : %d\n", elem->out_num);
+ if (elem->out_num != 1) {
ERR("virtio element out number is wierd.\n");
}
else {
- TRACE("caramis elem.out_sg[0].iov_len : %x\n", elem.out_sg[0].iov_len);
- TRACE("caramis elem.out_sg[0].iov_base : %x\n", elem.out_sg[0].iov_base);
- if (elem.out_sg[0].iov_len != 4) {
+ TRACE("caramis elem.out_sg[0].iov_len : %x\n", elem->out_sg[0].iov_len);
+ TRACE("caramis elem.out_sg[0].iov_base : %x\n", elem->out_sg[0].iov_base);
+ if (elem->out_sg[0].iov_len != 4) {
ERR("out lenth is wierd.\n");
}
else {
- progress = *((struct progress_info*)elem.out_sg[0].iov_base);
+ progress = *((struct progress_info*)elem->out_sg[0].iov_base);
TRACE("Boot up progress is [%u] percent done at %s.\n",
progress.percentage,
progress.mode == 's' || progress.mode == 'S' ? "system mode" : "user mode");
}
// There is no data to copy into guest.
- virtqueue_push(vesm->vq, &elem, 0);
+ virtqueue_push(vesm->vq, elem, 0);
virtio_notify(&vesm->vdev, vesm->vq);
}
#include <pthread.h>
+#include "qemu/osdep.h"
+#include "qemu/iov.h"
#include "hw/maru_device_ids.h"
#include "maru_virtio_evdi.h"
#include "debug_ch.h"
static void flush_evdi_recv_queue(void)
{
- int index;
-
if (unlikely(!virtio_queue_ready(vio_evdi->rvq))) {
INFO("virtio queue is not ready\n");
return;
break;
}
- VirtQueueElement elem;
- index = virtqueue_pop(vio_evdi->rvq, &elem);
- if (index == 0) {
+ VirtQueueElement *elem;
+ elem = virtqueue_pop(vio_evdi->rvq, sizeof(VirtQueueElement));
+ if (!elem) {
/* ERR("unexpected empty queue"); */
break;
}
- /* INFO(">> virtqueue_pop. index: %d, out_num : %d, in_num : %d\n", index, elem.out_num, elem.in_num); */
-
- memset(elem.in_sg[0].iov_base, 0, elem.in_sg[0].iov_len);
- memcpy(elem.in_sg[0].iov_base, &msginfo->info, sizeof(struct msg_info));
+ memset(elem->in_sg[0].iov_base, 0, elem->in_sg[0].iov_len);
+ memcpy(elem->in_sg[0].iov_base, &msginfo->info, sizeof(struct msg_info));
- /* INFO(">> send to guest use = %d, msg = %s, iov_len = %d \n",
- //msginfo->info.use, msginfo->info.buf, elem.in_sg[0].iov_len); */
-
- virtqueue_push(vio_evdi->rvq, &elem, sizeof(msg_info));
+ virtqueue_push(vio_evdi->rvq, elem, sizeof(msg_info));
virtio_notify(&vio_evdi->vdev, vio_evdi->rvq);
QTAILQ_REMOVE(&evdi_recv_msg_queue, msginfo, next);
static void virtio_evdi_send(VirtIODevice *vdev, VirtQueue *vq)
{
VirtIOEVDI *vevdi = (VirtIOEVDI *)vdev;
- int index = 0;
struct msg_info _msg;
+ int len = 0;
if (virtio_queue_empty(vevdi->svq)) {
INFO("<< virtqueue is empty.\n");
return;
}
- VirtQueueElement elem;
-
- while ((index = virtqueue_pop(vq, &elem))) {
-
- /* INFO("<< virtqueue pop. index: %d, out_num : %d, in_num : %d\n", index, elem.out_num, elem.in_num); */
-
- /* INFO("<< use=%d, iov_len = %d\n", _msg.use, elem.out_sg[0].iov_len); */
+ VirtQueueElement *elem;
+ while ((elem = virtqueue_pop(vq, sizeof(VirtQueueElement)))) {
memset(&_msg, 0x00, sizeof(_msg));
- memcpy(&_msg, elem.out_sg[0].iov_base, elem.out_sg[0].iov_len);
+ memcpy(&_msg, elem->out_sg[0].iov_base, elem->out_sg[0].iov_len);
+
+ len = iov_from_buf(elem->in_sg, elem->in_num,
+ 0, vevdi, sizeof(VirtIOEVDI));
- /* INFO("<< recv from guest len = %d, msg = %s \n", _msg.use, _msg.buf); */
+ virtqueue_push(vq, elem, len);
send_injector_ntf(_msg.buf, _msg.use);
}
- virtqueue_push(vq, &elem, sizeof(VirtIOEVDI));
virtio_notify(&vio_evdi->vdev, vq);
}
#include <pthread.h>
#include "emul_state.h"
#include "maru_virtio_hwkey.h"
+
+#include "qemu/osdep.h"
#include "hw/maru_device_ids.h"
#include "debug_ch.h"
static unsigned int elem_queue_cnt; /* elem_queue */
VirtIOHWKey *vhk;
-VirtQueueElement elem_vhk;
+VirtQueueElement *elem_vhk;
/* lock for between communication thread and IO thread */
static pthread_mutex_t event_mutex = PTHREAD_MUTEX_INITIALIZER;
static void maru_virtio_hwkey_handle(VirtIODevice *vdev, VirtQueue *vq)
{
- int virt_sg_index = 0;
-
TRACE("maru_virtio_hwkey_handle\n");
if (unlikely(virtio_queue_empty(vhk->vq))) {
}
/* Get a queue buffer which is written by guest side. */
do {
- virt_sg_index = virtqueue_pop(vq, &elem_vhk);
+ elem_vhk = virtqueue_pop(vq, sizeof(VirtQueueElement));
TRACE("virtqueue pop.\n");
- } while (virt_sg_index < MAX_BUF_COUNT);
+ } while (elem_vhk);
}
void maru_virtio_hwkey_notify(void)
event_queue_cnt, vqidx);
/* copy event into virtio buffer */
- memcpy(elem_vhk.in_sg[vqidx++].iov_base, &(event_entry->hwkey),
+ memcpy(elem_vhk->in_sg[vqidx++].iov_base, &(event_entry->hwkey),
sizeof(EmulHWKeyEvent));
if (vqidx == MAX_BUF_COUNT) {
vqidx = 0;
}
- virtqueue_push(vhk->vq, &elem_vhk, sizeof(EmulHWKeyEvent));
+ virtqueue_push(vhk->vq, elem_vhk, sizeof(EmulHWKeyEvent));
virtio_notify(&vhk->vdev, vhk->vq);
pthread_mutex_lock(&event_mutex);
#ifndef MARU_HWKEY_H_
#define MARU_HWKEY_H_
+#include "qemu/osdep.h"
#include "ui/console.h"
#include "hw/virtio/virtio.h"
#include <pthread.h>
+#include "qemu/osdep.h"
#include "hw/pci/pci.h"
#include "hw/maru_device_ids.h"
{
VirtIOJACK *vjack = (VirtIOJACK *)vdev;
struct msg_info msg;
- VirtQueueElement elem;
- int index = 0;
+ VirtQueueElement *elem;
if (vjack->vq == NULL) {
ERR("virt queue is not ready.\n");
return;
}
- while ((index = virtqueue_pop(vq, &elem))) {
+ while ((elem = virtqueue_pop(vq, sizeof(VirtQueueElement)))) {
memset(&msg, 0x00, sizeof(msg));
- memcpy(&msg, elem.out_sg[0].iov_base, elem.out_sg[0].iov_len);
+ memcpy(&msg, elem->out_sg[0].iov_base, elem->out_sg[0].iov_len);
- TRACE("handling msg from driver: %s, len: %d, type: %d, req: %d, index: %d\n", msg.buf, strlen(msg.buf), msg.type, msg.req, index);
-
- handle_msg(&msg, &elem);
+ handle_msg(&msg, elem);
}
}
*
*/
+#include "qemu/osdep.h"
#include "qemu/iov.h"
#include "hw/maru_device_ids.h"
#include "maru_virtio_keyboard.h"
qemu_mutex_lock(&vkbd->event_mutex);
QTAILQ_FOREACH(entry, &events_queue, node) {
- VirtQueueElement element;
+ VirtQueueElement *element;
EmulKbdEvent *event = &entry->event;
- if (virtqueue_pop(vkbd->vq, &element)) {
- len = iov_from_buf(element.in_sg, element.in_num,
+ element = virtqueue_pop(vkbd->vq, sizeof(VirtQueueElement));
+ if (element) {
+ len = iov_from_buf(element->in_sg, element->in_num,
0, event, sizeof(EmulKbdEvent));
- virtqueue_push(vkbd->vq, &element, len);
+ virtqueue_push(vkbd->vq, element, len);
} else {
ERR("virtqueue is not available, dropping event.\n");
break;
#include <pthread.h>
+#include "qemu/osdep.h"
#include "hw/maru_device_ids.h"
#include "maru_virtio_nfc.h"
#include "debug_ch.h"
static QTAILQ_HEAD(MsgInfoRecvHead , MsgInfo) nfc_recv_msg_queue =
QTAILQ_HEAD_INITIALIZER(nfc_recv_msg_queue);
-typedef struct NFCBuf {
- VirtQueueElement elem;
- QTAILQ_ENTRY(NFCBuf) next;
-} NFCBuf;
-
static char nfc_data[NFC_MAX_BUF_SIZE] = {'0',};
static QemuMutex recv_buf_mutex;
static void flush_nfc_recv_queue(void)
{
- int index;
-
if (unlikely(!virtio_queue_ready(vio_nfc->rvq))) {
INFO("virtio queue is not ready\n");
return;
break;
}
- VirtQueueElement elem;
- index = virtqueue_pop(vio_nfc->rvq, &elem);
- if (index == 0) {
+ VirtQueueElement *elem;
+ elem = virtqueue_pop(vio_nfc->rvq, sizeof(VirtQueueElement));
+ if (!elem) {
/* ERR("unexpected empty queue"); */
break;
}
INFO(">> virtqueue_pop. index: %d, out_num : %d, in_num : %d\n",
- index, elem.out_num, elem.in_num);
+ index, elem->out_num, elem->in_num);
- memcpy(elem.in_sg[0].iov_base, &msginfo->info,
+ memcpy(elem->in_sg[0].iov_base, &msginfo->info,
sizeof(struct nfc_msg_info));
INFO(">> send to guest use = %d, msg = %s, iov_len = %d\n",
- msginfo->info.use, msginfo->info.buf, elem.in_sg[0].iov_len);
+ msginfo->info.use, msginfo->info.buf, elem->in_sg[0].iov_len);
- virtqueue_push(vio_nfc->rvq, &elem, sizeof(nfc_msg_info));
+ virtqueue_push(vio_nfc->rvq, elem, sizeof(nfc_msg_info));
virtio_notify(&vio_nfc->vdev, vio_nfc->rvq);
QTAILQ_REMOVE(&nfc_recv_msg_queue, msginfo, next);
static void virtio_nfc_send(VirtIODevice *vdev, VirtQueue *vq)
{
VirtIONFC *vnfc = (VirtIONFC *)vdev;
- int index = 0;
struct nfc_msg_info _msg;
if (virtio_queue_empty(vnfc->svq)) {
return;
}
- VirtQueueElement elem;
-
- while ((index = virtqueue_pop(vq, &elem))) {
-
- INFO("<< virtqueue pop. index: %d, out_num : %d, in_num : %d\n",
- index, elem.out_num, elem.in_num);
-
- INFO("<< iov_len = %d\n", elem.out_sg[0].iov_len);
+ VirtQueueElement *elem;
+ while ((elem = virtqueue_pop(vq, sizeof(VirtQueueElement)))) {
memset(&_msg, 0x00, sizeof(_msg));
- memcpy(&_msg, elem.out_sg[0].iov_base, elem.out_sg[0].iov_len);
+ memcpy(&_msg, elem->out_sg[0].iov_base, elem->out_sg[0].iov_len);
INFO("<< recv from guest len = %d, msg = %s\n", _msg.use, _msg.buf);
send_nfc_ntf(&_msg);
}
- virtqueue_push(vq, &elem, sizeof(VirtIONFC));
+ virtqueue_push(vq, elem, sizeof(VirtIONFC));
virtio_notify(&vio_nfc->vdev, vq);
}
* refer to hw/virtio/virtio-pci.c
*/
+#include "qemu/osdep.h"
#include "hw/virtio/virtio-pci.h"
#include "hw/maru_device_ids.h"
#include <pthread.h>
+#include "qemu/osdep.h"
#include "hw/pci/pci.h"
#include "hw/maru_device_ids.h"
{
VirtIOPOWER *vpower = (VirtIOPOWER*)vdev;
struct msg_info msg;
- VirtQueueElement elem;
- int index = 0;
+ VirtQueueElement *elem;
if (vpower->vq == NULL) {
ERR("virt queue is not ready.\n");
return;
}
- while ((index = virtqueue_pop(vq, &elem))) {
+ while ((elem = virtqueue_pop(vq, sizeof(VirtQueueElement)))) {
memset(&msg, 0x00, sizeof(msg));
- memcpy(&msg, elem.out_sg[0].iov_base, elem.out_sg[0].iov_len);
+ memcpy(&msg, elem->out_sg[0].iov_base, elem->out_sg[0].iov_len);
- TRACE("handling msg from driver: %s, len: %d, type: %d, req: %d, index: %d\n", msg.buf, strlen(msg.buf), msg.type, msg.req, index);
-
- handle_msg(&msg, &elem);
+ handle_msg(&msg, elem);
}
}
*/
+#include "qemu/osdep.h"
#include "hw/maru_device_ids.h"
#include "maru_virtio_rotary.h"
#include "util/new_debug_ch.h"
{
VirtIORotary *vrtr = (VirtIORotary *)opaque;
MrRotaryEvent *event;
- VirtQueueElement elem;
- int sg_num;
+ VirtQueueElement *elem;
uint32_t push_len = 0;
if (!vrtr) {
/* get a queue buffer which is written by guest side. */
do {
- sg_num = virtqueue_pop(vrtr->vq, &elem);
- LOG_TRACE("[%s] virtqueue_pop: sg_num(%d)\n", __func__, sg_num);
- } while (sg_num != 0);
+ elem = virtqueue_pop(vrtr->vq, sizeof(VirtQueueElement));
+ } while (elem);
qemu_mutex_lock(&vrtr->mutex);
while (rotaryqueue_check_avail(&vrtr->queue)) {
event = rotaryqueue_pop_head(&vrtr->queue);
/* rotary kernel driver has only one scattergather list */
- memcpy(elem.in_sg[0].iov_base + push_len,
+ memcpy(elem->in_sg[0].iov_base + push_len,
event, sizeof(MrRotaryEvent));
push_len += sizeof(MrRotaryEvent);
}
/* length which is really written to the guest */
- virtqueue_push(vrtr->vq, &elem, push_len);
+ virtqueue_push(vrtr->vq, elem, push_len);
virtio_notify(&vrtr->vdev, vrtr->vq);
rotaryqueue_reset(&vrtr->queue);
vrtr->avail = false;
*
*/
+#include "qemu/osdep.h"
+#include "qapi/error.h"
#include "hw/pci/pci.h"
#include "hw/maru_device_ids.h"
{
VirtIOSENSOR *vsensor = (VirtIOSENSOR *)vdev;
struct msg_info msg;
- VirtQueueElement elem;
- int index = 0;
+ VirtQueueElement *elem;
if (vsensor->vq == NULL) {
LOG_SEVERE("virt queue is not ready.\n");
return;
}
- while ((index = virtqueue_pop(vq, &elem))) {
+ while ((elem = virtqueue_pop(vq, sizeof(VirtQueueElement)))) {
memset(&msg, 0x00, sizeof(msg));
- memcpy(&msg, elem.out_sg[0].iov_base, elem.out_sg[0].iov_len);
+ memcpy(&msg, elem->out_sg[0].iov_base, elem->out_sg[0].iov_len);
- LOG_TRACE("handling msg from driver: %s, len: %d, type: %d, req: %d, index: %d\n", msg.buf, strlen(msg.buf), msg.type, msg.req, index);
-
- handle_msg(&msg, &elem);
+ handle_msg(&msg, elem);
}
}
*
*/
+#include "qemu/osdep.h"
#include "emul_state.h"
#include "maru_virtio_tablet.h"
#include "hw/maru_device_ids.h"
{
VirtIOTablet *vt = (VirtIOTablet *)opaque;
TabletEventEntry *event_entry = NULL;
- VirtQueueElement elem;
- int virt_sg_index = 0;
+ VirtQueueElement *elem;
uint32_t push_len = 0;
if (unlikely(!virtio_queue_ready(vt->vq))) {
/* Get a queue buffer which is written by guest side. */
do {
- virt_sg_index = virtqueue_pop(vt->vq, &elem);
- } while (virt_sg_index != 0);
+ elem = virtqueue_pop(vt->vq, sizeof(VirtQueueElement));
+ } while (elem);
qemu_mutex_lock(&vt->mutex);
while (!QTAILQ_EMPTY(&events_queue)) {
event_entry = QTAILQ_FIRST(&events_queue);
/* copy event into virtio buffer */
- memcpy(elem.in_sg[0].iov_base + push_len,
+ memcpy(elem->in_sg[0].iov_base + push_len,
&(event_entry->tablet),
sizeof(EmulTabletEvent));
push_len += sizeof(EmulTabletEvent);
QTAILQ_REMOVE(&events_queue, event_entry, node);
event_queue_cnt--;
}
- virtqueue_push(vt->vq, &elem, push_len);
+ virtqueue_push(vt->vq, elem, push_len);
virtio_notify(&vt->vdev, vt->vq);
vt->avail = false;
qemu_mutex_unlock(&vt->mutex);
*
*/
-
+#include "qemu/osdep.h"
#include "qemu/iov.h"
#include "maru_virtio_touchscreen.h"
#include "hw/maru_device_ids.h"
qemu_mutex_lock(&ts->event_mutex);
QTAILQ_FOREACH(entry, &events_queue, node) {
- VirtQueueElement element;
+ VirtQueueElement *element;
EmulTouchEvent *event = &entry->event;
- if (virtqueue_pop(ts->vq, &element)) {
- len = iov_from_buf(element.in_sg, element.in_num,
+ element = virtqueue_pop(ts->vq, sizeof(VirtQueueElement));
+ if (element) {
+ len = iov_from_buf(element->in_sg, element->in_num,
0, event, sizeof(EmulTouchEvent));
- virtqueue_push(ts->vq, &element, len);
+ virtqueue_push(ts->vq, element, len);
} else {
ERR("virtqueue is not available, dropping event.\n");
break;
*
*/
+#include "qemu/osdep.h"
#include "hw/maru_device_ids.h"
#include "maru_virtio_vmodem.h"
#include "maru_virtio_evdi.h"
static void flush_vmodem_recv_queue(void)
{
- int index;
-
if (unlikely(!virtio_queue_ready(vio_vmodem->rvq))) {
LOG_SEVERE("recv virtio queue is not ready\n");
return;
break;
}
- VirtQueueElement elem;
- index = virtqueue_pop(vio_vmodem->rvq, &elem);
- if (index == 0) {
+ VirtQueueElement *elem;
+ elem = virtqueue_pop(vio_vmodem->rvq, sizeof(VirtQueueElement));
+ if (!elem) {
break;
}
- memset(elem.in_sg[0].iov_base, 0, elem.in_sg[0].iov_len);
- memcpy(elem.in_sg[0].iov_base, &msginfo->info, sizeof(struct msg_info));
+ memset(elem->in_sg[0].iov_base, 0, elem->in_sg[0].iov_len);
+ memcpy(elem->in_sg[0].iov_base, &msginfo->info, sizeof(struct msg_info));
- virtqueue_push(vio_vmodem->rvq, &elem, sizeof(msg_info));
+ virtqueue_push(vio_vmodem->rvq, elem, sizeof(msg_info));
virtio_notify(&vio_vmodem->vdev, vio_vmodem->rvq);
QTAILQ_REMOVE(&vmodem_recv_msg_queue, msginfo, next);
static void virtio_vmodem_send(VirtIODevice *vdev, VirtQueue *vq)
{
VirtIOVModem *vvmodem = (VirtIOVModem *)vdev;
- int index = 0;
struct msg_info _msg;
if (virtio_queue_empty(vvmodem->svq)) {
return;
}
- VirtQueueElement elem;
+ VirtQueueElement *elem;
- while ((index = virtqueue_pop(vq, &elem))) {
+ while ((elem = virtqueue_pop(vq, sizeof(VirtQueueElement)))) {
memset(&_msg, 0x00, sizeof(_msg));
- memcpy(&_msg, elem.out_sg[0].iov_base, elem.out_sg[0].iov_len);
+ memcpy(&_msg, elem->out_sg[0].iov_base, elem->out_sg[0].iov_len);
LOG_TRACE("vmodem send to ecp.\n");
send_injector_ntf(_msg.buf, _msg.use);
}
- virtqueue_push(vq, &elem, sizeof(VirtIOVModem));
+ virtqueue_push(vq, elem, sizeof(VirtIOVModem));
virtio_notify(&vio_vmodem->vdev, vq);
}
*
*/
+#include "qemu/osdep.h"
#include "ui/console.h"
#include "qt5.h"
#include <stdbool.h>
+#include "qemu/osdep.h"
#include "sysemu/sysemu.h"
void maru_early_qt5_display_init(bool isOnscreen);
*
*/
+#include "qemu/osdep.h"
#include "qemu/main-loop.h"
#include "qemu/config-file.h"
#include "hw/qdev.h"
state = g_malloc0(sizeof(struct maru_device_hotplug));
event_notifier_init(&state->notifier, 0);
- event_notifier_set_handler(&state->notifier, device_hotplug_handler);
+ event_notifier_set_handler(&state->notifier, false, device_hotplug_handler);
emulator_add_exit_notifier(&maru_device_hotplug_exit);
}
#include <string.h>
#include <glib.h>
+#include "qemu/osdep.h"
#include "qemu-common.h"
#ifdef CONFIG_WIN32
#include <sys/types.h>
#include <dirent.h>
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/queue.h"
*/
#include "hds.h"
+
+#include "qemu/osdep.h"
#include "qmp-commands.h"
#include "hw/pci/pci.h"
#include "debug_ch.h"
#define MAX_HDS_ID_LEN 32
#define MAX_HDS_LIST_LEN 4096
+#include "qemu/osdep.h"
#include "qemu-common.h"
enum hds_level {
#include "net_helper.h"
+#include "qemu/osdep.h"
#include "qemu/sockets.h"
#include "net/slirp.h"
#include "block/nbd.h"
*
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "emul_state.h"
#ifndef LOG_TRACE
#define LOG_TRACE __DPRINTF(_TRACE,&_dbch_)
#else
-#error
+//#error
+#undef LOG_TRACE
+#define LOG_TRACE __DPRINTF(_TRACE,&_dbch_)
#endif
#define IS_TRACE_ON __IS_DEBUG_ON(_TRACE,&_dbch_)
@brief Common functions for osutil
*/
+#include "qemu/osdep.h"
#include "qemu-common.h"
#ifndef CONFIG_WIN32
#ifndef __OSUTIL_H__
#define __OSUTIL_H__
+#include "qemu/osdep.h"
#include "emulator_common.h"
#ifdef CONFIG_WIN32
#include <net/if.h>
#include <linux/if_tun.h>
+#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu/error-report.h"
#include "ui_operations.h"
+#include "qemu/osdep.h"
#include "sysemu/sysemu.h"
#include "ui/input.h"
return NULL;
}
-#ifdef CONFIG_MARU
- // for lookup loopback interface...
- if (addr[0] == '\0') {
- ai.ai_flags = 0;
- addr = NULL;
- }
-#endif
-
/* lookup */
rc = getaddrinfo(saddr->host, saddr->port, &ai, &res);