On 09/18/2011 03:54 PM, Jan Kiszka wrote:
From: Jan Kiszka<jan.kis...@siemens.com>

We can express the offset of old portio completely via
MemoryRegionPortio::offset by splitting up regions of different offsets
and adjusting those offsets appropriately.

Please split into two patches - core and isa.

+    /* Copy the sub-list and null-terminate it.  */
+    pio = g_new(MemoryRegionPortio, count + 1);
+    memcpy(pio, pio_init, sizeof(MemoryRegionPortio) * count);
+    memset(pio + count, 0, sizeof(MemoryRegionPortio));

Wish: g_copy(pio, pio_init, count);  // aka std::copy()

@@ -396,12 +395,12 @@ static void memory_region_iorange_read(IORange *iorange,

          *data = ((uint64_t)1<<  (width * 8)) - 1;
          if (mrp) {
-            *data = mrp->read(mr->opaque, offset + mr->offset);
+            *data = mrp->read(mr->opaque, offset + mrp->offset);
          } else if (width == 2) {
              mrp = find_portio(mr, offset, 1, false);
              assert(mrp);
-            *data = mrp->read(mr->opaque, offset + mr->offset) |
-                    (mrp->read(mr->opaque, offset + mr->offset + 1)<<  8);
+            *data = mrp->read(mr->opaque, offset + mrp->offset) |
+                    (mrp->read(mr->opaque, offset + mrp->offset + 1)<<  8);
          }
          return;
      }

So long as mr->offset exists, you need to take it into account. And I don't want to remove memory_region_set_offset() until everything (that can potentially use it, at least) has been converted.

--
error compiling committee.c: too many arguments to function


Reply via email to