/[dynamips]/trunk/memory.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/memory.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

upstream/dynamips-0.2.6-RC5/memory.h revision 6 by dpavlin, Sat Oct 6 16:09:07 2007 UTC upstream/dynamips-0.2.8-RC1/memory.h revision 11 by dpavlin, Sat Oct 6 16:33:40 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   * Cisco 7200 (Predator) simulation platform.   * Cisco router simulation platform.
3   * Copyright (c) 2005,2006 Christophe Fillot (cf@utc.fr)   * Copyright (c) 2005,2006 Christophe Fillot (cf@utc.fr)
4   */   */
5    
# Line 29  Line 29 
29  /* Device ID mask and shift, device offset mask */  /* Device ID mask and shift, device offset mask */
30  #define MTS_DEVID_MASK    0xfc000000  #define MTS_DEVID_MASK    0xfc000000
31  #define MTS_DEVID_SHIFT   26  #define MTS_DEVID_SHIFT   26
32  #define MTS_DEVOFF_MASK   0x03fffff0  #define MTS_DEVOFF_MASK   0x03ffffff
33    
34  /* Memory access flags */  /* Memory access flags */
 #define MTS_ACC_OK  0x00000000   /* Access OK */  
35  #define MTS_ACC_AE  0x00000002   /* Address Error */  #define MTS_ACC_AE  0x00000002   /* Address Error */
36  #define MTS_ACC_T   0x00000004   /* TLB Exception */  #define MTS_ACC_T   0x00000004   /* TLB Exception */
37  #define MTS_ACC_U   0x00000006   /* Unexistent */  #define MTS_ACC_U   0x00000006   /* Unexistent */
38    
39  /* Hash table size for MTS64 (default: [shift:16,bits:12]) */  /* Hash table size for MTS64 (default: [shift:16,bits:12]) */
40  #define MTS64_HASH_SHIFT   15  #define MTS64_HASH_SHIFT   12
41  #define MTS64_HASH_BITS    15  #define MTS64_HASH_BITS    14
42  #define MTS64_HASH_SIZE    (1 << MTS64_HASH_BITS)  #define MTS64_HASH_SIZE    (1 << MTS64_HASH_BITS)
43  #define MTS64_HASH_MASK    (MTS64_HASH_SIZE - 1)  #define MTS64_HASH_MASK    (MTS64_HASH_SIZE - 1)
44    
# Line 47  Line 46 
46  #define MTS64_HASH(vaddr)  (((vaddr) >> MTS64_HASH_SHIFT) & MTS64_HASH_MASK)  #define MTS64_HASH(vaddr)  (((vaddr) >> MTS64_HASH_SHIFT) & MTS64_HASH_MASK)
47    
48  /* Hash table size for MTS32 (default: [shift:15,bits:15]) */  /* Hash table size for MTS32 (default: [shift:15,bits:15]) */
49  #define MTS32_HASH_SHIFT   15  #define MTS32_HASH_SHIFT   12
50  #define MTS32_HASH_BITS    15  #define MTS32_HASH_BITS    14
51  #define MTS32_HASH_SIZE    (1 << MTS32_HASH_BITS)  #define MTS32_HASH_SIZE    (1 << MTS32_HASH_BITS)
52  #define MTS32_HASH_MASK    (MTS32_HASH_SIZE - 1)  #define MTS32_HASH_MASK    (MTS32_HASH_SIZE - 1)
53    
# Line 73  struct mts32_chunk { Line 72  struct mts32_chunk {
72     u_int count;     u_int count;
73  };  };
74    
75  /* Show the last memory accesses */  /* Record a memory access */
76  void memlog_dump(cpu_mips_t *cpu);  void memlog_rec_access(cpu_gen_t *cpu,m_uint64_t vaddr,m_uint64_t data,
77                           m_uint32_t op_size,m_uint32_t op_type);
78    
79  /* Shutdown MTS subsystem */  /* Show the last memory accesses */
80  void mts_shutdown(cpu_mips_t *cpu);  void memlog_dump(cpu_gen_t *cpu);
81    
82  /* Set the address mode */  /* Update the data obtained by a read access */
83  int mts_set_addr_mode(cpu_mips_t *cpu,u_int addr_mode);  void memlog_update_read(cpu_gen_t *cpu,m_iptr_t raddr);
84    
85  /* Copy a memory block from VM physical RAM to real host */  /* Copy a memory block from VM physical RAM to real host */
86  void physmem_copy_from_vm(vm_instance_t *vm,void *real_buffer,  void physmem_copy_from_vm(vm_instance_t *vm,void *real_buffer,
# Line 102  m_uint16_t physmem_copy_u16_from_vm(vm_i Line 102  m_uint16_t physmem_copy_u16_from_vm(vm_i
102  /* Copy a 16-bit word to the VM physical RAM from real host */  /* Copy a 16-bit word to the VM physical RAM from real host */
103  void physmem_copy_u16_to_vm(vm_instance_t *vm,m_uint64_t paddr,m_uint16_t val);  void physmem_copy_u16_to_vm(vm_instance_t *vm,m_uint64_t paddr,m_uint16_t val);
104    
105    /* Copy a byte from the VM physical RAM to real host */
106    m_uint8_t physmem_copy_u8_from_vm(vm_instance_t *vm,m_uint64_t paddr);
107    
108    /* Copy a 16-bit word to the VM physical RAM from real host */
109    void physmem_copy_u8_to_vm(vm_instance_t *vm,m_uint64_t paddr,m_uint8_t val);
110    
111  /* DMA transfer operation */  /* DMA transfer operation */
112  void physmem_dma_transfer(vm_instance_t *vm,m_uint64_t src,m_uint64_t dst,  void physmem_dma_transfer(vm_instance_t *vm,m_uint64_t src,m_uint64_t dst,
113                            size_t len);                            size_t len);

Legend:
Removed from v.6  
changed lines
  Added in v.11

  ViewVC Help
Powered by ViewVC 1.1.26