kernel syscore

syscore在低功耗流程中起到关键作用,主要涉及syscore_ops.h和syscore.c文件。它定义了struct syscore_ops结构体,并提供register_syscore_ops、unregister_syscore_ops、syscore_suspend、syscore_resume和syscore_shutdown等接口。这些接口在系统挂起、恢复和关闭等不同阶段执行特定操作,如中断屏蔽条件下的回调函数执行。
摘要由CSDN通过智能技术生成

syscore作为低功耗流程的一部分,其涉及的文件主要有syscore_ops.h和syscore.c,这一级别的回调函数是在完全屏蔽中断的场景下进行的。

1、主要结构体struct syscore_ops,该结构体是syscore操作的对象类型。

struct syscore_ops {
	struct list_head node;//用于链表控制,注册和删除syscore对象时操作此链表完成
	int (*suspend)(void);//睡眠流程时回调函数
	void (*resume)(void);//唤醒流程时回调函数
	void (*shutdown)(void);//这一级别的回调函数主要用于系统级的重启、停止或者掉电时才会使用
};

2、主要接口:

extern void register_syscore_ops(struct syscore_ops *ops);//注册syscore回调函数
extern void unregister_syscore_ops(struct syscore_ops *ops);//取消注册的回调函数
#ifdef CONFIG_PM_SLEEP
extern int syscore_suspend(void);//回调注册的syscore对象的suspend回调函数
extern void syscore_resume(void);//回调注册的syscore对象的resume回调函数
#endif
extern void syscore_shutdown(void);//回调注册的syscore对象的shutdown回调函数

3、具体实现,syscore.c

1)全局变量

static LIST_HEAD(syscore_ops_list);//初始化控制链表头结点,统一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值