Changeset 378 for soft/giet_vm
- Timestamp:
- Aug 5, 2014, 4:15:52 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_common/utils.c
r370 r378 27 27 // and should not be larger than 32. 28 28 /////////////////////////////////////////////////////////////////////////////////// 29 inlinevoid _random_wait( unsigned int val )29 void _random_wait( unsigned int val ) 30 30 { 31 31 unsigned int mask = (1<<(val&0x1F))-1; … … 44 44 // Code taken from MutekH. 45 45 /////////////////////////////////////////////////////////////////////////////////// 46 inlinevoid* memcpy( void* dest, // dest buffer vbase46 void* memcpy( void* dest, // dest buffer vbase 47 47 const void* source, // source buffer vbase 48 48 unsigned int size ) // bytes … … 74 74 // Fill a byte string with a byte value. 75 75 ////////////////////////////////////////////////////////////////////////////////// 76 inlinevoid * memset( void* dest,76 void * memset( void* dest, 77 77 int value, 78 78 unsigned int count ) … … 108 108 // The "str" argument is supposed to indicate the break location. 109 109 ////////////////////////////////////////////////////////////////////////////////// 110 inlinevoid _break( char* string )110 void _break( char* string ) 111 111 { 112 112 char byte; … … 120 120 ////////////////////////////////////////////////////////////////////////////////// 121 121 __attribute__((noreturn)) 122 inlinevoid _exit()122 void _exit() 123 123 { 124 124 unsigned int procid = _get_procid(); … … 141 141 // (virtual base address of the processor scheduler). 142 142 /////////////////////////////////////////////////////////////////////////////////// 143 inlineunsigned int _get_sched()143 unsigned int _get_sched() 144 144 { 145 145 unsigned int ret; … … 151 151 // Returns PTPR register content. 152 152 /////////////////////////////////////////////////////////////////////////////////// 153 inlineunsigned int _get_mmu_ptpr()153 unsigned int _get_mmu_ptpr() 154 154 { 155 155 unsigned int ret; … … 161 161 // Returns MODE register content. 162 162 /////////////////////////////////////////////////////////////////////////////////// 163 inlineunsigned int _get_mmu_mode()163 unsigned int _get_mmu_mode() 164 164 { 165 165 unsigned int ret; … … 171 171 // Returns EPC register content. 172 172 /////////////////////////////////////////////////////////////////////////////////// 173 inlineunsigned int _get_epc()173 unsigned int _get_epc() 174 174 { 175 175 unsigned int ret; … … 181 181 // Returns BVAR register content. 182 182 /////////////////////////////////////////////////////////////////////////////////// 183 inlineunsigned int _get_bvar()183 unsigned int _get_bvar() 184 184 { 185 185 unsigned int ret; … … 191 191 // Returns CR register content. 192 192 /////////////////////////////////////////////////////////////////////////////////// 193 inlineunsigned int _get_cr()193 unsigned int _get_cr() 194 194 { 195 195 unsigned int ret; … … 201 201 // Returns SR register content 202 202 /////////////////////////////////////////////////////////////////////////////////// 203 inlineunsigned int _get_sr()203 unsigned int _get_sr() 204 204 { 205 205 unsigned int ret; … … 211 211 // This function set a new value for the CP0 status register. 212 212 ////////////////////////////////////////////////////////////////////////////// 213 inlinevoid _set_sr(unsigned int val)213 void _set_sr(unsigned int val) 214 214 { 215 215 asm volatile( "mtc0 %0, $12 \n" … … 220 220 // Returns processor index 221 221 ////////////////////////////////////////////////////////////////////////////// 222 inlineunsigned int _get_procid()222 unsigned int _get_procid() 223 223 { 224 224 unsigned int ret; … … 231 231 // boot_proctime() 232 232 ////////////////////////////////////////////////////////////////////////////// 233 inlineunsigned int _get_proctime()233 unsigned int _get_proctime() 234 234 { 235 235 unsigned int ret; … … 250 250 // Save SR value into save_sr_ptr variable and disable IRQs. 251 251 ////////////////////////////////////////////////////////////////////////////// 252 inlinevoid _it_disable( unsigned int * save_sr_ptr)252 void _it_disable( unsigned int * save_sr_ptr) 253 253 { 254 254 unsigned int sr = 0; … … 265 265 // Enables IRQs 266 266 ////////////////////////////////////////////////////////////////////////////// 267 inlinevoid _it_enable()267 void _it_enable() 268 268 { 269 269 asm volatile( "li $3, 0x00000001 \n" … … 277 277 // Restores previous SR value. 278 278 ////////////////////////////////////////////////////////////////////////////// 279 inlinevoid _it_restore( unsigned int * save_sr_ptr )279 void _it_restore( unsigned int * save_sr_ptr ) 280 280 { 281 281 unsigned int sr = *save_sr_ptr; … … 289 289 // This function set a new value for the MMU PTPR register. 290 290 ////////////////////////////////////////////////////////////////////////////// 291 inlinevoid _set_mmu_ptpr(unsigned int val)291 void _set_mmu_ptpr(unsigned int val) 292 292 { 293 293 asm volatile ( "mtc2 %0, $0 \n" … … 299 299 // This function set a new value for the MMU MODE register. 300 300 ////////////////////////////////////////////////////////////////////////////// 301 inlinevoid _set_mmu_mode(unsigned int val)301 void _set_mmu_mode(unsigned int val) 302 302 { 303 303 asm volatile ( "mtc2 %0, $1 \n" … … 310 310 // (virtual base address of the processor scheduler). 311 311 ////////////////////////////////////////////////////////////////////////////// 312 inlinevoid _set_sched(unsigned int val)312 void _set_sched(unsigned int val) 313 313 { 314 314 asm volatile ( "mtc0 %0, $4, 2 \n" … … 325 325 // after a temporary DTLB de-activation and paddr extension. 326 326 //////////////////////////////////////////////////////////////////////////// 327 inlineunsigned int _physical_read( unsigned long long paddr )327 unsigned int _physical_read( unsigned long long paddr ) 328 328 { 329 329 unsigned int value; … … 354 354 // after a temporary DTLB de-activation and paddr extension. 355 355 //////////////////////////////////////////////////////////////////////////// 356 inlinevoid _physical_write( unsigned long long paddr,356 void _physical_write( unsigned long long paddr, 357 357 unsigned int value ) 358 358 { … … 384 384 // after a temporary DTLB de-activation and paddr extension. 385 385 //////////////////////////////////////////////////////////////////////////// 386 inlineunsigned long long _physical_read_ull( unsigned long long paddr )386 unsigned long long _physical_read_ull( unsigned long long paddr ) 387 387 { 388 388 unsigned int data_lsb; … … 418 418 // after a temporary DTLB de-activation and paddr extension. 419 419 //////////////////////////////////////////////////////////////////////////// 420 inlinevoid _physical_write_ull( unsigned long long paddr,420 void _physical_write_ull( unsigned long long paddr, 421 421 unsigned long long value ) 422 422 { … … 453 453 // multiple of 4 bytes. 454 454 /////////////////////////////////////////////////////////////////////////////////// 455 inlinevoid _physical_memcpy( unsigned long long dst_paddr, // dest buffer paddr455 void _physical_memcpy( unsigned long long dst_paddr, // dest buffer paddr 456 456 unsigned long long src_paddr, // source buffer paddr 457 457 unsigned int size ) // bytes … … 508 508 // X_IO and Y_IO to reach the cluster_io. 509 509 /////////////////////////////////////////////////////////////////////////////////// 510 inlinevoid _io_extended_write( unsigned int* vaddr,510 void _io_extended_write( unsigned int* vaddr, 511 511 unsigned int value ) 512 512 { … … 531 531 // X_IO and Y_IO to reach the cluster_io. 532 532 /////////////////////////////////////////////////////////////////////////////////// 533 inlineunsigned int _io_extended_read( unsigned int* vaddr )533 unsigned int _io_extended_read( unsigned int* vaddr ) 534 534 { 535 535 unsigned long long paddr; … … 561 561 // betwween two successive retry. 562 562 /////////////////////////////////////////////////////////////////////////////////// 563 inlinevoid _get_lock(giet_lock_t* lock)563 void _get_lock(giet_lock_t* lock) 564 564 { 565 565 register unsigned int* plock = &(lock->value); … … 612 612 // Release a previouly taken lock. 613 613 /////////////////////////////////////////////////////////////////////////////////// 614 inlinevoid _release_lock(giet_lock_t* lock)614 void _release_lock(giet_lock_t* lock) 615 615 { 616 616 asm volatile ( "sync\n" ::: "memory" ); … … 1065 1065 // Access functions to mapping_info data structure 1066 1066 ///////////////////////////////////////////////////////////////////////////// 1067 inlinemapping_cluster_t * _get_cluster_base(mapping_header_t * header)1067 mapping_cluster_t * _get_cluster_base(mapping_header_t * header) 1068 1068 { 1069 1069 return (mapping_cluster_t *) ((char *) header + … … 1071 1071 } 1072 1072 ///////////////////////////////////////////////////////////////////////////// 1073 inlinemapping_pseg_t * _get_pseg_base(mapping_header_t * header)1073 mapping_pseg_t * _get_pseg_base(mapping_header_t * header) 1074 1074 { 1075 1075 return (mapping_pseg_t *) ((char *) header + … … 1078 1078 } 1079 1079 ///////////////////////////////////////////////////////////////////////////// 1080 inlinemapping_vspace_t * _get_vspace_base(mapping_header_t * header)1080 mapping_vspace_t * _get_vspace_base(mapping_header_t * header) 1081 1081 { 1082 1082 return (mapping_vspace_t *) ((char *) header + … … 1086 1086 } 1087 1087 ///////////////////////////////////////////////////////////////////////////// 1088 inlinemapping_vseg_t * _get_vseg_base(mapping_header_t * header)1088 mapping_vseg_t * _get_vseg_base(mapping_header_t * header) 1089 1089 { 1090 1090 return (mapping_vseg_t *) ((char *) header + … … 1095 1095 } 1096 1096 ///////////////////////////////////////////////////////////////////////////// 1097 inlinemapping_vobj_t * _get_vobj_base(mapping_header_t * header)1097 mapping_vobj_t * _get_vobj_base(mapping_header_t * header) 1098 1098 { 1099 1099 return (mapping_vobj_t *) ((char *) header + … … 1105 1105 } 1106 1106 ///////////////////////////////////////////////////////////////////////////// 1107 inlinemapping_task_t * _get_task_base(mapping_header_t * header)1107 mapping_task_t * _get_task_base(mapping_header_t * header) 1108 1108 { 1109 1109 return (mapping_task_t *) ((char *) header + … … 1116 1116 } 1117 1117 ///////////////////////////////////////////////////////////////////////////// 1118 inlinemapping_proc_t *_get_proc_base(mapping_header_t * header)1118 mapping_proc_t *_get_proc_base(mapping_header_t * header) 1119 1119 { 1120 1120 return (mapping_proc_t *) ((char *) header + … … 1128 1128 } 1129 1129 ///////////////////////////////////////////////////////////////////////////// 1130 inlinemapping_irq_t *_get_irq_base(mapping_header_t * header)1130 mapping_irq_t *_get_irq_base(mapping_header_t * header) 1131 1131 { 1132 1132 return (mapping_irq_t *) ((char *) header + … … 1141 1141 } 1142 1142 ///////////////////////////////////////////////////////////////////////////// 1143 inlinemapping_coproc_t *_get_coproc_base(mapping_header_t * header)1143 mapping_coproc_t *_get_coproc_base(mapping_header_t * header) 1144 1144 { 1145 1145 return (mapping_coproc_t *) ((char *) header + … … 1155 1155 } 1156 1156 /////////////////////////////////////////////////////////////////////////////////// 1157 inlinemapping_cp_port_t *_get_cp_port_base(mapping_header_t * header)1157 mapping_cp_port_t *_get_cp_port_base(mapping_header_t * header) 1158 1158 { 1159 1159 return (mapping_cp_port_t *) ((char *) header + … … 1170 1170 } 1171 1171 /////////////////////////////////////////////////////////////////////////////////// 1172 inlinemapping_periph_t *_get_periph_base(mapping_header_t * header)1172 mapping_periph_t *_get_periph_base(mapping_header_t * header) 1173 1173 { 1174 1174 return (mapping_periph_t *) ((char *) header +
Note: See TracChangeset
for help on using the changeset viewer.