Chinaunix
标题:
内存屏障疑问
[打印本页]
作者:
枫露清愁
时间:
2015-07-16 12:27
标题:
内存屏障疑问
最近看代码看到了内存屏障,之前大概了解过它的功能,但对下面这段代码有点疑问:
static void pl011_console_putchar(struct uart_port *port, int ch)
{
struct uart_amba_port *uap = (struct uart_amba_port *)port;
while (readw(uap->port.membase + UART01x_FR) & UART01x_FR_TXFF)
barrier();
writew(ch, uap->port.membase + UART01x_DR);
}
这里的功能应该是保证读写寄存器的顺序吧,但为什么把barrier函数放在了while里面?内核中很多地方都是这么干的
作者:
枫露清愁
时间:
2015-07-16 15:35
自己顶一下
作者:
枫露清愁
时间:
2015-07-16 19:15
求助大神啊
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2