1 /* 2 * syscore_ops.h - System core operations. 3 * 4 * Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Novell Inc. 5 * 6 * This file is released under the GPLv2. 7 */ 8 9 #ifndef _LINUX_SYSCORE_OPS_H 10 #define _LINUX_SYSCORE_OPS_H 11 12 #include <linux/list.h> 13 14 struct syscore_ops { 15 struct list_head node; 16 int (*suspend)(void); 17 void (*resume)(void); 18 void (*shutdown)(void); 19 }; 20 21 extern void register_syscore_ops(struct syscore_ops *ops); 22 extern void unregister_syscore_ops(struct syscore_ops *ops); 23 #ifdef CONFIG_PM_SLEEP 24 extern int syscore_suspend(void); 25 extern void syscore_resume(void); 26 #endif 27 extern void syscore_shutdown(void); 28 29 #endif 30