symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/syborg_dummy.c
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 //
       
     2 // Copyright (c) 2008 Symbian Ltd. All rights reserved.
       
     3 //
       
     4 // dummy peripheral used for logging peripheral accesses
       
     5 
       
     6 #include "hw.h"
       
     7 
       
     8 typedef struct {
       
     9   uint32_t base;
       
    10   char tag[32];
       
    11 } syborg_dummy_state;
       
    12 
       
    13 static const unsigned int syborg_dummy_id = 0xbabe0007;
       
    14 
       
    15 static uint32_t syborg_dummy_read(void *opaque, target_phys_addr_t offset)
       
    16 {
       
    17   syborg_dummy_state *s = (syborg_dummy_state *)opaque;
       
    18   offset -= s->base;
       
    19 
       
    20   printf("[%s] dummy_read b:%x o:%x\n", s->tag, s->base, offset);
       
    21 
       
    22   return 0;
       
    23 }
       
    24 
       
    25 static void syborg_dummy_write(void *opaque, target_phys_addr_t offset, uint32_t value)
       
    26 {
       
    27   syborg_dummy_state *s = (syborg_dummy_state *)opaque;
       
    28   offset -= s->base;
       
    29 
       
    30   printf("[%s] dummy_write b:%x o:%x v:%x\n", s->tag, s->base, offset, value);
       
    31 }
       
    32 
       
    33 static CPUReadMemoryFunc *syborg_dummy_readfn[] = {
       
    34    syborg_dummy_read,
       
    35    syborg_dummy_read,
       
    36    syborg_dummy_read
       
    37 };
       
    38 
       
    39 static CPUWriteMemoryFunc *syborg_dummy_writefn[] = {
       
    40    syborg_dummy_write,
       
    41    syborg_dummy_write,
       
    42    syborg_dummy_write
       
    43 };
       
    44 
       
    45 void syborg_dummy_init(uint32_t base, char *tag)
       
    46 {
       
    47   syborg_dummy_state *s;
       
    48   int iomemtype;
       
    49 
       
    50   s = (syborg_dummy_state *)qemu_mallocz(sizeof(syborg_dummy_state));
       
    51   iomemtype = cpu_register_io_memory(0, syborg_dummy_readfn, syborg_dummy_writefn, s);
       
    52   cpu_register_physical_memory(base, 0x00001000, iomemtype);
       
    53   s->base = base;
       
    54   memcpy(s->tag, tag, 32);
       
    55   s->tag[31] = 0;
       
    56 }
       
    57