======
local_irq_disable();======
early_boot_irqs_off();
early_init_irq_lock_class();
今日はlocal_irq_disableを見てみましょう。こちらはdefineで切られていて、実際に処理するのは「native_irq_disable」関数です。
include/asm-x86/irqflags.h
=====
static inline void native_irq_disable(void)=====
{
asm volatile("cli": : :"memory");
}
cliで割り込みを禁止しているだけです。最後の「memory」はコンパイラにメモリの場所を変更することを伝えています。なぜこれが必要なのかは理解できていません。。。
0 件のコメント:
コメントを投稿