vserver 1.9.5.x5
[linux-2.6.git] / drivers / base / power / power.h
1
2
3 enum {
4         DEVICE_PM_ON,
5         DEVICE_PM1,
6         DEVICE_PM2,
7         DEVICE_PM3,
8         DEVICE_PM_OFF,
9 };
10
11 /*
12  * shutdown.c
13  */
14
15 extern int device_detach_shutdown(struct device *);
16 extern void device_shutdown(void);
17
18
19 #ifdef CONFIG_PM
20
21 /*
22  * main.c
23  */
24
25 /*
26  * Used to synchronize global power management operations.
27  */
28 extern struct semaphore dpm_sem;
29
30 /*
31  * Used to serialize changes to the dpm_* lists.
32  */
33 extern struct semaphore dpm_list_sem;
34
35 /*
36  * The PM lists.
37  */
38 extern struct list_head dpm_active;
39 extern struct list_head dpm_off;
40 extern struct list_head dpm_off_irq;
41
42
43 static inline struct dev_pm_info * to_pm_info(struct list_head * entry)
44 {
45         return container_of(entry, struct dev_pm_info, entry);
46 }
47
48 static inline struct device * to_device(struct list_head * entry)
49 {
50         return container_of(to_pm_info(entry), struct device, power);
51 }
52
53 extern int device_pm_add(struct device *);
54 extern void device_pm_remove(struct device *);
55
56 /*
57  * sysfs.c
58  */
59
60 extern int dpm_sysfs_add(struct device *);
61 extern void dpm_sysfs_remove(struct device *);
62
63 /*
64  * resume.c
65  */
66
67 extern void dpm_resume(void);
68 extern void dpm_power_up(void);
69 extern int resume_device(struct device *);
70
71 /*
72  * suspend.c
73  */
74 extern int suspend_device(struct device *, pm_message_t);
75
76
77 /*
78  * runtime.c
79  */
80
81 extern int dpm_runtime_suspend(struct device *, pm_message_t);
82 extern void dpm_runtime_resume(struct device *);
83
84 #else /* CONFIG_PM */
85
86
87 static inline int device_pm_add(struct device * dev)
88 {
89         return 0;
90 }
91 static inline void device_pm_remove(struct device * dev)
92 {
93
94 }
95
96 static inline int dpm_runtime_suspend(struct device * dev, pm_message_t state)
97 {
98         return 0;
99 }
100
101 static inline void dpm_runtime_resume(struct device * dev)
102 {
103
104 }
105
106 #endif