[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 08/14] Switch non-CPU callers from ld/st*_phys t
From: |
Edgar E. Iglesias |
Subject: |
Re: [Qemu-devel] [PATCH 08/14] Switch non-CPU callers from ld/st*_phys to address_space_ld/st* |
Date: |
Thu, 9 Apr 2015 20:44:47 +1000 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Apr 07, 2015 at 09:09:54PM +0100, Peter Maydell wrote:
> Switch all the uses of ld/st*_phys to address_space_ld/st*,
> except for those cases where the address space is the CPU's
> (ie cs->as). This was done with the following script which
> generates a Coccinelle patch.
>
> A few over-80-columns lines in the result were rewrapped by
> hand where Coccinelle failed to do the wrapping automatically,
> as well as one location where it didn't put a line-continuation
> '\' when wrapping lines on a change made to a match inside
> a macro definition.
>
> ===begin===
> #!/bin/sh -e
> # Usage:
> # ./ldst-phys.spatch.sh > ldst-phys.spatch
> # spatch -sp_file ldst-phys.spatch -dir . | sed -e '/^+/s/\t/ /g' >
> out.patch
> # patch -p1 < out.patch
>
> for FN in ub uw_le uw_be l_le l_be q_le q_be uw l q; do
> cat <<EOF
> @ cpu_matches_ld_${FN} @
> expression E1,E2;
> identifier as;
> @@
>
> ld${FN}_phys(E1->as,E2)
>
> @ other_matches_ld_${FN} depends on !cpu_matches_ld_${FN} @
> expression E1,E2;
> @@
>
> -ld${FN}_phys(E1,E2)
> +address_space_ld${FN}(E1,E2, MEMTXATTRS_UNSPECIFIED, NULL)
>
> EOF
>
> done
>
> for FN in b w_le w_be l_le l_be q_le q_be w l q; do
> cat <<EOF
> @ cpu_matches_st_${FN} @
> expression E1,E2,E3;
> identifier as;
> @@
>
> st${FN}_phys(E1->as,E2,E3)
>
> @ other_matches_st_${FN} depends on !cpu_matches_st_${FN} @
> expression E1,E2,E3;
> @@
>
> -st${FN}_phys(E1,E2,E3)
> +address_space_st${FN}(E1,E2,E3, MEMTXATTRS_UNSPECIFIED, NULL)
>
> EOF
>
> done
> ===endit===
Cool stuff!
Reviewed-by: Edgar E. Iglesias <address@hidden>
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> exec.c | 18 +++++---
> hw/alpha/dp264.c | 9 ++--
> hw/alpha/typhoon.c | 3 +-
> hw/arm/boot.c | 6 ++-
> hw/arm/highbank.c | 12 ++++--
> hw/dma/pl080.c | 20 +++++++--
> hw/dma/sun4m_iommu.c | 3 +-
> hw/i386/intel_iommu.c | 3 +-
> hw/pci-host/apb.c | 3 +-
> hw/pci/msi.c | 3 +-
> hw/pci/msix.c | 3 +-
> hw/s390x/css.c | 19 ++++++---
> hw/s390x/s390-pci-bus.c | 9 ++--
> hw/s390x/s390-virtio-bus.c | 73 +++++++++++++++++++++-----------
> hw/s390x/s390-virtio.c | 4 +-
> hw/s390x/virtio-ccw.c | 87
> +++++++++++++++++++++++++++------------
> hw/sh4/r2d.c | 6 ++-
> hw/timer/hpet.c | 5 ++-
> monitor.c | 3 +-
> target-i386/arch_memory_mapping.c | 15 +++----
> 20 files changed, 207 insertions(+), 97 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 013032a..a0d18ee 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1910,9 +1910,12 @@ static uint64_t watch_mem_read(void *opaque, hwaddr
> addr,
> {
> check_watchpoint(addr & ~TARGET_PAGE_MASK, size, BP_MEM_READ);
> switch (size) {
> - case 1: return ldub_phys(&address_space_memory, addr);
> - case 2: return lduw_phys(&address_space_memory, addr);
> - case 4: return ldl_phys(&address_space_memory, addr);
> + case 1: return address_space_ldub(&address_space_memory, addr,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> + case 2: return address_space_lduw(&address_space_memory, addr,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> + case 4: return address_space_ldl(&address_space_memory, addr,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> default: abort();
> }
> }
> @@ -1923,13 +1926,16 @@ static void watch_mem_write(void *opaque, hwaddr addr,
> check_watchpoint(addr & ~TARGET_PAGE_MASK, size, BP_MEM_WRITE);
> switch (size) {
> case 1:
> - stb_phys(&address_space_memory, addr, val);
> + address_space_stb(&address_space_memory, addr, val,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> break;
> case 2:
> - stw_phys(&address_space_memory, addr, val);
> + address_space_stw(&address_space_memory, addr, val,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> break;
> case 4:
> - stl_phys(&address_space_memory, addr, val);
> + address_space_stl(&address_space_memory, addr, val,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> break;
> default: abort();
> }
> diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
> index e82d61d..9fe7e8b 100644
> --- a/hw/alpha/dp264.c
> +++ b/hw/alpha/dp264.c
> @@ -157,9 +157,12 @@ static void clipper_init(MachineState *machine)
> load_image_targphys(initrd_filename, initrd_base,
> ram_size - initrd_base);
>
> - stq_phys(&address_space_memory,
> - param_offset + 0x100, initrd_base +
> 0xfffffc0000000000ULL);
> - stq_phys(&address_space_memory, param_offset + 0x108,
> initrd_size);
> + address_space_stq(&address_space_memory, param_offset + 0x100,
> + initrd_base + 0xfffffc0000000000ULL,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> + address_space_stq(&address_space_memory, param_offset + 0x108,
> + initrd_size, MEMTXATTRS_UNSPECIFIED, NULL);
> }
> }
> }
> diff --git a/hw/alpha/typhoon.c b/hw/alpha/typhoon.c
> index 62af946..e6ac993 100644
> --- a/hw/alpha/typhoon.c
> +++ b/hw/alpha/typhoon.c
> @@ -613,7 +613,8 @@ static bool make_iommu_tlbe(hwaddr taddr, hwaddr mask,
> IOMMUTLBEntry *ret)
> translation, given the address of the PTE. */
> static bool pte_translate(hwaddr pte_addr, IOMMUTLBEntry *ret)
> {
> - uint64_t pte = ldq_phys(&address_space_memory, pte_addr);
> + uint64_t pte = address_space_ldq(&address_space_memory, pte_addr,
> + MEMTXATTRS_UNSPECIFIED, NULL);
>
> /* Check valid bit. */
> if ((pte & 1) == 0) {
> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
> index a48d1b2..fa69503 100644
> --- a/hw/arm/boot.c
> +++ b/hw/arm/boot.c
> @@ -170,7 +170,8 @@ static void default_reset_secondary(ARMCPU *cpu,
> {
> CPUARMState *env = &cpu->env;
>
> - stl_phys_notdirty(&address_space_memory, info->smp_bootreg_addr, 0);
> + address_space_stl_notdirty(&address_space_memory, info->smp_bootreg_addr,
> + 0, MEMTXATTRS_UNSPECIFIED, NULL);
> env->regs[15] = info->smp_loader_start;
> }
>
> @@ -180,7 +181,8 @@ static inline bool have_dtb(const struct arm_boot_info
> *info)
> }
>
> #define WRITE_WORD(p, value) do { \
> - stl_phys_notdirty(&address_space_memory, p, value); \
> + address_space_stl_notdirty(&address_space_memory, p, value, \
> + MEMTXATTRS_UNSPECIFIED, NULL); \
> p += 4; \
> } while (0)
>
> diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
> index 07cb4e0..00167c9 100644
> --- a/hw/arm/highbank.c
> +++ b/hw/arm/highbank.c
> @@ -69,11 +69,17 @@ static void hb_reset_secondary(ARMCPU *cpu, const struct
> arm_boot_info *info)
>
> switch (info->nb_cpus) {
> case 4:
> - stl_phys_notdirty(&address_space_memory, SMP_BOOT_REG + 0x30, 0);
> + address_space_stl_notdirty(&address_space_memory,
> + SMP_BOOT_REG + 0x30, 0,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> case 3:
> - stl_phys_notdirty(&address_space_memory, SMP_BOOT_REG + 0x20, 0);
> + address_space_stl_notdirty(&address_space_memory,
> + SMP_BOOT_REG + 0x20, 0,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> case 2:
> - stl_phys_notdirty(&address_space_memory, SMP_BOOT_REG + 0x10, 0);
> + address_space_stl_notdirty(&address_space_memory,
> + SMP_BOOT_REG + 0x10, 0,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> env->regs[15] = SMP_BOOT_ADDR;
> break;
> default:
> diff --git a/hw/dma/pl080.c b/hw/dma/pl080.c
> index 741dd20..b89b474 100644
> --- a/hw/dma/pl080.c
> +++ b/hw/dma/pl080.c
> @@ -205,10 +205,22 @@ again:
> if (size == 0) {
> /* Transfer complete. */
> if (ch->lli) {
> - ch->src = ldl_le_phys(&address_space_memory, ch->lli);
> - ch->dest = ldl_le_phys(&address_space_memory, ch->lli +
> 4);
> - ch->ctrl = ldl_le_phys(&address_space_memory, ch->lli +
> 12);
> - ch->lli = ldl_le_phys(&address_space_memory, ch->lli +
> 8);
> + ch->src = address_space_ldl_le(&address_space_memory,
> + ch->lli,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> + ch->dest = address_space_ldl_le(&address_space_memory,
> + ch->lli + 4,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> + ch->ctrl = address_space_ldl_le(&address_space_memory,
> + ch->lli + 12,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> + ch->lli = address_space_ldl_le(&address_space_memory,
> + ch->lli + 8,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> } else {
> ch->conf &= ~PL080_CCONF_E;
> }
> diff --git a/hw/dma/sun4m_iommu.c b/hw/dma/sun4m_iommu.c
> index ec7c2ef..9a488bc 100644
> --- a/hw/dma/sun4m_iommu.c
> +++ b/hw/dma/sun4m_iommu.c
> @@ -263,7 +263,8 @@ static uint32_t iommu_page_get_flags(IOMMUState *s,
> hwaddr addr)
> iopte = s->regs[IOMMU_BASE] << 4;
> addr &= ~s->iostart;
> iopte += (addr >> (IOMMU_PAGE_SHIFT - 2)) & ~3;
> - ret = ldl_be_phys(&address_space_memory, iopte);
> + ret = address_space_ldl_be(&address_space_memory, iopte,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> trace_sun4m_iommu_page_get_flags(pa, iopte, ret);
> return ret;
> }
> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> index 7da70ff..08055a8 100644
> --- a/hw/i386/intel_iommu.c
> +++ b/hw/i386/intel_iommu.c
> @@ -246,7 +246,8 @@ static void vtd_generate_interrupt(IntelIOMMUState *s,
> hwaddr mesg_addr_reg,
> data = vtd_get_long_raw(s, mesg_data_reg);
>
> VTD_DPRINTF(FLOG, "msi: addr 0x%"PRIx64 " data 0x%"PRIx32, addr, data);
> - stl_le_phys(&address_space_memory, addr, data);
> + address_space_stl_le(&address_space_memory, addr, data,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> }
>
> /* Generate a fault event to software via MSI if conditions are met.
> diff --git a/hw/pci-host/apb.c b/hw/pci-host/apb.c
> index 312fa70..599768e 100644
> --- a/hw/pci-host/apb.c
> +++ b/hw/pci-host/apb.c
> @@ -289,7 +289,8 @@ static IOMMUTLBEntry pbm_translate_iommu(MemoryRegion
> *iommu, hwaddr addr,
> }
> }
>
> - tte = ldq_be_phys(&address_space_memory, baseaddr + offset);
> + tte = address_space_ldq_be(&address_space_memory, baseaddr + offset,
> + MEMTXATTRS_UNSPECIFIED, NULL);
>
> if (!(tte & IOMMU_TTE_DATA_V)) {
> /* Invalid mapping */
> diff --git a/hw/pci/msi.c b/hw/pci/msi.c
> index 52d2313..916e1a1 100644
> --- a/hw/pci/msi.c
> +++ b/hw/pci/msi.c
> @@ -291,7 +291,8 @@ void msi_notify(PCIDevice *dev, unsigned int vector)
> "notify vector 0x%x"
> " address: 0x%"PRIx64" data: 0x%"PRIx32"\n",
> vector, msg.address, msg.data);
> - stl_le_phys(&dev->bus_master_as, msg.address, msg.data);
> + address_space_stl_le(&dev->bus_master_as, msg.address, msg.data,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> }
>
> /* Normally called by pci_default_write_config(). */
> diff --git a/hw/pci/msix.c b/hw/pci/msix.c
> index 24de260..031eaab 100644
> --- a/hw/pci/msix.c
> +++ b/hw/pci/msix.c
> @@ -435,7 +435,8 @@ void msix_notify(PCIDevice *dev, unsigned vector)
>
> msg = msix_get_message(dev, vector);
>
> - stl_le_phys(&dev->bus_master_as, msg.address, msg.data);
> + address_space_stl_le(&dev->bus_master_as, msg.address, msg.data,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> }
>
> void msix_reset(PCIDevice *dev)
> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> index 9a13b00..5561d80 100644
> --- a/hw/s390x/css.c
> +++ b/hw/s390x/css.c
> @@ -745,20 +745,27 @@ static void css_update_chnmon(SubchDev *sch)
> /* Format 1, per-subchannel area. */
> uint32_t count;
>
> - count = ldl_phys(&address_space_memory, sch->curr_status.mba);
> + count = address_space_ldl(&address_space_memory,
> + sch->curr_status.mba,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> count++;
> - stl_phys(&address_space_memory, sch->curr_status.mba, count);
> + address_space_stl(&address_space_memory, sch->curr_status.mba, count,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> } else {
> /* Format 0, global area. */
> uint32_t offset;
> uint16_t count;
>
> offset = sch->curr_status.pmcw.mbi << 5;
> - count = lduw_phys(&address_space_memory,
> - channel_subsys->chnmon_area + offset);
> + count = address_space_lduw(&address_space_memory,
> + channel_subsys->chnmon_area + offset,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> count++;
> - stw_phys(&address_space_memory,
> - channel_subsys->chnmon_area + offset, count);
> + address_space_stw(&address_space_memory,
> + channel_subsys->chnmon_area + offset, count,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> }
> }
>
> diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
> index 3c086f6..560b66a 100644
> --- a/hw/s390x/s390-pci-bus.c
> +++ b/hw/s390x/s390-pci-bus.c
> @@ -278,7 +278,8 @@ static uint64_t s390_guest_io_table_walk(uint64_t
> guest_iota,
> px = calc_px(guest_dma_address);
>
> sto_a = guest_iota + rtx * sizeof(uint64_t);
> - sto = ldq_phys(&address_space_memory, sto_a);
> + sto = address_space_ldq(&address_space_memory, sto_a,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> sto = get_rt_sto(sto);
> if (!sto) {
> pte = 0;
> @@ -286,7 +287,8 @@ static uint64_t s390_guest_io_table_walk(uint64_t
> guest_iota,
> }
>
> pto_a = sto + sx * sizeof(uint64_t);
> - pto = ldq_phys(&address_space_memory, pto_a);
> + pto = address_space_ldq(&address_space_memory, pto_a,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> pto = get_st_pto(pto);
> if (!pto) {
> pte = 0;
> @@ -294,7 +296,8 @@ static uint64_t s390_guest_io_table_walk(uint64_t
> guest_iota,
> }
>
> px_a = pto + px * sizeof(uint64_t);
> - pte = ldq_phys(&address_space_memory, px_a);
> + pte = address_space_ldq(&address_space_memory, px_a,
> + MEMTXATTRS_UNSPECIFIED, NULL);
>
> out:
> return pte;
> diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c
> index 047c963..0f93a64 100644
> --- a/hw/s390x/s390-virtio-bus.c
> +++ b/hw/s390x/s390-virtio-bus.c
> @@ -75,10 +75,12 @@ void s390_virtio_reset_idx(VirtIOS390Device *dev)
> for (i = 0; i < num_vq; i++) {
> idx_addr = virtio_queue_get_avail_addr(dev->vdev, i) +
> VIRTIO_VRING_AVAIL_IDX_OFFS;
> - stw_phys(&address_space_memory, idx_addr, 0);
> + address_space_stw(&address_space_memory, idx_addr, 0,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> idx_addr = virtio_queue_get_used_addr(dev->vdev, i) +
> VIRTIO_VRING_USED_IDX_OFFS;
> - stw_phys(&address_space_memory, idx_addr, 0);
> + address_space_stw(&address_space_memory, idx_addr, 0,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> }
> }
>
> @@ -336,7 +338,8 @@ static uint64_t
> s390_virtio_device_vq_token(VirtIOS390Device *dev, int vq)
> (vq * VIRTIO_VQCONFIG_LEN) +
> VIRTIO_VQCONFIG_OFFS_TOKEN;
>
> - return ldq_be_phys(&address_space_memory, token_off);
> + return address_space_ldq_be(&address_space_memory, token_off,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> }
>
> static ram_addr_t s390_virtio_device_num_vq(VirtIOS390Device *dev)
> @@ -371,21 +374,33 @@ void s390_virtio_device_sync(VirtIOS390Device *dev)
> virtio_reset(dev->vdev);
>
> /* Sync dev space */
> - stb_phys(&address_space_memory,
> - dev->dev_offs + VIRTIO_DEV_OFFS_TYPE, dev->vdev->device_id);
> -
> - stb_phys(&address_space_memory,
> - dev->dev_offs + VIRTIO_DEV_OFFS_NUM_VQ,
> - s390_virtio_device_num_vq(dev));
> - stb_phys(&address_space_memory,
> - dev->dev_offs + VIRTIO_DEV_OFFS_FEATURE_LEN, dev->feat_len);
> -
> - stb_phys(&address_space_memory,
> - dev->dev_offs + VIRTIO_DEV_OFFS_CONFIG_LEN,
> dev->vdev->config_len);
> + address_space_stb(&address_space_memory,
> + dev->dev_offs + VIRTIO_DEV_OFFS_TYPE,
> + dev->vdev->device_id,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> +
> + address_space_stb(&address_space_memory,
> + dev->dev_offs + VIRTIO_DEV_OFFS_NUM_VQ,
> + s390_virtio_device_num_vq(dev),
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> + address_space_stb(&address_space_memory,
> + dev->dev_offs + VIRTIO_DEV_OFFS_FEATURE_LEN,
> + dev->feat_len,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> +
> + address_space_stb(&address_space_memory,
> + dev->dev_offs + VIRTIO_DEV_OFFS_CONFIG_LEN,
> + dev->vdev->config_len,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
>
> num_vq = s390_virtio_device_num_vq(dev);
> - stb_phys(&address_space_memory,
> - dev->dev_offs + VIRTIO_DEV_OFFS_NUM_VQ, num_vq);
> + address_space_stb(&address_space_memory,
> + dev->dev_offs + VIRTIO_DEV_OFFS_NUM_VQ, num_vq,
> + MEMTXATTRS_UNSPECIFIED, NULL);
>
> /* Sync virtqueues */
> for (i = 0; i < num_vq; i++) {
> @@ -396,11 +411,14 @@ void s390_virtio_device_sync(VirtIOS390Device *dev)
> vring = s390_virtio_next_ring(bus);
> virtio_queue_set_addr(dev->vdev, i, vring);
> virtio_queue_set_vector(dev->vdev, i, i);
> - stq_be_phys(&address_space_memory,
> - vq + VIRTIO_VQCONFIG_OFFS_ADDRESS, vring);
> - stw_be_phys(&address_space_memory,
> - vq + VIRTIO_VQCONFIG_OFFS_NUM,
> - virtio_queue_get_num(dev->vdev, i));
> + address_space_stq_be(&address_space_memory,
> + vq + VIRTIO_VQCONFIG_OFFS_ADDRESS, vring,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> + address_space_stw_be(&address_space_memory,
> + vq + VIRTIO_VQCONFIG_OFFS_NUM,
> + virtio_queue_get_num(dev->vdev, i),
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> }
>
> cur_offs = dev->dev_offs;
> @@ -408,7 +426,8 @@ void s390_virtio_device_sync(VirtIOS390Device *dev)
> cur_offs += num_vq * VIRTIO_VQCONFIG_LEN;
>
> /* Sync feature bitmap */
> - stl_le_phys(&address_space_memory, cur_offs, dev->host_features);
> + address_space_stl_le(&address_space_memory, cur_offs, dev->host_features,
> + MEMTXATTRS_UNSPECIFIED, NULL);
>
> dev->feat_offs = cur_offs + dev->feat_len;
> cur_offs += dev->feat_len * 2;
> @@ -426,12 +445,16 @@ void s390_virtio_device_update_status(VirtIOS390Device
> *dev)
> VirtIODevice *vdev = dev->vdev;
> uint32_t features;
>
> - virtio_set_status(vdev, ldub_phys(&address_space_memory,
> - dev->dev_offs +
> VIRTIO_DEV_OFFS_STATUS));
> + virtio_set_status(vdev,
> + address_space_ldub(&address_space_memory,
> + dev->dev_offs +
> VIRTIO_DEV_OFFS_STATUS,
> + MEMTXATTRS_UNSPECIFIED, NULL));
>
> /* Update guest supported feature bitmap */
>
> - features = bswap32(ldl_be_phys(&address_space_memory, dev->feat_offs));
> + features = bswap32(address_space_ldl_be(&address_space_memory,
> + dev->feat_offs,
> + MEMTXATTRS_UNSPECIFIED, NULL));
> virtio_set_features(vdev, features);
> }
>
> diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
> index bdb5388..3a1b9ee 100644
> --- a/hw/s390x/s390-virtio.c
> +++ b/hw/s390x/s390-virtio.c
> @@ -97,7 +97,9 @@ static int s390_virtio_hcall_reset(const uint64_t *args)
> return -EINVAL;
> }
> virtio_reset(dev->vdev);
> - stb_phys(&address_space_memory, dev->dev_offs + VIRTIO_DEV_OFFS_STATUS,
> 0);
> + address_space_stb(&address_space_memory,
> + dev->dev_offs + VIRTIO_DEV_OFFS_STATUS, 0,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> s390_virtio_device_sync(dev);
> s390_virtio_reset_idx(dev);
>
> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
> index d32ecaf..ed75c63 100644
> --- a/hw/s390x/virtio-ccw.c
> +++ b/hw/s390x/virtio-ccw.c
> @@ -335,16 +335,23 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
> if (!ccw.cda) {
> ret = -EFAULT;
> } else {
> - info.queue = ldq_phys(&address_space_memory, ccw.cda);
> - info.align = ldl_phys(&address_space_memory,
> - ccw.cda + sizeof(info.queue));
> - info.index = lduw_phys(&address_space_memory,
> - ccw.cda + sizeof(info.queue)
> - + sizeof(info.align));
> - info.num = lduw_phys(&address_space_memory,
> - ccw.cda + sizeof(info.queue)
> - + sizeof(info.align)
> - + sizeof(info.index));
> + info.queue = address_space_ldq(&address_space_memory, ccw.cda,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> + info.align = address_space_ldl(&address_space_memory,
> + ccw.cda + sizeof(info.queue),
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> + info.index = address_space_lduw(&address_space_memory,
> + ccw.cda + sizeof(info.queue)
> + + sizeof(info.align),
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> + info.num = address_space_lduw(&address_space_memory,
> + ccw.cda + sizeof(info.queue)
> + + sizeof(info.align)
> + + sizeof(info.index),
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> ret = virtio_ccw_set_vqs(sch, info.queue, info.align, info.index,
> info.num);
> sch->curr_status.scsw.count = 0;
> @@ -369,15 +376,20 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
> if (!ccw.cda) {
> ret = -EFAULT;
> } else {
> - features.index = ldub_phys(&address_space_memory,
> - ccw.cda + sizeof(features.features));
> + features.index = address_space_ldub(&address_space_memory,
> + ccw.cda
> + + sizeof(features.features),
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> if (features.index < ARRAY_SIZE(dev->host_features)) {
> features.features = dev->host_features[features.index];
> } else {
> /* Return zeroes if the guest supports more feature bits. */
> features.features = 0;
> }
> - stl_le_phys(&address_space_memory, ccw.cda, features.features);
> + address_space_stl_le(&address_space_memory, ccw.cda,
> + features.features, MEMTXATTRS_UNSPECIFIED,
> + NULL);
> sch->curr_status.scsw.count = ccw.count - sizeof(features);
> ret = 0;
> }
> @@ -396,9 +408,15 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
> if (!ccw.cda) {
> ret = -EFAULT;
> } else {
> - features.index = ldub_phys(&address_space_memory,
> - ccw.cda + sizeof(features.features));
> - features.features = ldl_le_phys(&address_space_memory, ccw.cda);
> + features.index = address_space_ldub(&address_space_memory,
> + ccw.cda
> + + sizeof(features.features),
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> + features.features = address_space_ldl_le(&address_space_memory,
> + ccw.cda,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> if (features.index < ARRAY_SIZE(dev->host_features)) {
> virtio_set_features(vdev, features.features);
> } else {
> @@ -474,7 +492,8 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
> if (!ccw.cda) {
> ret = -EFAULT;
> } else {
> - status = ldub_phys(&address_space_memory, ccw.cda);
> + status = address_space_ldub(&address_space_memory, ccw.cda,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> if (!(status & VIRTIO_CONFIG_S_DRIVER_OK)) {
> virtio_ccw_stop_ioeventfd(dev);
> }
> @@ -508,7 +527,8 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
> if (!ccw.cda) {
> ret = -EFAULT;
> } else {
> - indicators = ldq_be_phys(&address_space_memory, ccw.cda);
> + indicators = address_space_ldq_be(&address_space_memory, ccw.cda,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> dev->indicators = get_indicator(indicators, sizeof(uint64_t));
> sch->curr_status.scsw.count = ccw.count - sizeof(indicators);
> ret = 0;
> @@ -528,7 +548,8 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
> if (!ccw.cda) {
> ret = -EFAULT;
> } else {
> - indicators = ldq_be_phys(&address_space_memory, ccw.cda);
> + indicators = address_space_ldq_be(&address_space_memory, ccw.cda,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> dev->indicators2 = get_indicator(indicators, sizeof(uint64_t));
> sch->curr_status.scsw.count = ccw.count - sizeof(indicators);
> ret = 0;
> @@ -548,15 +569,21 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
> if (!ccw.cda) {
> ret = -EFAULT;
> } else {
> - vq_config.index = lduw_be_phys(&address_space_memory, ccw.cda);
> + vq_config.index = address_space_lduw_be(&address_space_memory,
> + ccw.cda,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> if (vq_config.index >= VIRTIO_PCI_QUEUE_MAX) {
> ret = -EINVAL;
> break;
> }
> vq_config.num_max = virtio_queue_get_num(vdev,
> vq_config.index);
> - stw_be_phys(&address_space_memory,
> - ccw.cda + sizeof(vq_config.index),
> vq_config.num_max);
> + address_space_stw_be(&address_space_memory,
> + ccw.cda + sizeof(vq_config.index),
> + vq_config.num_max,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> sch->curr_status.scsw.count = ccw.count - sizeof(vq_config);
> ret = 0;
> }
> @@ -1068,9 +1095,13 @@ static void virtio_ccw_notify(DeviceState *d, uint16_t
> vector)
> css_adapter_interrupt(dev->thinint_isc);
> }
> } else {
> - indicators = ldq_phys(&address_space_memory,
> dev->indicators->addr);
> + indicators = address_space_ldq(&address_space_memory,
> + dev->indicators->addr,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> indicators |= 1ULL << vector;
> - stq_phys(&address_space_memory, dev->indicators->addr,
> indicators);
> + address_space_stq(&address_space_memory, dev->indicators->addr,
> + indicators, MEMTXATTRS_UNSPECIFIED, NULL);
> css_conditional_io_interrupt(sch);
> }
> } else {
> @@ -1078,9 +1109,13 @@ static void virtio_ccw_notify(DeviceState *d, uint16_t
> vector)
> return;
> }
> vector = 0;
> - indicators = ldq_phys(&address_space_memory, dev->indicators2->addr);
> + indicators = address_space_ldq(&address_space_memory,
> + dev->indicators2->addr,
> + MEMTXATTRS_UNSPECIFIED,
> + NULL);
> indicators |= 1ULL << vector;
> - stq_phys(&address_space_memory, dev->indicators2->addr, indicators);
> + address_space_stq(&address_space_memory, dev->indicators2->addr,
> + indicators, MEMTXATTRS_UNSPECIFIED, NULL);
> css_conditional_io_interrupt(sch);
> }
> }
> diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c
> index d1d0847..4221060 100644
> --- a/hw/sh4/r2d.c
> +++ b/hw/sh4/r2d.c
> @@ -318,8 +318,10 @@ static void r2d_init(MachineState *machine)
> }
>
> /* initialization which should be done by firmware */
> - stl_phys(&address_space_memory, SH7750_BCR1, 1<<3); /* cs3 SDRAM */
> - stw_phys(&address_space_memory, SH7750_BCR2, 3<<(3*2)); /* cs3 32bit
> */
> + address_space_stl(&address_space_memory, SH7750_BCR1, 1 << 3,
> + MEMTXATTRS_UNSPECIFIED, NULL); /* cs3 SDRAM */
> + address_space_stw(&address_space_memory, SH7750_BCR2, 3 << (3 * 2),
> + MEMTXATTRS_UNSPECIFIED, NULL); /* cs3 32bit */
> reset_info->vector = (SDRAM_BASE + LINUX_LOAD_OFFSET) | 0xa0000000;
> /* Start from P2 area */
> }
>
> diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
> index 78d86be..b6b8a20 100644
> --- a/hw/timer/hpet.c
> +++ b/hw/timer/hpet.c
> @@ -206,8 +206,9 @@ static void update_irq(struct HPETTimer *timer, int set)
> }
> }
> } else if (timer_fsb_route(timer)) {
> - stl_le_phys(&address_space_memory,
> - timer->fsb >> 32, timer->fsb & 0xffffffff);
> + address_space_stl_le(&address_space_memory, timer->fsb >> 32,
> + timer->fsb & 0xffffffff, MEMTXATTRS_UNSPECIFIED,
> + NULL);
> } else if (timer->config & HPET_TN_TYPE_LEVEL) {
> s->isr |= mask;
> /* fold the ICH PIRQ# pin's internal inversion logic into hpet */
> diff --git a/monitor.c b/monitor.c
> index 68873ec..c7a4db6 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -1385,7 +1385,8 @@ static void hmp_sum(Monitor *mon, const QDict *qdict)
>
> sum = 0;
> for(addr = start; addr < (start + size); addr++) {
> - uint8_t val = ldub_phys(&address_space_memory, addr);
> + uint8_t val = address_space_ldub(&address_space_memory, addr,
> + MEMTXATTRS_UNSPECIFIED, NULL);
> /* BSD sum algorithm ('sum' Unix command) */
> sum = (sum >> 1) | (sum << 15);
> sum += val;
> diff --git a/target-i386/arch_memory_mapping.c
> b/target-i386/arch_memory_mapping.c
> index 2d35f63..01563fe 100644
> --- a/target-i386/arch_memory_mapping.c
> +++ b/target-i386/arch_memory_mapping.c
> @@ -27,7 +27,7 @@ static void walk_pte(MemoryMappingList *list, AddressSpace
> *as,
>
> for (i = 0; i < 512; i++) {
> pte_addr = (pte_start_addr + i * 8) & a20_mask;
> - pte = ldq_phys(as, pte_addr);
> + pte = address_space_ldq(as, pte_addr, MEMTXATTRS_UNSPECIFIED, NULL);
> if (!(pte & PG_PRESENT_MASK)) {
> /* not present */
> continue;
> @@ -57,7 +57,7 @@ static void walk_pte2(MemoryMappingList *list, AddressSpace
> *as,
>
> for (i = 0; i < 1024; i++) {
> pte_addr = (pte_start_addr + i * 4) & a20_mask;
> - pte = ldl_phys(as, pte_addr);
> + pte = address_space_ldl(as, pte_addr, MEMTXATTRS_UNSPECIFIED, NULL);
> if (!(pte & PG_PRESENT_MASK)) {
> /* not present */
> continue;
> @@ -89,7 +89,7 @@ static void walk_pde(MemoryMappingList *list, AddressSpace
> *as,
>
> for (i = 0; i < 512; i++) {
> pde_addr = (pde_start_addr + i * 8) & a20_mask;
> - pde = ldq_phys(as, pde_addr);
> + pde = address_space_ldq(as, pde_addr, MEMTXATTRS_UNSPECIFIED, NULL);
> if (!(pde & PG_PRESENT_MASK)) {
> /* not present */
> continue;
> @@ -126,7 +126,7 @@ static void walk_pde2(MemoryMappingList *list,
> AddressSpace *as,
>
> for (i = 0; i < 1024; i++) {
> pde_addr = (pde_start_addr + i * 4) & a20_mask;
> - pde = ldl_phys(as, pde_addr);
> + pde = address_space_ldl(as, pde_addr, MEMTXATTRS_UNSPECIFIED, NULL);
> if (!(pde & PG_PRESENT_MASK)) {
> /* not present */
> continue;
> @@ -167,7 +167,7 @@ static void walk_pdpe2(MemoryMappingList *list,
> AddressSpace *as,
>
> for (i = 0; i < 4; i++) {
> pdpe_addr = (pdpe_start_addr + i * 8) & a20_mask;
> - pdpe = ldq_phys(as, pdpe_addr);
> + pdpe = address_space_ldq(as, pdpe_addr, MEMTXATTRS_UNSPECIFIED,
> NULL);
> if (!(pdpe & PG_PRESENT_MASK)) {
> /* not present */
> continue;
> @@ -192,7 +192,7 @@ static void walk_pdpe(MemoryMappingList *list,
> AddressSpace *as,
>
> for (i = 0; i < 512; i++) {
> pdpe_addr = (pdpe_start_addr + i * 8) & a20_mask;
> - pdpe = ldq_phys(as, pdpe_addr);
> + pdpe = address_space_ldq(as, pdpe_addr, MEMTXATTRS_UNSPECIFIED,
> NULL);
> if (!(pdpe & PG_PRESENT_MASK)) {
> /* not present */
> continue;
> @@ -228,7 +228,8 @@ static void walk_pml4e(MemoryMappingList *list,
> AddressSpace *as,
>
> for (i = 0; i < 512; i++) {
> pml4e_addr = (pml4e_start_addr + i * 8) & a20_mask;
> - pml4e = ldq_phys(as, pml4e_addr);
> + pml4e = address_space_ldq(as, pml4e_addr, MEMTXATTRS_UNSPECIFIED,
> + NULL);
> if (!(pml4e & PG_PRESENT_MASK)) {
> /* not present */
> continue;
> --
> 1.9.1
>
- Re: [Qemu-devel] [PATCH 01/14] memory: Define API for MemoryRegionOps to take attrs and return status, (continued)
- Re: [Qemu-devel] [PATCH 01/14] memory: Define API for MemoryRegionOps to take attrs and return status, Peter Maydell, 2015/04/09
- Re: [Qemu-devel] [PATCH 01/14] memory: Define API for MemoryRegionOps to take attrs and return status, Paolo Bonzini, 2015/04/09
- Re: [Qemu-devel] [PATCH 01/14] memory: Define API for MemoryRegionOps to take attrs and return status, Edgar E. Iglesias, 2015/04/09
- Re: [Qemu-devel] [PATCH 01/14] memory: Define API for MemoryRegionOps to take attrs and return status, Peter Maydell, 2015/04/10
- Re: [Qemu-devel] [PATCH 01/14] memory: Define API for MemoryRegionOps to take attrs and return status, Edgar E. Iglesias, 2015/04/11
- Re: [Qemu-devel] [PATCH 01/14] memory: Define API for MemoryRegionOps to take attrs and return status, Edgar E. Iglesias, 2015/04/09
[Qemu-devel] [PATCH 05/14] exec.c: Convert subpage memory ops to _with_attrs, Peter Maydell, 2015/04/07
[Qemu-devel] [PATCH 08/14] Switch non-CPU callers from ld/st*_phys to address_space_ld/st*, Peter Maydell, 2015/04/07
- Re: [Qemu-devel] [PATCH 08/14] Switch non-CPU callers from ld/st*_phys to address_space_ld/st*,
Edgar E. Iglesias <=
[Qemu-devel] [PATCH 03/14] Make CPU iotlb a structure rather than a plain hwaddr, Peter Maydell, 2015/04/07
Re: [Qemu-devel] [PATCH 00/14] Add memory attributes and use them in ARM, Edgar E. Iglesias, 2015/04/09