1*55716d26SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 240dc166cSRafael J. Wysocki /* 340dc166cSRafael J. Wysocki * syscore_ops.h - System core operations. 440dc166cSRafael J. Wysocki * 540dc166cSRafael J. Wysocki * Copyright (C) 2011 Rafael J. Wysocki <[email protected]>, Novell Inc. 640dc166cSRafael J. Wysocki */ 740dc166cSRafael J. Wysocki 840dc166cSRafael J. Wysocki #ifndef _LINUX_SYSCORE_OPS_H 940dc166cSRafael J. Wysocki #define _LINUX_SYSCORE_OPS_H 1040dc166cSRafael J. Wysocki 1140dc166cSRafael J. Wysocki #include <linux/list.h> 1240dc166cSRafael J. Wysocki 1340dc166cSRafael J. Wysocki struct syscore_ops { 1440dc166cSRafael J. Wysocki struct list_head node; 1540dc166cSRafael J. Wysocki int (*suspend)(void); 1640dc166cSRafael J. Wysocki void (*resume)(void); 1740dc166cSRafael J. Wysocki void (*shutdown)(void); 1840dc166cSRafael J. Wysocki }; 1940dc166cSRafael J. Wysocki 2040dc166cSRafael J. Wysocki extern void register_syscore_ops(struct syscore_ops *ops); 2140dc166cSRafael J. Wysocki extern void unregister_syscore_ops(struct syscore_ops *ops); 2240dc166cSRafael J. Wysocki #ifdef CONFIG_PM_SLEEP 2340dc166cSRafael J. Wysocki extern int syscore_suspend(void); 2440dc166cSRafael J. Wysocki extern void syscore_resume(void); 2540dc166cSRafael J. Wysocki #endif 2640dc166cSRafael J. Wysocki extern void syscore_shutdown(void); 2740dc166cSRafael J. Wysocki 2840dc166cSRafael J. Wysocki #endif 29