sdk/emulator/qemu.git
11 years agomemory: move functions around
Paolo Bonzini [Mon, 22 Jul 2013 13:54:35 +0000 (15:54 +0200)]
memory: move functions around

Prepare for next patch, no semantic change.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-26-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoqtest: add test for ISA I/O space endianness
Paolo Bonzini [Mon, 22 Jul 2013 13:54:34 +0000 (15:54 +0200)]
qtest: add test for ISA I/O space endianness

This writes a register and reads its 1/2/4 byte parts.  Masking
is done in the device model.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-25-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agodefault-configs/ppc64: add all components of i82378 SuperIO chip used by prep
Paolo Bonzini [Mon, 22 Jul 2013 13:54:33 +0000 (15:54 +0200)]
default-configs/ppc64: add all components of i82378 SuperIO chip used by prep

The device provides an ISA bus so that pseries can also run the
endianness test.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-24-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agodefault-configs: add SuperIO to SH4
Paolo Bonzini [Mon, 22 Jul 2013 13:54:32 +0000 (15:54 +0200)]
default-configs: add SuperIO to SH4

The device provides an ISA bus to run the endianness test on.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-23-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agodefault-configs: add test device to all machines supporting ISA
Paolo Bonzini [Mon, 22 Jul 2013 13:54:31 +0000 (15:54 +0200)]
default-configs: add test device to all machines supporting ISA

This will let these machines run an endianness test for ISA
I/O port space.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-22-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agosparc64: unbreak
Paolo Bonzini [Mon, 22 Jul 2013 13:54:30 +0000 (15:54 +0200)]
sparc64: unbreak

... by making apb a subclass of TYPE_PCI_HOST_BRIDGE.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-21-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agosh4: unbreak r2d
Paolo Bonzini [Mon, 22 Jul 2013 13:54:29 +0000 (15:54 +0200)]
sh4: unbreak r2d

... by making sh_pci a subclass of TYPE_PCI_HOST_BRIDGE.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-20-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agomips: degrade BIOS error to warning
Paolo Bonzini [Mon, 22 Jul 2013 13:54:28 +0000 (15:54 +0200)]
mips: degrade BIOS error to warning

No free MIPS BIOS is available, so it makes little sense to quit.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-19-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agopc-testdev: remove useless cpu_to_le64/le64_to_cpu
Paolo Bonzini [Mon, 22 Jul 2013 13:54:27 +0000 (15:54 +0200)]
pc-testdev: remove useless cpu_to_le64/le64_to_cpu

So far the device was only used on little-endian machines.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-18-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agopc-testdev: support 8 and 16-bit accesses to 0xe0
Paolo Bonzini [Mon, 22 Jul 2013 13:54:26 +0000 (15:54 +0200)]
pc-testdev: support 8 and 16-bit accesses to 0xe0

This will let us use the testdev to test endianness.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-17-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoRevert "ioport: remove LITTLE_ENDIAN mark for portio"
Paolo Bonzini [Mon, 22 Jul 2013 13:54:25 +0000 (15:54 +0200)]
Revert "ioport: remove LITTLE_ENDIAN mark for portio"

This reverts commit c3cb8e77804313e1be99b5f28a34a346736707a5.

The scenario where I/O ports are accessed with DEVICE_LITTLE_ENDIAN
endianness now works and will soon be unit tested.  Since the PortioList
indirection assumes little endian, define portio_ops the same way.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-16-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoisa_mmio: delete
Paolo Bonzini [Mon, 22 Jul 2013 13:54:24 +0000 (15:54 +0200)]
isa_mmio: delete

It is not used anymore.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-15-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoebus: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:23 +0000 (15:54 +0200)]
ebus: do not use isa_mmio

This is untested, because ebus does not have a libqos module.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-14-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agosparc64: remove indirection for I/O port access
Paolo Bonzini [Mon, 22 Jul 2013 13:54:22 +0000 (15:54 +0200)]
sparc64: remove indirection for I/O port access

This fixes endianness bugs in I/O port access.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-13-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agomips_fulong2e: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:21 +0000 (15:54 +0200)]
mips_fulong2e: do not use isa_mmio

This board is little-endian, but still isa_mmio should die. :)

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-12-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agomipssim: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:20 +0000 (15:54 +0200)]
mipssim: do not use isa_mmio

Untested, this board does not support PCI so it cannot run endianness-test.
It should fix endianness bugs in I/O port access.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-11-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoppc440_bamboo: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:19 +0000 (15:54 +0200)]
ppc440_bamboo: do not use isa_mmio

This fixes endianness bugs in I/O port access.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-10-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agomips_malta: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:18 +0000 (15:54 +0200)]
mips_malta: do not use isa_mmio

This fixes endianness bugs in I/O port access.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-9-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agomips_r4k: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:17 +0000 (15:54 +0200)]
mips_r4k: do not use isa_mmio

This fixes endianness bugs in I/O port access.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-8-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agomips_jazz: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:16 +0000 (15:54 +0200)]
mips_jazz: do not use isa_mmio

This fixes endianness bugs in I/O port access.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-7-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoprep: fix I/O port endianness
Paolo Bonzini [Mon, 22 Jul 2013 13:54:15 +0000 (15:54 +0200)]
prep: fix I/O port endianness

Do not swap endianness here, it will happen during cpu_{in,out}{b,w,l}.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-6-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agospapr_pci: remove indirection for I/O port access
Alexey Kardashevskiy [Mon, 22 Jul 2013 13:54:14 +0000 (15:54 +0200)]
spapr_pci: remove indirection for I/O port access

This fixes endianness bugs in I/O port access.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-5-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoppc_newworld: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:13 +0000 (15:54 +0200)]
ppc_newworld: do not use isa_mmio

This fixes endianness bugs in I/O port access.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-4-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoppc_oldworld: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:12 +0000 (15:54 +0200)]
ppc_oldworld: do not use isa_mmio

This fixes endianness bugs in I/O port access.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-3-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agosh4: do not use isa_mmio
Paolo Bonzini [Mon, 22 Jul 2013 13:54:11 +0000 (15:54 +0200)]
sh4: do not use isa_mmio

This fixes endianness bugs in I/O port access (for sh4eb).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1374501278-31549-2-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agopo/Makefile: Use macro quiet-command for nice looking messages
Stefan Weil [Fri, 5 Jul 2013 20:55:44 +0000 (22:55 +0200)]
po/Makefile: Use macro quiet-command for nice looking messages

Suppress also the "... done" message from msgmerge.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agopo/Makefile: Fix generation of messages.po
Stefan Weil [Fri, 5 Jul 2013 20:55:43 +0000 (22:55 +0200)]
po/Makefile: Fix generation of messages.po

* Tell xgettext that we use UTF-8 encoding (this is currently optional).

* Set charset=UTF-8 in messages.po. This avoids warnings from msgmerge:
  warning: Charset "CHARSET" is not a portable encoding name.

* Use filename relative to root directory (ui/gtk.c instead of ../ui/gtk.c
  or $(SRC_PATH)/ui/gtk.c) for comments in *.po files.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agopo/Makefile: Fix *.mo generation for out-of-tree builds (regression)
Stefan Weil [Fri, 5 Jul 2013 20:55:42 +0000 (22:55 +0200)]
po/Makefile: Fix *.mo generation for out-of-tree builds (regression)

Commit f84756554e32d97db3aa949db1dd58c7eea62375 added a wildcard search
for *.po files. This search found no files for out of tree builds, so
those builds no longer created and installed *.mo files.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agopo/Makefile: Fix and improve help message
Stefan Weil [Fri, 5 Jul 2013 20:55:41 +0000 (22:55 +0200)]
po/Makefile: Fix and improve help message

The help message contains single quotes which got lost in the output.
Fix also a typo and use two instead of three lines.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'quintela/migration.next' into staging
Anthony Liguori [Tue, 23 Jul 2013 15:57:23 +0000 (10:57 -0500)]
Merge remote-tracking branch 'quintela/migration.next' into staging

# By Michael R. Hines (8) and others
# Via Juan Quintela
* quintela/migration.next:
  migration: add autoconvergence documentation
  Fix real mode guest segments dpl value in savevm
  Fix real mode guest migration
  rdma: account for the time spent in MIG_STATE_SETUP through QMP
  rdma: introduce MIG_STATE_NONE and change MIG_STATE_SETUP state transition
  rdma: allow state transitions between other states besides ACTIVE
  rdma: send pc.ram
  rdma: core logic
  rdma: introduce ram_handle_compressed()
  rdma: bugfix: ram_control_save_page()
  rdma: update documentation to reflect new unpin support

Message-id: 1374590725-14144-1-git-send-email-quintela@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging
Anthony Liguori [Tue, 23 Jul 2013 15:57:04 +0000 (10:57 -0500)]
Merge remote-tracking branch 'afaerber/tags/qom-cpu-for-anthony' into staging

QOM CPUState refactorings

* Fix NULL pointer dereference in gdbstub
* Introduce vaddr type
* Introduce CPUClass::set_pc()
* Introduce CPUClass::synchronize_from_tb()
* Introduce CPUClass::get_phys_page_debug()
* Introduce CPUClass::memory_rw_debug()
* Move singlestep_enabled and gdb_regs fields out of CPU_COMMON
* Adopt CPUState in more APIs
* Propagate CPUState in gdbstub

# gpg: Signature made Mon 22 Jul 2013 07:50:17 PM CDT using RSA key ID 3E7E013F
# gpg: Can't check signature: public key not found

# By Andreas Färber (21) and others
# Via Andreas Färber
* afaerber/tags/qom-cpu-for-anthony: (24 commits)
  linux-user: Use X86CPU property to retrieve CPUID family
  gdbstub: Change gdb_register_coprocessor() argument to CPUState
  cpu: Move gdb_regs field from CPU_COMMON to CPUState
  gdbstub: Change GDBState::{c,g}_cpu and find_cpu() to CPUState
  cpu: Introduce CPUClass::memory_rw_debug() for target_memory_rw_debug()
  exec: Change cpu_memory_rw_debug() argument to CPUState
  cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook
  gdbstub: Change gdb_{read,write}_register() argument to CPUState
  gdbstub: Change gdb_handlesig() argument to CPUState
  gdbstub: Change syscall callback argument to CPUState
  kvm: Change kvm_{insert,remove}_breakpoint() argument to CPUState
  cpu: Change cpu_single_step() argument to CPUState
  gdbstub: Update gdb_handlesig() and gdb_signalled() Coding Style
  cpu: Move singlestep_enabled field from CPU_COMMON to CPUState
  target-alpha: Copy implver to DisasContext
  target-alpha: Copy singlestep_enabled to DisasContext
  cpu: Introduce CPUClass::synchronize_from_tb() for cpu_pc_from_tb()
  target-unicore32: Implement CPUClass::set_pc()
  target-moxie: Implement CPUClass::set_pc()
  target-m68k: Implement CPUClass::set_pc()
  ...

11 years agoMerge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging
Anthony Liguori [Tue, 23 Jul 2013 15:56:55 +0000 (10:56 -0500)]
Merge remote-tracking branch 'afaerber/tags/qom-devices-for-anthony' into staging

QOM device refactorings

* Avoid TYPE_* in VMStateDescription name
* Replace some DO_UPCAST()s and FROM_SYSBUS()s with QOM casts
* Limit legacy SCSI command line handling to non-hotplugged devices
* Replace some SysBusDeviceClass::init with DeviceClass::realize

# gpg: Signature made Mon 22 Jul 2013 06:31:42 PM CDT using RSA key ID 3E7E013F
# gpg: Can't check signature: public key not found

# By Hu Tao (26) and others
# Via Andreas Färber
* afaerber/tags/qom-devices-for-anthony: (55 commits)
  isa-bus: Drop isabus_bridge_init() since it does nothing
  ioapic: Use QOM realize for ioapic
  kvmvapic: Use QOM realize
  kvm/clock: Use QOM realize for kvmclock
  hpet: Use QOM realize for hpet
  scsi: Improve error propagation for scsi_bus_legacy_handle_cmdline()
  megasas: Legacy command line handling fix
  scsi/esp: Use QOM realize for scsi esp
  fw_cfg: Use QOM realize for fw_cfg
  ahci: Use QOM realize for ahci
  pflash_cfi02: Use QOM realize for pflash_cfi02
  pflash_cfi01: Use QOM realize for pflash_cfi01
  fdc: Improve error propagation for QOM realize
  fdc: Use QOM realize for fdc
  kvm/clock: QOM'ify some more
  hpet: QOM'ify some more
  scsi/esp: QOM'ify some more
  fwcfg: QOM'ify some more
  ahci: QOM'ify some more
  pflash-cfi02: QOM'ify some more
  ...

11 years agomigration: add autoconvergence documentation
Juan Quintela [Tue, 23 Jul 2013 13:21:09 +0000 (15:21 +0200)]
migration: add autoconvergence documentation

This hunk got lost during merge.  It is documentation.

Spotted-by: Peter Lieven <lieven-lists@dlhnet.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agoFix real mode guest segments dpl value in savevm
Orit Wasserman [Mon, 22 Jul 2013 17:29:42 +0000 (20:29 +0300)]
Fix real mode guest segments dpl value in savevm

Older KVM version put invalid value in the segments registers dpl field for
real mode guests (0x3).
This breaks migration from those hosts to hosts with unrestricted guest support.
We detect it by checking CS dpl value for real mode guest and fix the dpl values
of all the segment registers.

Signed-off-by: Orit Wasserman <owasserm@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agoFix real mode guest migration
Orit Wasserman [Mon, 22 Jul 2013 17:29:41 +0000 (20:29 +0300)]
Fix real mode guest migration

Older KVM versions save CS dpl value to an invalid value for real mode guests
(0x3). This patch detect this situation when loading CPU state and set all the
segments dpl to zero.
This will allow migration from older KVM on host without unrestricted guest
to hosts with restricted guest support.
For example migration from a Penryn host (with kernel 2.6.32) to
a Westmere host (for real mode guest) will fail with "kvm: unhandled exit 80000021".

Signed-off-by: Orit Wasserman <owasserm@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agordma: account for the time spent in MIG_STATE_SETUP through QMP
Michael R. Hines [Mon, 22 Jul 2013 14:01:58 +0000 (10:01 -0400)]
rdma: account for the time spent in MIG_STATE_SETUP through QMP

Using the previous patches, we're now able to timestamp the SETUP
state. Once we have this time, let the user know about it in the
schema.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agordma: introduce MIG_STATE_NONE and change MIG_STATE_SETUP state transition
Michael R. Hines [Mon, 22 Jul 2013 14:01:57 +0000 (10:01 -0400)]
rdma: introduce MIG_STATE_NONE and change MIG_STATE_SETUP state transition

As described in the previous patch, until now, the MIG_STATE_SETUP
state was not really a 'formal' state. It has been used as a 'zero' state
(what we're calling 'NONE' here) and QEMU has been unconditionally transitioning
into this state when the QMP migration command was called. Instead we want to
introduce MIG_STATE_NONE, which is our starting state in the state machine, and
then immediately transition into the MIG_STATE_SETUP state when the QMP migrate
command is issued.

In order to do this, we must delay the transition into MIG_STATE_ACTIVE until
later in the migration_thread(). This is done to be able to timestamp the amount of
time spent in the SETUP state for proper accounting to the user during
an RDMA migration.

Furthermore, the management software, until now, has never been aware of the
existence of the SETUP state whatsoever. This must change, because, timing of this
state implies that the state actually exists.

These two patches cannot be separated because the 'query_migrate' QMP
switch statement needs to know how to handle this new state transition.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Tested-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agordma: allow state transitions between other states besides ACTIVE
Michael R. Hines [Mon, 22 Jul 2013 14:01:56 +0000 (10:01 -0400)]
rdma: allow state transitions between other states besides ACTIVE

This patch is in preparation for the next ones: Until now the MIG_STATE_SETUP
state was not really a 'formal' state. It has been used as a 'zero' state
and QEMU has been unconditionally transitioning into this state when
the QMP migrate command was called. In preparation for timing this state,
we have to make this state a a 'real' state which actually gets transitioned
from later in the migration_thread() from SETUP => ACTIVE, rather than just
automatically dropping into this state at the beginninig of the migration.

This means that the state transition function (migration_finish_set_state())
needs to be capable of transitioning from valid states _other_ than just
MIG_STATE_ACTIVE.

The function is in fact already capable of doing that, but was not allowing the
old state to be a parameter specified as an input.

This patch fixes that and only makes the transition if the current state
matches the old state that the caller intended to transition from.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Tested-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agordma: send pc.ram
Michael R. Hines [Mon, 22 Jul 2013 14:01:55 +0000 (10:01 -0400)]
rdma: send pc.ram

This takes advantages of the previous patches:

1. use the new QEMUFileOps hook 'save_page'

2. call out to the right accessor methods to invoke
   the iteration hooks defined in QEMUFileOps

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Chegu Vinod <chegu_vinod@hp.com>
Tested-by: Chegu Vinod <chegu_vinod@hp.com>
Tested-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agordma: core logic
Michael R. Hines [Mon, 22 Jul 2013 14:01:54 +0000 (10:01 -0400)]
rdma: core logic

Code that does need to be visible is kept
well contained inside this file and this is the only
new additional file to the entire patch.

This file includes the entire protocol and interfaces
required to perform RDMA migration.

Also, the configure and Makefile modifications to link
this file are included.

Full documentation is in docs/rdma.txt

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Chegu Vinod <chegu_vinod@hp.com>
Tested-by: Chegu Vinod <chegu_vinod@hp.com>
Tested-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agordma: introduce ram_handle_compressed()
Michael R. Hines [Mon, 22 Jul 2013 14:01:53 +0000 (10:01 -0400)]
rdma: introduce ram_handle_compressed()

This gives RDMA shared access to madvise() on the destination side
when an entire chunk is found to be zero.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Chegu Vinod <chegu_vinod@hp.com>
Tested-by: Chegu Vinod <chegu_vinod@hp.com>
Tested-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agordma: bugfix: ram_control_save_page()
Michael R. Hines [Mon, 22 Jul 2013 14:01:52 +0000 (10:01 -0400)]
rdma: bugfix: ram_control_save_page()

We were not checking for a valid 'bytes_sent' pointer before accessing it.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agordma: update documentation to reflect new unpin support
Michael R. Hines [Mon, 22 Jul 2013 14:01:51 +0000 (10:01 -0400)]
rdma: update documentation to reflect new unpin support

As requested, the protocol now includes memory unpinning support.
This has been implemented in a non-optimized manner, in such a way
that one could devise an LRU or other workload-specific information
on top of the basic mechanism to influence the way unpinning happens
during runtime.

The feature is not yet user-facing, and is thus can only be enabled
at compile-time.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agolinux-user: Use X86CPU property to retrieve CPUID family
Andreas Färber [Thu, 17 May 2012 22:01:58 +0000 (00:01 +0200)]
linux-user: Use X86CPU property to retrieve CPUID family

Avoids duplicating the calculation.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agogdbstub: Change gdb_register_coprocessor() argument to CPUState
Andreas Färber [Fri, 28 Jun 2013 19:27:39 +0000 (21:27 +0200)]
gdbstub: Change gdb_register_coprocessor() argument to CPUState

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Move gdb_regs field from CPU_COMMON to CPUState
Andreas Färber [Fri, 28 Jun 2013 19:11:37 +0000 (21:11 +0200)]
cpu: Move gdb_regs field from CPU_COMMON to CPUState

Prepares for changing gdb_register_coprocessor() argument to CPUState.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agogdbstub: Change GDBState::{c,g}_cpu and find_cpu() to CPUState
Andreas Färber [Thu, 27 Jun 2013 17:19:39 +0000 (19:19 +0200)]
gdbstub: Change GDBState::{c,g}_cpu and find_cpu() to CPUState

Use CPUState::env_ptr where still needed.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Introduce CPUClass::memory_rw_debug() for target_memory_rw_debug()
Andreas Färber [Thu, 27 Jun 2013 17:09:09 +0000 (19:09 +0200)]
cpu: Introduce CPUClass::memory_rw_debug() for target_memory_rw_debug()

Make inline target_memory_rw_debug() always available and change its
argument to CPUState. Let it check if CPUClass::memory_rw_debug provides
a specialized callback and fall back to cpu_memory_rw_debug() otherwise.

The only overriding implementation is for 32-bit sparc.

This prepares for changing GDBState::g_cpu to CPUState.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoexec: Change cpu_memory_rw_debug() argument to CPUState
Andreas Färber [Sat, 29 Jun 2013 17:40:58 +0000 (19:40 +0200)]
exec: Change cpu_memory_rw_debug() argument to CPUState

Propagate X86CPU in kvmvapic for simplicity.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Turn cpu_get_phys_page_debug() into a CPUClass hook
Andreas Färber [Sat, 29 Jun 2013 16:55:54 +0000 (18:55 +0200)]
cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook

Change breakpoint_invalidate() argument to CPUState alongside.

Since all targets now assign a softmmu-only field, we can drop helpers
cpu_class_set_{do_unassigned_access,vmsd}() and device_class_set_vmsd().

Prepares for changing cpu_memory_rw_debug() argument to CPUState.

Acked-by: Max Filippov <jcmvbkbc@gmail.com> (for xtensa)
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agogdbstub: Change gdb_{read,write}_register() argument to CPUState
Andreas Färber [Thu, 27 Jun 2013 16:25:36 +0000 (18:25 +0200)]
gdbstub: Change gdb_{read,write}_register() argument to CPUState

Use CPUState::env_ptr for now.

Prepares for changing GDBState::g_cpu to CPUState.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agogdbstub: Change gdb_handlesig() argument to CPUState
Andreas Färber [Thu, 27 Jun 2013 17:49:31 +0000 (19:49 +0200)]
gdbstub: Change gdb_handlesig() argument to CPUState

Prepares for changing GDBState::c_cpu to CPUState.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agogdbstub: Change syscall callback argument to CPUState
Andreas Färber [Thu, 27 Jun 2013 15:45:01 +0000 (17:45 +0200)]
gdbstub: Change syscall callback argument to CPUState

Callback implementations were specific to arm and m68k, so can easily
cast to ARMCPU and M68kCPU respectively.

Prepares for changing GDBState::c_cpu to CPUState.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agokvm: Change kvm_{insert,remove}_breakpoint() argument to CPUState
Andreas Färber [Thu, 27 Jun 2013 15:12:06 +0000 (17:12 +0200)]
kvm: Change kvm_{insert,remove}_breakpoint() argument to CPUState

CPUArchState is no longer directly used since converting CPU loops to
CPUState.

Prepares for changing GDBState::c_cpu to CPUState.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Change cpu_single_step() argument to CPUState
Andreas Färber [Mon, 24 Jun 2013 16:41:06 +0000 (18:41 +0200)]
cpu: Change cpu_single_step() argument to CPUState

Use CPUState::env_ptr for now.

Needed for GdbState::c_cpu.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agogdbstub: Update gdb_handlesig() and gdb_signalled() Coding Style
Andreas Färber [Mon, 24 Jun 2013 17:20:57 +0000 (19:20 +0200)]
gdbstub: Update gdb_handlesig() and gdb_signalled() Coding Style

In particular reindent to 4 instead of 2 spaces.

Prepares for changing cpu_single_step() argument in gdb_handlesig().

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Move singlestep_enabled field from CPU_COMMON to CPUState
Andreas Färber [Fri, 21 Jun 2013 18:20:45 +0000 (20:20 +0200)]
cpu: Move singlestep_enabled field from CPU_COMMON to CPUState

Prepares for changing cpu_single_step() argument to CPUState.

Acked-by: Michael Walle <michael@walle.cc> (for lm32)
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agotarget-alpha: Copy implver to DisasContext
Richard Henderson [Mon, 1 Jul 2013 20:19:30 +0000 (13:19 -0700)]
target-alpha: Copy implver to DisasContext

Which allows removing env from DisasContext.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agotarget-alpha: Copy singlestep_enabled to DisasContext
Richard Henderson [Mon, 1 Jul 2013 20:19:29 +0000 (13:19 -0700)]
target-alpha: Copy singlestep_enabled to DisasContext

Prepare for removing env from DisasContext.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Introduce CPUClass::synchronize_from_tb() for cpu_pc_from_tb()
Andreas Färber [Fri, 28 Jun 2013 17:31:32 +0000 (19:31 +0200)]
cpu: Introduce CPUClass::synchronize_from_tb() for cpu_pc_from_tb()

Where no extra implementation is needed, fall back to CPUClass::set_pc().

Acked-by: Michael Walle <michael@walle.cc> (for lm32)
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agotarget-unicore32: Implement CPUClass::set_pc()
Andreas Färber [Fri, 28 Jun 2013 17:41:07 +0000 (19:41 +0200)]
target-unicore32: Implement CPUClass::set_pc()

This adds support for GDB's c addr (Continue) and s addr (Single Step).

Prepares for dropping cpu_pc_from_tb().

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agotarget-moxie: Implement CPUClass::set_pc()
Andreas Färber [Fri, 28 Jun 2013 18:43:26 +0000 (20:43 +0200)]
target-moxie: Implement CPUClass::set_pc()

This adds support for GDB's c addr (Continue) and s addr (Single Step).

Prepares for dropping cpu_pc_from_tb().

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agotarget-m68k: Implement CPUClass::set_pc()
Andreas Färber [Fri, 28 Jun 2013 18:35:01 +0000 (20:35 +0200)]
target-m68k: Implement CPUClass::set_pc()

This adds support for GDB's c addr (Continue) and s addr (Single Step).

Prepares for dropping cpu_pc_from_tb().

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Introduce CPUClass::set_pc() for gdb_set_cpu_pc()
Andreas Färber [Fri, 21 Jun 2013 17:09:18 +0000 (19:09 +0200)]
cpu: Introduce CPUClass::set_pc() for gdb_set_cpu_pc()

This moves setting the Program Counter from gdbstub into target code.
Use vaddr type as upper-bound replacement for target_ulong.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoHACKING: Document vaddr type usage
Peter Maydell [Mon, 22 Jul 2013 16:34:35 +0000 (18:34 +0200)]
HACKING: Document vaddr type usage

Also extend documentation of target_ulong and abi_ulong.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Introduce vaddr type
Andreas Färber [Sat, 6 Jul 2013 01:14:52 +0000 (03:14 +0200)]
cpu: Introduce vaddr type

vaddr is to target_ulong what uintmax_t is to unsigned int.

Its purpose is to allow turning per-target functions with target_ulong
arguments into CPUClass hooks.

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agogdbstub: Change GDBState::query_cpu to CPUState
Andreas Färber [Thu, 27 Jun 2013 11:44:40 +0000 (13:44 +0200)]
gdbstub: Change GDBState::query_cpu to CPUState

Since first_cpu/next_cpu are CPUState, CPUArchState is no longer needed.

This resolves a NULL pointer dereference of query_cpu, introduced
with commit 182735efaf956ccab50b6d74a4fed163e0f35660 and reported by
TeLeMan and Max Filippov.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoisa-bus: Drop isabus_bridge_init() since it does nothing
Hu Tao [Mon, 1 Jul 2013 10:18:42 +0000 (18:18 +0800)]
isa-bus: Drop isabus_bridge_init() since it does nothing

This works since commit 4ce5dae88ecf2bafa0cd663de7e923728b1b3672.

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Edited]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoioapic: Use QOM realize for ioapic
Hu Tao [Mon, 1 Jul 2013 10:18:41 +0000 (18:18 +0800)]
ioapic: Use QOM realize for ioapic

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Tweaked error message]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agokvmvapic: Use QOM realize
Hu Tao [Mon, 1 Jul 2013 10:18:40 +0000 (18:18 +0800)]
kvmvapic: Use QOM realize

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed variable]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agokvm/clock: Use QOM realize for kvmclock
Hu Tao [Mon, 1 Jul 2013 10:18:39 +0000 (18:18 +0800)]
kvm/clock: Use QOM realize for kvmclock

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agohpet: Use QOM realize for hpet
Hu Tao [Mon, 1 Jul 2013 10:18:37 +0000 (18:18 +0800)]
hpet: Use QOM realize for hpet

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Avoided SYS_BUS_DEVICE() in loop]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoscsi: Improve error propagation for scsi_bus_legacy_handle_cmdline()
Andreas Färber [Sun, 21 Jul 2013 10:16:34 +0000 (12:16 +0200)]
scsi: Improve error propagation for scsi_bus_legacy_handle_cmdline()

Let scsi_bus_legacy_add_drive() and scsi_bus_legacy_handle_cmdline()
return an Error**. Prepare qdev initfns for QOM realize error model.

Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agomegasas: Legacy command line handling fix
Andreas Färber [Sun, 21 Jul 2013 10:20:15 +0000 (12:20 +0200)]
megasas: Legacy command line handling fix

Only apply legacy command line handling when the device has not been
hot-plugged. Propagate failure of legacy command line handling.

Cc: qemu-stable@nongnu.org
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoscsi/esp: Use QOM realize for scsi esp
Hu Tao [Mon, 1 Jul 2013 10:18:35 +0000 (18:18 +0800)]
scsi/esp: Use QOM realize for scsi esp

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Drop sysbus_esp_init()]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agofw_cfg: Use QOM realize for fw_cfg
Hu Tao [Mon, 1 Jul 2013 10:18:33 +0000 (18:18 +0800)]
fw_cfg: Use QOM realize for fw_cfg

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Moved sysbus_init_mmio() to instance_init, renamed variable]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoahci: Use QOM realize for ahci
Hu Tao [Mon, 1 Jul 2013 10:18:31 +0000 (18:18 +0800)]
ahci: Use QOM realize for ahci

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Avoided repeated SYS_BUS_DEVICE() casts]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agopflash_cfi02: Use QOM realize for pflash_cfi02
Hu Tao [Mon, 1 Jul 2013 10:18:29 +0000 (18:18 +0800)]
pflash_cfi02: Use QOM realize for pflash_cfi02

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agopflash_cfi01: Use QOM realize for pflash_cfi01
Hu Tao [Mon, 1 Jul 2013 10:18:27 +0000 (18:18 +0800)]
pflash_cfi01: Use QOM realize for pflash_cfi01

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed argument]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agofdc: Improve error propagation for QOM realize
Andreas Färber [Wed, 17 Jul 2013 12:14:41 +0000 (14:14 +0200)]
fdc: Improve error propagation for QOM realize

Rename fdctrl_init_common() to fdctrl_realize_common() and let
fdctrl_connect_drives() propagate an Error through it.

Reviewed-by: Hu Tao <hutao@cn.fujitsu.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agofdc: Use QOM realize for fdc
Hu Tao [Mon, 1 Jul 2013 10:18:25 +0000 (18:18 +0800)]
fdc: Use QOM realize for fdc

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed SysBusDevice variable]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agokvm/clock: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:38 +0000 (18:18 +0800)]
kvm/clock: QOM'ify some more

Introduce type constant and avoid FROM_SYSBUS().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agohpet: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:36 +0000 (18:18 +0800)]
hpet: QOM'ify some more

Introduce type constant, avoid FROM_SYSBUS().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field and renamed variable]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoscsi/esp: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:34 +0000 (18:18 +0800)]
scsi/esp: QOM'ify some more

Introduce type constant and avoid DO_UPCAST().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agofwcfg: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:32 +0000 (18:18 +0800)]
fwcfg: QOM'ify some more

Use type constant if possible and avoid DO_UPCAST().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoahci: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:30 +0000 (18:18 +0800)]
ahci: QOM'ify some more

Introduce type constant and avoid DO_UPCAST().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agopflash-cfi02: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:28 +0000 (18:18 +0800)]
pflash-cfi02: QOM'ify some more

Introduce type constant and replace FROM_SYSBUS().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agopflash-cfi01: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:26 +0000 (18:18 +0800)]
pflash-cfi01: QOM'ify some more

Introduce type constant and replace FROM_SYSBUS().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agofdc: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:24 +0000 (18:18 +0800)]
fdc: QOM'ify some more

Introduce type constant and avoid DO_UPCAST(), container_of(),
and use DEVICE() to avoid accessing parent qdev directly.

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Renamed parent field and avoided repeated SYS_BUS_DEVICE() casts]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoq35: Use QOM realize for q35 host bridge
Hu Tao [Mon, 1 Jul 2013 10:18:23 +0000 (18:18 +0800)]
q35: Use QOM realize for q35 host bridge

And split off MemoryRegion initialization into instance_init.

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoq35: Use type-safe cast instead of direct access of parent dev
Hu Tao [Mon, 1 Jul 2013 10:18:22 +0000 (18:18 +0800)]
q35: Use type-safe cast instead of direct access of parent dev

And remove variables if possible.

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Converted remaining access and renamed to parent_obj]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoi440fx-pcihost: Use QOM realize for i440fx-pcihost
Hu Tao [Mon, 1 Jul 2013 10:18:20 +0000 (18:18 +0800)]
i440fx-pcihost: Use QOM realize for i440fx-pcihost

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoi440fx: Use type-safe cast instead of direct access of parent dev
Hu Tao [Mon, 1 Jul 2013 10:18:21 +0000 (18:18 +0800)]
i440fx: Use type-safe cast instead of direct access of parent dev

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Converted remaining accesses and renamed to parent_obj]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoohci: Use QOM realize for OHCI
Hu Tao [Mon, 1 Jul 2013 10:18:19 +0000 (18:18 +0800)]
ohci: Use QOM realize for OHCI

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoohci: QOM'ify some more
Hu Tao [Mon, 1 Jul 2013 10:18:18 +0000 (18:18 +0800)]
ohci: QOM'ify some more

Introduce type constant and avoid DO_UPCAST().

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Avoid remaining OHCIPCIState::pci_dev uses, rename parent fields]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agosysbus: Document SysBusDeviceClass::init and realize semantics
Hu Tao [Mon, 1 Jul 2013 10:18:17 +0000 (18:18 +0800)]
sysbus: Document SysBusDeviceClass::init and realize semantics

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
[AF: Syntax and wording changes]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoxen/xen_platform: QOM parent field cleanup
Andreas Färber [Sun, 30 Jun 2013 13:20:05 +0000 (15:20 +0200)]
xen/xen_platform: QOM parent field cleanup

Replace direct uses of PCIXenPlatformState::pci_dev field with QOM casts
and rename it to parent_obj.

Acked-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoxen/xen_platform: QOM casting sweep
Peter Crosthwaite [Mon, 24 Jun 2013 07:00:14 +0000 (17:00 +1000)]
xen/xen_platform: QOM casting sweep

Define and use standard QOM cast macro. Remove usages of DO_UPCAST()
and direct -> style upcasting.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
[AF: Dropped opaque casts]
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agomisc/ivshmem: QOM parent field cleanup
Andreas Färber [Sun, 30 Jun 2013 13:15:15 +0000 (15:15 +0200)]
misc/ivshmem: QOM parent field cleanup

Replace direct uses of IVShmemState::dev with QOM casts and rename it to
parent_obj.

Acked-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agomisc/ivshmem: QOM Upcast Sweep
Peter Crosthwaite [Mon, 24 Jun 2013 06:59:29 +0000 (16:59 +1000)]
misc/ivshmem: QOM Upcast Sweep

Define and use standard QOM cast macro. Remove usages of DO_UPCAST()
and direct -> style upcasting.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
[AF: Simplified casts and converted two more DO_UPCAST()s]
Signed-off-by: Andreas Färber <afaerber@suse.de>