*参照元 [#i0250fb4] #backlinks *説明 [#x86a3b6b] -パス: [[linux-4.4.1/kernel/time/hrtimer.c]] -FIXME: これは何? --説明 **引数 [#t5eb3cfc] -struct hrtimer *timer -- --[[linux-4.4.1/hrtimer]] -struct hrtimer_clock_base *base -- --[[linux-4.4.1/hrtimer_clock_base]] -bool restart -- **返り値 [#odf73213] -int -- **参考 [#m6209b5e] *実装 [#g1b6711a] /* * remove hrtimer, called with base lock held */ static inline int remove_hrtimer(struct hrtimer *timer, struct hrtimer_clock_base *base, bool restart) { if (hrtimer_is_queued(timer)) { unsigned long state = timer->state; int reprogram; - --[[linux-4.4.1/hrtimer_is_queued()]] /* * Remove the timer and force reprogramming when high * resolution mode is active and the timer is on the current * CPU. If we remove a timer on another CPU, reprogramming is * skipped. The interrupt event on this CPU is fired and * reprogramming happens in the interrupt handler. This is a * rare case and less expensive than a smp call. */ debug_deactivate(timer); timer_stats_hrtimer_clear_start_info(timer); reprogram = base->cpu_base == this_cpu_ptr(&hrtimer_bases); - --[[linux-4.4.1/debug_deactivate()]] --[[linux-4.4.1/timer_stats_hrtimer_clear_start_info()]] --[[linux-4.4.1/this_cpu_ptr()]] --[[linux-4.4.1/hrtimer_bases(global)]] if (!restart) state = HRTIMER_STATE_INACTIVE; __remove_hrtimer(timer, base, state, reprogram); - --[[linux-4.4.1/__remove_hrtimer()]] return 1; } return 0; } *コメント [#p8e1f6fa]