symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/syborg_dummy.c
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/syborg_dummy.c	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,57 @@
+//
+// Copyright (c) 2008 Symbian Ltd. All rights reserved.
+//
+// dummy peripheral used for logging peripheral accesses
+
+#include "hw.h"
+
+typedef struct {
+  uint32_t base;
+  char tag[32];
+} syborg_dummy_state;
+
+static const unsigned int syborg_dummy_id = 0xbabe0007;
+
+static uint32_t syborg_dummy_read(void *opaque, target_phys_addr_t offset)
+{
+  syborg_dummy_state *s = (syborg_dummy_state *)opaque;
+  offset -= s->base;
+
+  printf("[%s] dummy_read b:%x o:%x\n", s->tag, s->base, offset);
+
+  return 0;
+}
+
+static void syborg_dummy_write(void *opaque, target_phys_addr_t offset, uint32_t value)
+{
+  syborg_dummy_state *s = (syborg_dummy_state *)opaque;
+  offset -= s->base;
+
+  printf("[%s] dummy_write b:%x o:%x v:%x\n", s->tag, s->base, offset, value);
+}
+
+static CPUReadMemoryFunc *syborg_dummy_readfn[] = {
+   syborg_dummy_read,
+   syborg_dummy_read,
+   syborg_dummy_read
+};
+
+static CPUWriteMemoryFunc *syborg_dummy_writefn[] = {
+   syborg_dummy_write,
+   syborg_dummy_write,
+   syborg_dummy_write
+};
+
+void syborg_dummy_init(uint32_t base, char *tag)
+{
+  syborg_dummy_state *s;
+  int iomemtype;
+
+  s = (syborg_dummy_state *)qemu_mallocz(sizeof(syborg_dummy_state));
+  iomemtype = cpu_register_io_memory(0, syborg_dummy_readfn, syborg_dummy_writefn, s);
+  cpu_register_physical_memory(base, 0x00001000, iomemtype);
+  s->base = base;
+  memcpy(s->tag, tag, 32);
+  s->tag[31] = 0;
+}
+