[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Replace cpu_physical_memory_rw were possible
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH] Replace cpu_physical_memory_rw were possible |
Date: |
Tue, 12 Apr 2011 23:34:44 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Sun, Apr 10, 2011 at 06:23:39PM +0200, Stefan Weil wrote:
> Using cpu_physical_memory_read, cpu_physical_memory_write and ldub_phys
> improves readability and allows removing some type casts.
>
> lduw_phys and ldl_phys were not used because both require aligned
> addresses. Therefore it is not possible to simply replace existing
> calls by one of these functions.
>
> Cc: Aurelien Jarno <address@hidden>
> Signed-off-by: Stefan Weil <address@hidden>
> ---
> disas.c | 2 +-
> exec.c | 2 +-
> hw/rc4030.c | 4 ++--
> hw/s390-virtio-bus.c | 3 ++-
> hw/s390-virtio.c | 4 ++--
> hw/sm501_template.h | 2 +-
> hw/usb-ohci.c | 14 ++++++--------
> monitor.c | 9 ++++-----
> 8 files changed, 19 insertions(+), 21 deletions(-)
Thanks, applied with the 3 other ones.
> diff --git a/disas.c b/disas.c
> index 17b4ce4..223606c 100644
> --- a/disas.c
> +++ b/disas.c
> @@ -345,7 +345,7 @@ monitor_read_memory (bfd_vma memaddr, bfd_byte *myaddr,
> int length,
> struct disassemble_info *info)
> {
> if (monitor_disas_is_physical) {
> - cpu_physical_memory_rw(memaddr, myaddr, length, 0);
> + cpu_physical_memory_read(memaddr, myaddr, length);
> } else {
> cpu_memory_rw_debug(monitor_disas_env, memaddr,myaddr, length, 0);
> }
> diff --git a/exec.c b/exec.c
> index e8f1eeb..b1ee52a 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3932,7 +3932,7 @@ void *cpu_physical_memory_map(target_phys_addr_t addr,
> bounce.addr = addr;
> bounce.len = l;
> if (!is_write) {
> - cpu_physical_memory_rw(addr, bounce.buffer, l, 0);
> + cpu_physical_memory_read(addr, bounce.buffer, l);
> }
> ptr = bounce.buffer;
> } else {
> diff --git a/hw/rc4030.c b/hw/rc4030.c
> index d30230a..6563336 100644
> --- a/hw/rc4030.c
> +++ b/hw/rc4030.c
> @@ -307,7 +307,7 @@ static void rc4030_writel(void *opaque,
> target_phys_addr_t addr, uint32_t val)
> if (s->cache_ltag == 0x80000001 && s->cache_bmask == 0xf0f0f0f) {
> target_phys_addr_t dest = s->cache_ptag & ~0x1;
> dest += (s->cache_maint & 0x3) << 3;
> - cpu_physical_memory_rw(dest, (uint8_t*)&val, 4, 1);
> + cpu_physical_memory_write(dest, &val, 4);
> }
> break;
> /* Remote Speed Registers */
> @@ -704,7 +704,7 @@ void rc4030_dma_memory_rw(void *opaque,
> target_phys_addr_t addr, uint8_t *buf, i
> entry_addr = s->dma_tl_base + index * sizeof(dma_pagetable_entry);
> /* XXX: not sure. should we really use only lowest bits? */
> entry_addr &= 0x7fffffff;
> - cpu_physical_memory_rw(entry_addr, (uint8_t *)&entry, sizeof(entry),
> 0);
> + cpu_physical_memory_read(entry_addr, &entry, sizeof(entry));
>
> /* Read/write data at right place */
> phys_addr = entry.frame + (addr & (DMA_PAGESIZE - 1));
> diff --git a/hw/s390-virtio-bus.c b/hw/s390-virtio-bus.c
> index 58af164..40364da 100644
> --- a/hw/s390-virtio-bus.c
> +++ b/hw/s390-virtio-bus.c
> @@ -233,7 +233,8 @@ void s390_virtio_device_sync(VirtIOS390Device *dev)
> dev->vdev->get_config(dev->vdev, dev->vdev->config);
> }
>
> - cpu_physical_memory_rw(cur_offs, dev->vdev->config,
> dev->vdev->config_len, 1);
> + cpu_physical_memory_write(cur_offs,
> + dev->vdev->config, dev->vdev->config_len);
> cur_offs += dev->vdev->config_len;
> }
>
> diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c
> index 850422f..d429f10 100644
> --- a/hw/s390-virtio.c
> +++ b/hw/s390-virtio.c
> @@ -230,8 +230,8 @@ static void s390_init(ram_addr_t ram_size,
> }
>
> if (kernel_cmdline) {
> - cpu_physical_memory_rw(KERN_PARM_AREA, (uint8_t *)kernel_cmdline,
> - strlen(kernel_cmdline), 1);
> + cpu_physical_memory_write(KERN_PARM_AREA, kernel_cmdline,
> + strlen(kernel_cmdline));
> }
>
> /* Create VirtIO network adapters */
> diff --git a/hw/sm501_template.h b/hw/sm501_template.h
> index d1ceef9..2d4a3d8 100644
> --- a/hw/sm501_template.h
> +++ b/hw/sm501_template.h
> @@ -120,7 +120,7 @@ static void glue(draw_hwc_line_, PIXEL_NAME)(SM501State *
> s, int crt,
>
> /* get pixel value */
> if (i % 4 == 0) {
> - cpu_physical_memory_rw(cursor_addr, &bitset, 1, 0);
> + bitset = ldub_phys(cursor_addr);
> cursor_addr++;
> }
> v = bitset & 3;
> diff --git a/hw/usb-ohci.c b/hw/usb-ohci.c
> index d2b14f7..0ad4f55 100644
> --- a/hw/usb-ohci.c
> +++ b/hw/usb-ohci.c
> @@ -427,7 +427,7 @@ static inline int get_dwords(OHCIState *ohci,
> addr += ohci->localmem_base;
>
> for (i = 0; i < num; i++, buf++, addr += sizeof(*buf)) {
> - cpu_physical_memory_rw(addr, (uint8_t *)buf, sizeof(*buf), 0);
> + cpu_physical_memory_read(addr, buf, sizeof(*buf));
> *buf = le32_to_cpu(*buf);
> }
>
> @@ -444,7 +444,7 @@ static inline int put_dwords(OHCIState *ohci,
>
> for (i = 0; i < num; i++, buf++, addr += sizeof(*buf)) {
> uint32_t tmp = cpu_to_le32(*buf);
> - cpu_physical_memory_rw(addr, (uint8_t *)&tmp, sizeof(tmp), 1);
> + cpu_physical_memory_write(addr, &tmp, sizeof(tmp));
> }
>
> return 1;
> @@ -459,7 +459,7 @@ static inline int get_words(OHCIState *ohci,
> addr += ohci->localmem_base;
>
> for (i = 0; i < num; i++, buf++, addr += sizeof(*buf)) {
> - cpu_physical_memory_rw(addr, (uint8_t *)buf, sizeof(*buf), 0);
> + cpu_physical_memory_read(addr, buf, sizeof(*buf));
> *buf = le16_to_cpu(*buf);
> }
>
> @@ -476,7 +476,7 @@ static inline int put_words(OHCIState *ohci,
>
> for (i = 0; i < num; i++, buf++, addr += sizeof(*buf)) {
> uint16_t tmp = cpu_to_le16(*buf);
> - cpu_physical_memory_rw(addr, (uint8_t *)&tmp, sizeof(tmp), 1);
> + cpu_physical_memory_write(addr, &tmp, sizeof(tmp));
> }
>
> return 1;
> @@ -504,8 +504,7 @@ static inline int ohci_read_iso_td(OHCIState *ohci,
> static inline int ohci_read_hcca(OHCIState *ohci,
> uint32_t addr, struct ohci_hcca *hcca)
> {
> - cpu_physical_memory_rw(addr + ohci->localmem_base,
> - (uint8_t *)hcca, sizeof(*hcca), 0);
> + cpu_physical_memory_read(addr + ohci->localmem_base, hcca,
> sizeof(*hcca));
> return 1;
> }
>
> @@ -531,8 +530,7 @@ static inline int ohci_put_iso_td(OHCIState *ohci,
> static inline int ohci_put_hcca(OHCIState *ohci,
> uint32_t addr, struct ohci_hcca *hcca)
> {
> - cpu_physical_memory_rw(addr + ohci->localmem_base,
> - (uint8_t *)hcca, sizeof(*hcca), 1);
> + cpu_physical_memory_write(addr + ohci->localmem_base, hcca,
> sizeof(*hcca));
> return 1;
> }
>
> diff --git a/monitor.c b/monitor.c
> index 07186ca..5f3bc72 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -1429,7 +1429,7 @@ static void memory_dump(Monitor *mon, int count, int
> format, int wsize,
> if (l > line_size)
> l = line_size;
> if (is_physical) {
> - cpu_physical_memory_rw(addr, buf, l, 0);
> + cpu_physical_memory_read(addr, buf, l);
> } else {
> env = mon_get_cpu();
> if (cpu_memory_rw_debug(env, addr, buf, l, 0) < 0) {
> @@ -1605,7 +1605,7 @@ static int do_physical_memory_save(Monitor *mon, const
> QDict *qdict,
> l = sizeof(buf);
> if (l > size)
> l = size;
> - cpu_physical_memory_rw(addr, buf, l, 0);
> + cpu_physical_memory_read(addr, buf, l);
> if (fwrite(buf, 1, l, f) != l) {
> monitor_printf(mon, "fwrite() error in
> do_physical_memory_save\n");
> goto exit;
> @@ -1625,17 +1625,16 @@ exit:
> static void do_sum(Monitor *mon, const QDict *qdict)
> {
> uint32_t addr;
> - uint8_t buf[1];
> uint16_t sum;
> uint32_t start = qdict_get_int(qdict, "start");
> uint32_t size = qdict_get_int(qdict, "size");
>
> sum = 0;
> for(addr = start; addr < (start + size); addr++) {
> - cpu_physical_memory_rw(addr, buf, 1, 0);
> + uint8_t val = ldub_phys(addr);
> /* BSD sum algorithm ('sum' Unix command) */
> sum = (sum >> 1) | (sum << 15);
> - sum += buf[0];
> + sum += val;
> }
> monitor_printf(mon, "%05d\n", sum);
> }
> --
> 1.7.2.5
>
>
>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net