Changeset 408 for soft/giet_vm/giet_common/utils.h
- Timestamp:
- Sep 29, 2014, 10:47:26 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_common/utils.h
r399 r408 45 45 46 46 /////////////////////////////////////////////////////////////////////////////////// 47 /////////////////////////////////////////////////////////////////////////////////// 47 48 // CP0 registers access functions 48 49 /////////////////////////////////////////////////////////////////////////////////// 49 50 /////////////////////////////////////////////////////////////////////////////////// 51 52 /////////////////////////////////////////////////////////////////////////////////// 53 // Returns CP0_SCHED register content 54 // (virtual base address of the processor scheduler) 55 /////////////////////////////////////////////////////////////////////////////////// 50 56 extern unsigned int _get_sched(void); 57 58 /////////////////////////////////////////////////////////////////////////////////// 59 // Returns CP0_EPC register content. 60 /////////////////////////////////////////////////////////////////////////////////// 51 61 extern unsigned int _get_epc(void); 62 63 /////////////////////////////////////////////////////////////////////////////////// 64 // Returns CP0_BVAR register content. 65 /////////////////////////////////////////////////////////////////////////////////// 52 66 extern unsigned int _get_bvar(void); 67 68 /////////////////////////////////////////////////////////////////////////////////// 69 // Returns CP0_CR register content. 70 /////////////////////////////////////////////////////////////////////////////////// 53 71 extern unsigned int _get_cr(void); 72 73 /////////////////////////////////////////////////////////////////////////////////// 74 // Returns CP0_SR register content. 75 /////////////////////////////////////////////////////////////////////////////////// 54 76 extern unsigned int _get_sr(void); 77 78 /////////////////////////////////////////////////////////////////////////////////// 79 // Returns CP0_PROCID register content. 80 // Processor identifier (12 bits) 81 /////////////////////////////////////////////////////////////////////////////////// 55 82 extern unsigned int _get_procid(void); 83 84 /////////////////////////////////////////////////////////////////////////////////// 85 // Returns CP0_TIME register content. 86 // Processor local time (32 bits) 87 /////////////////////////////////////////////////////////////////////////////////// 56 88 extern unsigned int _get_proctime(void); 57 89 90 /////////////////////////////////////////////////////////////////////////////////// 91 // Save CP0_SR value to variable pointed by save_sr_ptr and disable IRQs. 92 /////////////////////////////////////////////////////////////////////////////////// 58 93 extern void _it_disable( unsigned int* save_sr_ptr ); 94 95 /////////////////////////////////////////////////////////////////////////////////// 96 // Restore CP0_SR register from variable pointed by save_sr_ptr. 97 /////////////////////////////////////////////////////////////////////////////////// 59 98 extern void _it_restore( unsigned int* save_sr_ptr ); 60 99 100 /////////////////////////////////////////////////////////////////////////////////// 101 // Set a new value in CP0_SCHED register. 102 // (virtual base address of the processor scheduler) 103 /////////////////////////////////////////////////////////////////////////////////// 61 104 extern void _set_sched(unsigned int value); 105 106 /////////////////////////////////////////////////////////////////////////////////// 107 // Set a new value in CP0_SR register. 108 /////////////////////////////////////////////////////////////////////////////////// 62 109 extern void _set_sr(unsigned int value); 63 110 111 112 /////////////////////////////////////////////////////////////////////////////////// 64 113 /////////////////////////////////////////////////////////////////////////////////// 65 114 // CP2 registers access functions 66 115 /////////////////////////////////////////////////////////////////////////////////// 67 116 /////////////////////////////////////////////////////////////////////////////////// 117 118 /////////////////////////////////////////////////////////////////////////////////// 119 // Returns CP2_PTPR register value. 120 // Page table physical base address for the running context. 121 // Contains only the 27 MSB bits, right justified. 122 /////////////////////////////////////////////////////////////////////////////////// 68 123 extern unsigned int _get_mmu_ptpr(void); 124 125 /////////////////////////////////////////////////////////////////////////////////// 126 // Returns CP2_MODE register value. 127 // MMU current mode, defined by 4 bits, right justified: ITLB/DTLB/ICACHE/DCACHE 128 /////////////////////////////////////////////////////////////////////////////////// 69 129 extern unsigned int _get_mmu_mode(void); 70 130 131 /////////////////////////////////////////////////////////////////////////////////// 132 // Set a new value in CP2_PTPR register. 133 /////////////////////////////////////////////////////////////////////////////////// 71 134 extern void _set_mmu_ptpr(unsigned int value); 135 136 /////////////////////////////////////////////////////////////////////////////////// 137 // Set a new value in CP2_MODE register. 138 /////////////////////////////////////////////////////////////////////////////////// 72 139 extern void _set_mmu_mode(unsigned int value); 73 140 74 141 /////////////////////////////////////////////////////////////////////////////////// 142 // Set a value in CP2_DCACHE_INVAL register. 143 // It invalidates the data cache line, if the virtual address defined by the 144 // value argument hit in DCACHE. 145 /////////////////////////////////////////////////////////////////////////////////// 146 extern void _set_mmu_dcache_inval(unsigned int value); 147 148 149 150 /////////////////////////////////////////////////////////////////////////////////// 151 /////////////////////////////////////////////////////////////////////////////////// 75 152 // Physical addressing related functions 153 /////////////////////////////////////////////////////////////////////////////////// 76 154 /////////////////////////////////////////////////////////////////////////////////// 77 155 … … 163 241 char* source ); 164 242 165 extern void _dcache_buf_invalidate( void * buffer,166 unsigned int size );243 extern void _dcache_buf_invalidate( unsigned int buf_vbase, 244 unsigned int buf_size ); 167 245 168 246 extern unsigned int _heap_info( unsigned int* vaddr,
Note: See TracChangeset
for help on using the changeset viewer.