Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3134 → Rev 3133

/trunk/kernel/arch/sparc64/include/barrier.h
57,8 → 57,10
#define write_barrier() \
asm volatile ("membar #StoreStore\n" ::: "memory")
 
#define flush(a) \
asm volatile ("flush %0\n" :: "r" ((a)) : "memory")
static inline void flush(uintptr_t addr)
{
asm volatile ("flush %0\n" :: "r" (addr) : "memory");
}
 
/** Flush Instruction Memory instruction. */
static inline void flush_blind(void)
88,15 → 90,6
flush((a)); \
}
 
#define FLUSH_INVAL_MIN 4
#define smc_coherence_block(a, l) \
{ \
unsigned long i; \
write_barrier(); \
for (i = 0; i < (l); i += FLUSH_INVAL_MIN) \
flush((void *)(a) + i); \
}
 
#endif
 
/** @}
/trunk/kernel/arch/ia64/include/barrier.h
62,16 → 62,6
srlz_i(); \
}
 
#define FC_INVAL_MIN 32
#define smc_coherence_block(a, l) \
{ \
unsigned long i; \
for (i = 0; i < (l); i += FC_INVAL_MIN) \
fc_i((void *)(a) + i); \
sync_i(); \
srlz_i(); \
}
 
#endif
 
/** @}
/trunk/kernel/arch/arm32/include/barrier.h
47,7 → 47,6
#define write_barrier() asm volatile ("" ::: "memory")
 
#define smc_coherence(a)
#define smc_coherence_block(a, l)
 
#endif
 
/trunk/kernel/arch/ppc32/include/barrier.h
43,7 → 43,6
#define write_barrier() asm volatile ("eieio" ::: "memory")
 
#define smc_coherence(a)
#define smc_coherence_block(a, l)
 
#endif
 
/trunk/kernel/arch/ppc64/include/barrier.h
43,7 → 43,6
#define write_barrier() asm volatile ("eieio" ::: "memory")
 
#define smc_coherence(a)
#define smc_coherence_block(a, l)
 
#endif
 
/trunk/kernel/arch/mips32/include/barrier.h
46,7 → 46,6
#define write_barrier() asm volatile ("" ::: "memory")
 
#define smc_coherence(a)
#define smc_coherence_block(a, l)
 
#endif
 
/trunk/kernel/arch/ia32/include/barrier.h
91,7 → 91,6
* sufficient for them to drain to the D-cache).
*/
#define smc_coherence(a) write_barrier()
#define smc_coherence_block(a, l) write_barrier()
 
#endif