mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
* Linux header upgrade (Peter)
* firmware.json definition (Laszlo) * IPMI migration fix (Corey) * QOM improvements (Alexey, Philippe, me) * Memory API cleanups (Jay, me, Tristan, Peter) * WHPX fixes and improvements (Lucian) * Chardev fixes (Marc-André) * IOMMU documentation improvements (Peter) * Coverity fixes (Peter, Philippe) * Include cleanup (Philippe) * -clock deprecation (Thomas) * Disable -sandbox unless CONFIG_SECCOMP (Yi Min Zhao) * Configurability improvements (me) -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAlsRd2UUHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroPG8Qf+M85E8xAQ/bhs90tAymuXkUUsTIFF uI76K8eM0K3b2B+vGckxh1gyN5O3GQaMEDL7vITfqbX+EOH5U2lv8V9JRzf2YvbG Zahjd4pOCYzR0b9JENA1r5U/J8RntNrBNXlKmGTaXOaw9VCXlZyvgVd9CE3z/e2M 0jSXMBdF4LB3UzECI24Va8ejJxdSiJcqXA2j3J+pJFxI698i+Z5eBBKnRdo5TVe5 jl0TYEsbS6CLwhmbLXmt3Qhq+ocZn7YH9X3HjkHEdqDUeYWyT9jwUpa7OHFrIEKC ikWm9er4YDzG/vOC0dqwKbShFzuTpTJuMz5Mj4v8JjM/iQQFrp4afjcW2g== =RS/B -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging * Linux header upgrade (Peter) * firmware.json definition (Laszlo) * IPMI migration fix (Corey) * QOM improvements (Alexey, Philippe, me) * Memory API cleanups (Jay, me, Tristan, Peter) * WHPX fixes and improvements (Lucian) * Chardev fixes (Marc-André) * IOMMU documentation improvements (Peter) * Coverity fixes (Peter, Philippe) * Include cleanup (Philippe) * -clock deprecation (Thomas) * Disable -sandbox unless CONFIG_SECCOMP (Yi Min Zhao) * Configurability improvements (me) # gpg: Signature made Fri 01 Jun 2018 17:42:13 BST # gpg: using RSA key BFFBD25F78C7AE83 # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini/tags/for-upstream: (56 commits) hw: make virtio devices configurable via default-configs/ hw: allow compiling out SCSI memory: Make operations using MemoryRegionIoeventfd struct pass by pointer. char: Remove unwanted crlf conversion qdev: Remove DeviceClass::init() and ::exit() qdev: Simplify the SysBusDeviceClass::init path hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init hw/i2c/smbus: Use DeviceClass::realize instead of SMBusDeviceClass::init target/i386/kvm.c: Remove compatibility shim for KVM_HINTS_REALTIME Update Linux headers to 4.17-rc6 target/i386/kvm.c: Handle renaming of KVM_HINTS_DEDICATED scripts/update-linux-headers: Handle kernel license no longer being one file scripts/update-linux-headers: Handle __aligned_u64 virtio-gpu-3d: Define VIRTIO_GPU_CAPSET_VIRGL2 elsewhere gdbstub: Prevent fd leakage docs/interop: add "firmware.json" ipmi: Use proper struct reference for KCS vmstate vmstate: Add a VSTRUCT type tcg: remove softfloat from --disable-tcg builds qemu-options: Mark the non-functional -clock option as deprecated ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
afd76ffba9
215 changed files with 1713 additions and 901 deletions
47
memory.c
47
memory.c
|
|
@ -19,7 +19,6 @@
|
|||
#include "cpu.h"
|
||||
#include "exec/memory.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "exec/ioport.h"
|
||||
#include "qapi/visitor.h"
|
||||
#include "qemu/bitops.h"
|
||||
#include "qemu/error-report.h"
|
||||
|
|
@ -173,38 +172,38 @@ struct MemoryRegionIoeventfd {
|
|||
EventNotifier *e;
|
||||
};
|
||||
|
||||
static bool memory_region_ioeventfd_before(MemoryRegionIoeventfd a,
|
||||
MemoryRegionIoeventfd b)
|
||||
static bool memory_region_ioeventfd_before(MemoryRegionIoeventfd *a,
|
||||
MemoryRegionIoeventfd *b)
|
||||
{
|
||||
if (int128_lt(a.addr.start, b.addr.start)) {
|
||||
if (int128_lt(a->addr.start, b->addr.start)) {
|
||||
return true;
|
||||
} else if (int128_gt(a.addr.start, b.addr.start)) {
|
||||
} else if (int128_gt(a->addr.start, b->addr.start)) {
|
||||
return false;
|
||||
} else if (int128_lt(a.addr.size, b.addr.size)) {
|
||||
} else if (int128_lt(a->addr.size, b->addr.size)) {
|
||||
return true;
|
||||
} else if (int128_gt(a.addr.size, b.addr.size)) {
|
||||
} else if (int128_gt(a->addr.size, b->addr.size)) {
|
||||
return false;
|
||||
} else if (a.match_data < b.match_data) {
|
||||
} else if (a->match_data < b->match_data) {
|
||||
return true;
|
||||
} else if (a.match_data > b.match_data) {
|
||||
} else if (a->match_data > b->match_data) {
|
||||
return false;
|
||||
} else if (a.match_data) {
|
||||
if (a.data < b.data) {
|
||||
} else if (a->match_data) {
|
||||
if (a->data < b->data) {
|
||||
return true;
|
||||
} else if (a.data > b.data) {
|
||||
} else if (a->data > b->data) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (a.e < b.e) {
|
||||
if (a->e < b->e) {
|
||||
return true;
|
||||
} else if (a.e > b.e) {
|
||||
} else if (a->e > b->e) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool memory_region_ioeventfd_equal(MemoryRegionIoeventfd a,
|
||||
MemoryRegionIoeventfd b)
|
||||
static bool memory_region_ioeventfd_equal(MemoryRegionIoeventfd *a,
|
||||
MemoryRegionIoeventfd *b)
|
||||
{
|
||||
return !memory_region_ioeventfd_before(a, b)
|
||||
&& !memory_region_ioeventfd_before(b, a);
|
||||
|
|
@ -220,8 +219,6 @@ struct FlatRange {
|
|||
bool readonly;
|
||||
};
|
||||
|
||||
typedef struct AddressSpaceOps AddressSpaceOps;
|
||||
|
||||
#define FOR_EACH_FLAT_RANGE(var, view) \
|
||||
for (var = (view)->ranges; var < (view)->ranges + (view)->nr; ++var)
|
||||
|
||||
|
|
@ -791,8 +788,8 @@ static void address_space_add_del_ioeventfds(AddressSpace *as,
|
|||
while (iold < fds_old_nb || inew < fds_new_nb) {
|
||||
if (iold < fds_old_nb
|
||||
&& (inew == fds_new_nb
|
||||
|| memory_region_ioeventfd_before(fds_old[iold],
|
||||
fds_new[inew]))) {
|
||||
|| memory_region_ioeventfd_before(&fds_old[iold],
|
||||
&fds_new[inew]))) {
|
||||
fd = &fds_old[iold];
|
||||
section = (MemoryRegionSection) {
|
||||
.fv = address_space_to_flatview(as),
|
||||
|
|
@ -804,8 +801,8 @@ static void address_space_add_del_ioeventfds(AddressSpace *as,
|
|||
++iold;
|
||||
} else if (inew < fds_new_nb
|
||||
&& (iold == fds_old_nb
|
||||
|| memory_region_ioeventfd_before(fds_new[inew],
|
||||
fds_old[iold]))) {
|
||||
|| memory_region_ioeventfd_before(&fds_new[inew],
|
||||
&fds_old[iold]))) {
|
||||
fd = &fds_new[inew];
|
||||
section = (MemoryRegionSection) {
|
||||
.fv = address_space_to_flatview(as),
|
||||
|
|
@ -1445,7 +1442,7 @@ static bool memory_region_dispatch_write_eventfds(MemoryRegion *mr,
|
|||
ioeventfd.match_data = mr->ioeventfds[i].match_data;
|
||||
ioeventfd.e = mr->ioeventfds[i].e;
|
||||
|
||||
if (memory_region_ioeventfd_equal(ioeventfd, mr->ioeventfds[i])) {
|
||||
if (memory_region_ioeventfd_equal(&ioeventfd, &mr->ioeventfds[i])) {
|
||||
event_notifier_set(ioeventfd.e);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -2215,7 +2212,7 @@ void memory_region_add_eventfd(MemoryRegion *mr,
|
|||
}
|
||||
memory_region_transaction_begin();
|
||||
for (i = 0; i < mr->ioeventfd_nb; ++i) {
|
||||
if (memory_region_ioeventfd_before(mrfd, mr->ioeventfds[i])) {
|
||||
if (memory_region_ioeventfd_before(&mrfd, &mr->ioeventfds[i])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -2250,7 +2247,7 @@ void memory_region_del_eventfd(MemoryRegion *mr,
|
|||
}
|
||||
memory_region_transaction_begin();
|
||||
for (i = 0; i < mr->ioeventfd_nb; ++i) {
|
||||
if (memory_region_ioeventfd_equal(mrfd, mr->ioeventfds[i])) {
|
||||
if (memory_region_ioeventfd_equal(&mrfd, &mr->ioeventfds[i])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue