From patchwork Fri Jun 25 12:52:21 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 56975 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 85E1AB6F14 for ; Sat, 26 Jun 2010 05:27:53 +1000 (EST) Received: from localhost ([127.0.0.1]:51773 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OSEYp-00025C-Bp for incoming@patchwork.ozlabs.org; Fri, 25 Jun 2010 15:27:35 -0400 Received: from [140.186.70.92] (port=54596 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OSD2G-0004nW-EO for qemu-devel@nongnu.org; Fri, 25 Jun 2010 13:50:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OS8On-0002gd-7U for qemu-devel@nongnu.org; Fri, 25 Jun 2010 08:52:50 -0400 Received: from mail-wy0-f173.google.com ([74.125.82.173]:37373) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OS8On-0002dD-2C for qemu-devel@nongnu.org; Fri, 25 Jun 2010 08:52:49 -0400 Received: by mail-wy0-f173.google.com with SMTP id 42so3384178wyb.4 for ; Fri, 25 Jun 2010 05:52:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:from:to:cc:subject :date:message-id:x-mailer:in-reply-to:references; bh=rrSljzO4//aYryCAmcl/4LVMWGgibeYIQOs3cXFpKeg=; b=hDHCR2vJmSnNMyR2QSEyIwqCHtx5RyK9dFOWTDCxXV05AHVLpz/9TK9VXIT56d3UTP 9XZOiedEbp6WK6IQMZqTq6WOsNOnVIYT+A4FlVKncRuNYziXA0UYip6B4ltaNHru2t6q Mm7zS9EZCx1AV8LGri729t/AnpZdjNzFCzbHw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; b=qpmsc85irD2ryNrfLcvnjBdnlJeduXHqLgD3Kntbv7Y9JE8IJPRTHE5lHW1S9jz4bu nNkIa9E+78u+deZzlbCSXwRMJyN6SutGbJgHHkX6AM3vVNWk3TxRGh5uUL0mKagQpeC1 YBwh20uPDptEHzL/0OtiLkuN8xS0lDWTM8MLg= Received: by 10.216.87.129 with SMTP id y1mr5038492wee.102.1277470362976; Fri, 25 Jun 2010 05:52:42 -0700 (PDT) Received: from localhost.localdomain (nat-pool-brq-t.redhat.com [209.132.186.34]) by mx.google.com with ESMTPS id o3sm116954wee.38.2010.06.25.05.52.40 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 25 Jun 2010 05:52:41 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Fri, 25 Jun 2010 14:52:21 +0200 Message-Id: <1277470342-5861-7-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.7.0.1 In-Reply-To: <1277470342-5861-1-git-send-email-pbonzini@redhat.com> References: <1277470342-5861-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) Cc: Amit Shah , Isaku Yamahata Subject: [Qemu-devel] [PATCH 6/7] replace void* uses with opaque CPUState* X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Because we all love type safety, don't we? Signed-off-by: Paolo Bonzini --- cpu-common.h | 1 - cpus.c | 23 ++++++++--------------- hw/apic.c | 4 ++-- hw/pc.c | 4 ++-- qemu-common.h | 7 ++++--- 5 files changed, 16 insertions(+), 23 deletions(-) diff --git a/cpu-common.h b/cpu-common.h index f325e60..d905258 100644 --- a/cpu-common.h +++ b/cpu-common.h @@ -19,7 +19,6 @@ #include "qemu-queue.h" struct CPUState; -typedef struct CPUState CPUState; #if !defined(CONFIG_USER_ONLY) diff --git a/cpus.c b/cpus.c index da6ec44..5b62e27 100644 --- a/cpus.c +++ b/cpus.c @@ -259,10 +259,8 @@ void qemu_main_loop_start(void) { } -void qemu_init_vcpu(void *_env) +void qemu_init_vcpu(CPUState *env) { - CPUState *env = _env; - env->nr_cores = smp_cores; env->nr_threads = smp_threads; if (kvm_enabled()) @@ -270,7 +268,7 @@ void qemu_init_vcpu(void *_env) return; } -int qemu_cpu_self(void *env) +int qemu_cpu_self(CPUState *env) { return 1; } @@ -288,7 +286,7 @@ void pause_all_vcpus(void) { } -void qemu_cpu_kick(void *env) +void qemu_cpu_kick(CPUState *env) { return; } @@ -524,16 +522,14 @@ static void *tcg_cpu_thread_fn(void *arg) return NULL; } -void qemu_cpu_kick(void *_env) +void qemu_cpu_kick(CPUState *env) { - CPUState *env = _env; qemu_cond_broadcast(env->halt_cond); qemu_thread_signal(env->thread, SIG_IPI); } -int qemu_cpu_self(void *_env) +int qemu_cpu_self(CPUState *env) { - CPUState *env = _env; QemuThread this; qemu_thread_self(&this); @@ -666,9 +662,8 @@ void resume_all_vcpus(void) } } -static void tcg_init_vcpu(void *_env) +static void tcg_init_vcpu(CPUState *env) { - CPUState *env = _env; /* share a single thread for all cpus with TCG */ if (!tcg_cpu_thread) { env->thread = qemu_mallocz(sizeof(QemuThread)); @@ -695,10 +690,8 @@ static void kvm_start_vcpu(CPUState *env) qemu_cond_timedwait(&qemu_cpu_cond, &qemu_global_mutex, 100); } -void qemu_init_vcpu(void *_env) +void qemu_init_vcpu(CPUState *env) { - CPUState *env = _env; - env->nr_cores = smp_cores; env->nr_threads = smp_threads; if (kvm_enabled()) @@ -840,7 +833,7 @@ void set_cpu_log(const char *optarg) int64_t cpu_get_icount(void) { int64_t icount; - CPUState *env = cpu_single_env;; + CPUState *env = cpu_single_env; icount = qemu_icount; if (env) { diff --git a/hw/apic.c b/hw/apic.c index d686b51..85737c4 100644 --- a/hw/apic.c +++ b/hw/apic.c @@ -94,7 +94,7 @@ typedef struct APICState APICState; struct APICState { SysBusDevice busdev; - void *cpu_env; + CPUState *cpu_env; uint32_t apicbase; uint8_t id; uint8_t arb_id; @@ -1006,7 +1006,7 @@ static SysBusDeviceInfo apic_info = { .qdev.no_user = 1, .qdev.props = (Property[]) { DEFINE_PROP_UINT8("id", APICState, id, -1), - DEFINE_PROP_PTR("cpu_env", APICState, cpu_env), + DEFINE_PROP_CPU("cpu_env", APICState, cpu_env), DEFINE_PROP_END_OF_LIST(), } }; diff --git a/hw/pc.c b/hw/pc.c index 1848151..0497260 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -766,7 +766,7 @@ DeviceState *cpu_get_current_apic(void) } } -static DeviceState *apic_init(void *env, uint8_t apic_id) +static DeviceState *apic_init(CPUState *env, uint8_t apic_id) { DeviceState *dev; SysBusDevice *d; @@ -774,7 +774,7 @@ static DeviceState *apic_init(void *env, uint8_t apic_id) dev = qdev_create(NULL, "apic"); qdev_prop_set_uint8(dev, "id", apic_id); - qdev_prop_set_ptr(dev, "cpu_env", env); + qdev_prop_set_cpu(dev, "cpu_env", env); qdev_init_nofail(dev); d = sysbus_from_qdev(dev); diff --git a/qemu-common.h b/qemu-common.h index ac839aa..8339cb1 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -17,6 +17,7 @@ typedef struct QEMUTimer QEMUTimer; typedef struct QEMUFile QEMUFile; typedef struct QEMUBH QEMUBH; typedef struct DeviceState DeviceState; +typedef struct CPUState CPUState; /* we put basic includes here to avoid repeating them in device drivers */ #include @@ -239,8 +240,8 @@ void qemu_service_io(void); void qemu_notify_event(void); /* Unblock cpu */ -void qemu_cpu_kick(void *env); -int qemu_cpu_self(void *env); +void qemu_cpu_kick(CPUState *env); +int qemu_cpu_self(CPUState *env); /* work queue */ struct qemu_work_item { @@ -253,7 +254,7 @@ struct qemu_work_item { #ifdef CONFIG_USER_ONLY #define qemu_init_vcpu(env) do { } while (0) #else -void qemu_init_vcpu(void *env); +void qemu_init_vcpu(CPUState *env); #endif typedef struct QEMUIOVector {