aboutsummaryrefslogtreecommitdiff
path: root/include/linux/platform.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/platform.h')
-rw-r--r--include/linux/platform.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/include/linux/platform.h b/include/linux/platform.h
new file mode 100644
index 00000000000..3c33084a6ec
--- /dev/null
+++ b/include/linux/platform.h
@@ -0,0 +1,43 @@
+/*
+ * include/linux/platform.h - platform driver definitions
+ *
+ * Because of the prolific consumerism of the average American,
+ * and the dominant marketing budgets of PC OEMs, we have been
+ * blessed with frequent updates of the PC architecture.
+ *
+ * While most of these calls are singular per architecture, they
+ * require an extra layer of abstraction on the x86 so the right
+ * subsystem gets the right call.
+ *
+ * Basically, this consolidates the power off and reboot callbacks
+ * into one structure, as well as adding power management hooks.
+ *
+ * When adding a platform driver, please make sure all callbacks are
+ * filled. There are defaults defined below that do nothing; use those
+ * if you do not support that callback.
+ */
+
+#ifndef _PLATFORM_H_
+#define _PLATFORM_H_
+#ifdef __KERNEL__
+
+#include <linux/types.h>
+
+struct platform_t {
+ char * name;
+ u32 suspend_states;
+ void (*reboot)(char * cmd);
+ void (*halt)(void);
+ void (*power_off)(void);
+ int (*suspend)(int state, int flags);
+ void (*idle)(void);
+};
+
+extern struct platform_t * platform;
+extern void default_reboot(char * cmd);
+extern void default_halt(void);
+extern int default_suspend(int state, int flags);
+extern void default_idle(void);
+
+#endif /* __KERNEL__ */
+#endif /* _PLATFORM_H */