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