⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pm_drv.c

📁 准考证号 姓名 外国语成绩 政治理论成绩 业务课1成绩 业务课2成绩 总分 104416660000953 潘小梅 56 54 91 107 308
💻 C
字号:
#include <linux/config.h>#include <linux/pm.h>#include <linux/module.h>#include <asm/hardware.h>/* Debugging macros */#undef DEBUG_PMDRV#ifdef DEBUG_PMDRV#define DPRINTK(args...)	printk(##args)#else#define DPRINTK(args...)#endifextern int pm_do_suspend(void);/* kernel/pm.c */extern int pm_send_all_type(pm_dev_t type, pm_request_t rqst, void *data);int pm_sys_suspend(void){	int ret;	DPRINTK("In "__FUNCTION__"\n");		event_notify(SYSTEM_SLEEP);#if 0	ret = pm_send_all(PM_SUSPEND, (void *)2);	if (ret) {		pm_send_all(PM_RESUME, (void *)0);		event_notify(SYSTEM_WAKEUP);		return ret;	}#else	ret = pm_send_all_type(PM_DEBUG_DEV, PM_SUSPEND, (void *)2);	if (ret) {		pm_send_all_type(PM_DEBUG_DEV, PM_RESUME, (void *)0);		event_notify(SYSTEM_WAKEUP);		return ret;	}#endif	ret = pm_do_suspend();	//pm_access(pm_dev);	#if 0	ret = pm_send_all_type(PM_USER_DEV, PM_RESUME, (void *)0);#else	ret = pm_send_all_type(PM_DEBUG_DEV, PM_RESUME, (void *)0);	if (ret) {		printk("Warning. Somewrong while wakeup the system");	}#endif	event_notify(SYSTEM_WAKEUP);	//run_sbin_pm_helper(PM_RESUME);	return ret;}intpm_user_suspend(void){	DPRINTK("In "__FUNCTION__"\n");	//ret = pm_send_all_type(PM_USER_DEV, PM_SUSPEND, (void *)2);	//ret = pm_send_target(PM_SYS_DEV, PM_SYS_PCMCIA, PM_SUSPEND, (void *)2);	//	pm_sys_suspend();	//run_sbin_pm_helper(PM_SUSPEND);	return 0;}EXPORT_SYMBOL(pm_user_suspend);static char pm_helper_path[128] = "/usr/sbin/pm_helper";extern int call_usermodehelper(char *path, char **argv, char **envp);#if 0 // not yet ?static voidrun_sbin_pm_helper(pm_request_t req){	int i;	char *argv[3], *envp[8];	if (!pm_helper_path[0])		return;	if (req != PM_SUSPEND && req != PM_RESUME)		return;	i = 0;	argv[i++] = pm_helper_path;	argv[i++] = (req == PM_RESUME ? "resume" : "suspend");	argv[i] = 0;#if 0	DPRITNK(__FUNCTION__":%d pm_helper_path=%s\n", __LINE__,		pm_helper_path);#endif	i = 0;	/* minimal command environment */	envp[i++] = "HOME=/";	envp[i++] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";	envp[i] = 0;	/* other stuff we want to pass to /sbin/pm_helper */	call_usermodehelper(argv[0], argv, envp);}#endif /* not yet ? */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -