diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/syborg_dummy.c --- /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; +} +