]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - include/linux/platform.h
Linux-2.6.12-rc2
[mirror_ubuntu-artful-kernel.git] / include / linux / platform.h
1 /*
2 * include/linux/platform.h - platform driver definitions
3 *
4 * Because of the prolific consumerism of the average American,
5 * and the dominant marketing budgets of PC OEMs, we have been
6 * blessed with frequent updates of the PC architecture.
7 *
8 * While most of these calls are singular per architecture, they
9 * require an extra layer of abstraction on the x86 so the right
10 * subsystem gets the right call.
11 *
12 * Basically, this consolidates the power off and reboot callbacks
13 * into one structure, as well as adding power management hooks.
14 *
15 * When adding a platform driver, please make sure all callbacks are
16 * filled. There are defaults defined below that do nothing; use those
17 * if you do not support that callback.
18 */
19
20 #ifndef _PLATFORM_H_
21 #define _PLATFORM_H_
22 #ifdef __KERNEL__
23
24 #include <linux/types.h>
25
26 struct platform_t {
27 char * name;
28 u32 suspend_states;
29 void (*reboot)(char * cmd);
30 void (*halt)(void);
31 void (*power_off)(void);
32 int (*suspend)(int state, int flags);
33 void (*idle)(void);
34 };
35
36 extern struct platform_t * platform;
37 extern void default_reboot(char * cmd);
38 extern void default_halt(void);
39 extern int default_suspend(int state, int flags);
40 extern void default_idle(void);
41
42 #endif /* __KERNEL__ */
43 #endif /* _PLATFORM_H */