【发布时间】:2020-05-16 07:40:15
【问题描述】:
以下代码来自include/asm-i386/io.h,它是从dma_map_single() 调用的。我的理解是flush_write_buffers() 应该在为 DMA 映射内存之前刷新 CPU 内存缓存。但是这段汇编代码是如何刷新 CPU 缓存的呢?
static inline void flush_write_buffers(void)
{
__asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory");
}
【问题讨论】:
标签: c assembly linux-kernel x86 dma