ネストの例 ---------- preempt_disable(); プリエンプションカウント 0(許可) -> 1(禁止) ... preempt_disable(); プリエンプションカウント 1(禁止) -> 2(禁止) ... ... preempt_enable(); プリエンプションカウント 2(禁止) -> 1(禁止) ... preempt_enable(); プリエンプションカウント 1(禁止) -> 0(許可)
#ifdef CONFIG_PREEMPT
(略) #define preempt_disable() \ do { \ inc_preempt_count(); \
barrier(); \
} while (0) (略) #else
#define preempt_disable() do { } while (0)
(略) #endif