From: David Hildenbrand <david@redhat.com>
To: qemu-devel@nongnu.org
Cc: Richard Henderson <richard.henderson@linaro.org>,
Aurelien Jarno <aurelien@aurel32.net>,
thuth@redhat.com, cohuck@redhat.com, david@redhat.com,
borntraeger@de.ibm.com, Alexander Graf <agraf@suse.de>
Subject: [Qemu-devel] [PATCH v1 03/11] s390x: store cpu states inside machine state
Date: Wed, 30 Aug 2017 19:05:53 +0200 [thread overview]
Message-ID: <20170830170601.15855-4-david@redhat.com> (raw)
In-Reply-To: <20170830170601.15855-1-david@redhat.com>
Let's avoid global variables. While at it, move both functions using it,
so we won't have to temporarily add includes (we'll be getting rid of
s390-virtio.c soon).
Signed-off-by: David Hildenbrand <david@redhat.com>
---
hw/s390x/s390-virtio-ccw.c | 39 ++++++++++++++++++++++++++++++++++++++
hw/s390x/s390-virtio.c | 38 -------------------------------------
hw/s390x/s390-virtio.h | 1 -
include/hw/s390x/s390-virtio-ccw.h | 3 +++
4 files changed, 42 insertions(+), 39 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index dd504dd5ae..ffd56af834 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -32,6 +32,45 @@
#include "migration/register.h"
#include "cpu_models.h"
+S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
+{
+ S390CcwMachineState *ms = S390_CCW_MACHINE(qdev_get_machine());
+
+ if (cpu_addr >= max_cpus) {
+ return NULL;
+ }
+
+ /* Fast lookup via CPU ID */
+ return ms->cpus[cpu_addr];
+}
+
+static void s390_init_cpus(MachineState *machine)
+{
+ S390CcwMachineState *ms = S390_CCW_MACHINE(machine);
+ int i;
+ gchar *name;
+
+ if (machine->cpu_model == NULL) {
+ machine->cpu_model = s390_default_cpu_model_name();
+ }
+
+ ms->cpus = g_new0(S390CPU *, max_cpus);
+
+ for (i = 0; i < max_cpus; i++) {
+ name = g_strdup_printf("cpu[%i]", i);
+ object_property_add_link(OBJECT(machine), name, TYPE_S390_CPU,
+ (Object **) &ms->cpus[i],
+ object_property_allow_set_link,
+ OBJ_PROP_LINK_UNREF_ON_RELEASE,
+ &error_abort);
+ g_free(name);
+ }
+
+ for (i = 0; i < smp_cpus; i++) {
+ s390x_new_cpu(machine->cpu_model, i, &error_fatal);
+ }
+}
+
static const char *const reset_dev_types[] = {
TYPE_VIRTUAL_CSS_BRIDGE,
"s390-sclp-event-facility",
diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
index da3f49e80e..464b5c71f8 100644
--- a/hw/s390x/s390-virtio.c
+++ b/hw/s390x/s390-virtio.c
@@ -48,18 +48,6 @@
#define S390_TOD_CLOCK_VALUE_MISSING 0x00
#define S390_TOD_CLOCK_VALUE_PRESENT 0x01
-static S390CPU **cpu_states;
-
-S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
-{
- if (cpu_addr >= max_cpus) {
- return NULL;
- }
-
- /* Fast lookup via CPU ID */
- return cpu_states[cpu_addr];
-}
-
void s390_init_ipl_dev(const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
@@ -86,32 +74,6 @@ void s390_init_ipl_dev(const char *kernel_filename,
qdev_init_nofail(dev);
}
-void s390_init_cpus(MachineState *machine)
-{
- int i;
- gchar *name;
-
- if (machine->cpu_model == NULL) {
- machine->cpu_model = s390_default_cpu_model_name();
- }
-
- cpu_states = g_new0(S390CPU *, max_cpus);
-
- for (i = 0; i < max_cpus; i++) {
- name = g_strdup_printf("cpu[%i]", i);
- object_property_add_link(OBJECT(machine), name, TYPE_S390_CPU,
- (Object **) &cpu_states[i],
- object_property_allow_set_link,
- OBJ_PROP_LINK_UNREF_ON_RELEASE,
- &error_abort);
- g_free(name);
- }
-
- for (i = 0; i < smp_cpus; i++) {
- s390x_new_cpu(machine->cpu_model, i, &error_fatal);
- }
-}
-
void s390_create_virtio_net(BusState *bus, const char *name)
{
diff --git a/hw/s390x/s390-virtio.h b/hw/s390x/s390-virtio.h
index ca97fd6814..b6660e3ae9 100644
--- a/hw/s390x/s390-virtio.h
+++ b/hw/s390x/s390-virtio.h
@@ -19,7 +19,6 @@
typedef int (*s390_virtio_fn)(const uint64_t *args);
void s390_register_virtio_hypercall(uint64_t code, s390_virtio_fn fn);
-void s390_init_cpus(MachineState *machine);
void s390_init_ipl_dev(const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h
index 41a9d2862b..4bef28ec39 100644
--- a/include/hw/s390x/s390-virtio-ccw.h
+++ b/include/hw/s390x/s390-virtio-ccw.h
@@ -21,11 +21,14 @@
#define S390_MACHINE_CLASS(klass) \
OBJECT_CLASS_CHECK(S390CcwMachineClass, (klass), TYPE_S390_CCW_MACHINE)
+struct S390CPU;
+
typedef struct S390CcwMachineState {
/*< private >*/
MachineState parent_obj;
/*< public >*/
+ S390CPU **cpus;
bool aes_key_wrap;
bool dea_key_wrap;
uint8_t loadparm[8];
--
2.13.5
next prev parent reply other threads:[~2017-08-30 17:06 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-30 17:05 [Qemu-devel] [PATCH v1 00/11] next round of s390x cleanups David Hildenbrand
2017-08-30 17:05 ` [Qemu-devel] [PATCH v1 01/11] exec, dump: don't include exec/exec-all.h explicitly David Hildenbrand
2017-08-30 18:55 ` Thomas Huth
2017-08-31 13:06 ` David Hildenbrand
2017-08-31 14:21 ` Cornelia Huck
2017-09-01 15:18 ` David Hildenbrand
2017-08-30 17:05 ` [Qemu-devel] [PATCH v1 02/11] cpu: drop old comments describing members David Hildenbrand
2017-08-31 14:23 ` Cornelia Huck
2017-08-30 17:05 ` David Hildenbrand [this message]
2017-08-30 20:58 ` [Qemu-devel] [PATCH v1 03/11] s390x: store cpu states inside machine state Thomas Huth
2017-08-31 13:11 ` David Hildenbrand
2017-08-31 14:29 ` Cornelia Huck
2017-08-31 14:30 ` David Hildenbrand
2017-08-31 14:38 ` Cornelia Huck
2017-08-31 14:39 ` David Hildenbrand
2017-08-31 14:23 ` David Hildenbrand
2017-08-31 14:31 ` Thomas Huth
2017-08-31 14:36 ` David Hildenbrand
2017-08-31 14:45 ` Thomas Huth
2017-08-30 17:05 ` [Qemu-devel] [PATCH v1 04/11] s390x: get rid of s390-virtio.c David Hildenbrand
2017-08-31 9:13 ` Thomas Huth
2017-08-31 13:14 ` David Hildenbrand
2017-08-31 11:47 ` Christian Borntraeger
2017-08-31 13:13 ` David Hildenbrand
2017-08-30 17:05 ` [Qemu-devel] [PATCH v1 05/11] s390x: rename s390-virtio.h to s390-virtio-hcall.h David Hildenbrand
2017-08-31 9:29 ` Thomas Huth
2017-08-31 13:18 ` David Hildenbrand
2017-08-31 13:20 ` Thomas Huth
2017-08-30 17:05 ` [Qemu-devel] [PATCH v1 06/11] target/s390x: cleanup cpu number/address handling David Hildenbrand
2017-08-31 14:35 ` Cornelia Huck
2017-08-31 14:41 ` David Hildenbrand
2017-08-31 14:49 ` Cornelia Huck
2017-08-31 16:03 ` Igor Mammedov
2017-08-31 16:08 ` Cornelia Huck
2017-08-30 17:05 ` [Qemu-devel] [PATCH v1 07/11] target/s390x: rename next_cpu_id to next_cpu_addr David Hildenbrand
2017-08-30 17:05 ` [Qemu-devel] [PATCH v1 08/11] s390x: allow only 1 CPU with TCG David Hildenbrand
2017-08-30 19:06 ` Thomas Huth
2017-08-31 6:42 ` Cornelia Huck
2017-08-31 13:24 ` David Hildenbrand
2017-08-31 14:41 ` Cornelia Huck
2017-08-31 15:03 ` David Hildenbrand
2017-08-31 15:07 ` Cornelia Huck
2017-08-31 15:33 ` David Hildenbrand
2017-08-31 16:06 ` Cornelia Huck
2017-08-30 17:05 ` [Qemu-devel] [PATCH v1 09/11] target/s390x: tcg_s390_program_interrupt() will never return David Hildenbrand
2017-08-30 20:45 ` Thomas Huth
2017-08-31 12:14 ` David Hildenbrand
2017-08-30 17:06 ` [Qemu-devel] [PATCH v1 10/11] target/s390x: use trigger_pgm_exception() in s390_cpu_handle_mmu_fault() David Hildenbrand
2017-08-30 19:11 ` Thomas Huth
2017-08-31 13:34 ` David Hildenbrand
2017-08-30 17:06 ` [Qemu-devel] [PATCH v1 11/11] target/s390x: use program_interrupt() in per_check_exception() David Hildenbrand
2017-08-31 9:37 ` Thomas Huth
2017-08-31 14:45 ` [Qemu-devel] [PATCH v1 00/11] next round of s390x cleanups Cornelia Huck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170830170601.15855-4-david@redhat.com \
--to=david@redhat.com \
--cc=agraf@suse.de \
--cc=aurelien@aurel32.net \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).