This source file includes following definitions.
- default_idle
- arch_cpu_idle_dead
- arch_cpu_idle
- select_idle_routine
- stop_this_cpu
   1 
   2 
   3 
   4 
   5 
   6 
   7 #include <linux/module.h>
   8 #include <linux/init.h>
   9 #include <linux/mm.h>
  10 #include <linux/pm.h>
  11 #include <linux/tick.h>
  12 #include <linux/preempt.h>
  13 #include <linux/thread_info.h>
  14 #include <linux/irqflags.h>
  15 #include <linux/smp.h>
  16 #include <linux/atomic.h>
  17 #include <asm/pgalloc.h>
  18 #include <asm/smp.h>
  19 #include <asm/bl_bit.h>
  20 
  21 static void (*sh_idle)(void);
  22 
  23 void default_idle(void)
  24 {
  25         set_bl_bit();
  26         local_irq_enable();
  27         
  28         cpu_sleep();
  29         clear_bl_bit();
  30 }
  31 
  32 void arch_cpu_idle_dead(void)
  33 {
  34         play_dead();
  35 }
  36 
  37 void arch_cpu_idle(void)
  38 {
  39         sh_idle();
  40 }
  41 
  42 void __init select_idle_routine(void)
  43 {
  44         
  45 
  46 
  47         if (!sh_idle)
  48                 sh_idle = default_idle;
  49 }
  50 
  51 void stop_this_cpu(void *unused)
  52 {
  53         local_irq_disable();
  54         set_cpu_online(smp_processor_id(), false);
  55 
  56         for (;;)
  57                 cpu_sleep();
  58 }