Changeset 7328ff4 in mainline for kernel/arch/ppc32/src/smc.c
- Timestamp:
- 2018-09-06T18:18:52Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ffa73c6
- Parents:
- d51cca8
- git-author:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-08-13 01:29:17)
- git-committer:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-09-06 18:18:52)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ppc32/src/smc.c
rd51cca8 r7328ff4 27 27 */ 28 28 29 /** @addtogroup ppc3230 * @{31 */32 /** @file33 */34 29 35 #ifndef KERN_ppc32_BARRIER_H_ 36 #define KERN_ppc32_BARRIER_H_ 37 38 #include <trace.h> 39 40 #define CS_ENTER_BARRIER() asm volatile ("" ::: "memory") 41 #define CS_LEAVE_BARRIER() asm volatile ("" ::: "memory") 42 43 #define memory_barrier() asm volatile ("sync" ::: "memory") 44 #define read_barrier() asm volatile ("sync" ::: "memory") 45 #define write_barrier() asm volatile ("eieio" ::: "memory") 46 47 #define instruction_barrier() \ 48 asm volatile ( \ 49 "sync\n" \ 50 "isync\n" \ 51 ) 52 53 #ifdef KERNEL 30 #include <barrier.h> 54 31 55 32 #define COHERENCE_INVAL_MIN 4 … … 62 39 */ 63 40 64 NO_TRACE static inline void smc_coherence(void *addr, unsigned int len)41 void smc_coherence(void *addr, size_t len) 65 42 { 66 43 unsigned int i; … … 72 49 ); 73 50 74 memory_barrier();51 asm volatile ("sync" ::: "memory"); 75 52 76 53 for (i = 0; i < len; i += COHERENCE_INVAL_MIN) … … 80 57 ); 81 58 82 instruction_barrier(); 59 asm volatile ("sync" ::: "memory"); 60 asm volatile ("isync" ::: "memory"); 83 61 } 84 62 85 #endif /* KERNEL */86 87 #endif88 89 /** @}90 */
Note:
See TracChangeset
for help on using the changeset viewer.