at v2.6.13 1.3 kB view raw
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 26struct 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 36extern struct platform_t * platform; 37extern void default_reboot(char * cmd); 38extern void default_halt(void); 39extern int default_suspend(int state, int flags); 40extern void default_idle(void); 41 42#endif /* __KERNEL__ */ 43#endif /* _PLATFORM_H */