Android電源管理之wake_lock驅動

1.wake_lock是什麼?java

wake_lock是一個數據結構,是一種鎖機制,顧名思義它是一把喚醒鎖,只要有用戶持有這把鎖,系統將沒法進入睡眠狀態,這個鎖能夠是有超時的或者是沒有超時的,超時的鎖會在時間過去之後自動解鎖.若是沒有鎖了或者超時了,內核就會啓動標準linux的那套休眠機制機制來進入休眠.wake_lock數據結構在include/linux/wakelock.h中被定義:linux

struct wake_lock {
#ifdef CONFIG_HAS_WAKELOCK
	struct list_head    link;	/*指向全局鏈表(list_lock)*/
	int                 flags;
	const char         *name;
	unsigned long       expires;
#ifdef CONFIG_WAKELOCK_STAT
	struct {
		int             count;
		int             expire_count;
		int             wakeup_count;
		ktime_t         total_time;
		ktime_t         prevent_suspend_time;
		ktime_t         max_time;
		ktime_t         last_time;
	} stat;
#endif
#endif
};
相關文章
相關標籤/搜索