是什么 是一个数据结构是一种锁机制顾名思义它是一把唤醒锁只要有用户持有这把锁系统将无法进入睡眠状态这个锁可以是有超时的或者是没有超时的超时的锁会在时间过去以后自动解锁如果没有锁了或者超时了内核就会启动标准的那套休眠机制机制来进入休眠 数据结构在中被定义: 
 
  
  1. struct wake_lock { 
  2. #ifdef CONFIG_HAS_WAKELOCK 
  3.     struct list_head    link;   /*指向全局链表(list_lock)*/ 
  4.     int                 flags; 
  5.     const char         *name;
  6.     unsigned long       expires; 
  7. #ifdef CONFIG_WAKELOCK_STAT 
  8.     struct { 
  9.         int             count; 
  10.         int             expire_count; 
  11.         int             wakeup_count; 
  12.         ktime_t         total_time; 
  13.         ktime_t         prevent_suspend_time; 
  14.         ktime_t         max_time; 
  15.         ktime_t         last_time; 
  16.     } stat; 
  17. #endif 
  18. #endif 
  19. }; 
的分类
为提供两种类型定义如下
 
  
  1. enum { 
  2.     WAKE_LOCK_SUSPEND, /* Prevent suspend */ 
  3.     WAKE_LOCK_IDLE,    /* Prevent low power idle */ 
  4.     WAKE_LOCK_TYPE_COUNT 
  5. };