免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2076 | 回复: 4
打印 上一主题 下一主题

[内核入门] 钩子函数返回值问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-08 17:02 |只看该作者 |倒序浏览
如题所示,我目前正在分析3.5.4内核源码中关于电源管理的部分,在/drivers/base/power/generic_ops.c文件中的很多函数中都调用了相应的钩子函数,是以三目运算的形式实现的,但是当执行完这些钩子函数时,它们的返回值会是什么呢?
比如:
int pm_generic_runtime_suspend(struct device *dev)
  {
        const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
          int ret;
  
          ret = pm && pm->runtime_suspend ? pm->runtime_suspend(dev) : 0;
  
          return ret;
  }
EXPORT_SYMBOL_GPL(pm_generic_runtime_suspend);
这里面调用了钩子函数->runtime_suspend(dev),我实在是不知道,也不敢乱猜,so,向各位求助……恳请指点。。。

论坛徽章:
0
2 [报告]
发表于 2013-03-08 17:15 |只看该作者
ret = pm && pm->runtime_suspend ? pm->runtime_suspend(dev) : 0;

if (pm != NULL)
  if (pm->runtime_suspend != NULL)
    ret = pm->runtime_suspend(dev);
else
  ret = 0;

另,这个问题跟内核无关。

论坛徽章:
0
3 [报告]
发表于 2013-03-08 17:34 |只看该作者
哦~~原来如此,我想通了,谢谢诶~~thankyou so much~回复 2# 灌水菜鸟


   

论坛徽章:
0
4 [报告]
发表于 2013-03-08 17:37 |只看该作者
but,当某个事件发生时,调用了这个钩子函数,那总得有个返回值呢吧~~,应该是什么呢?int型诶……回复 2# 灌水菜鸟


   

论坛徽章:
0
5 [报告]
发表于 2013-03-11 09:38 |只看该作者
回复 4# Helianthus_lu


    该是啥就是啥啊!这个跟普通函数调用没有区别。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP