当前位置:  技术问答>linux和unix

两个问题一起问,Source Insight ,__setup("nosmp", nosmp);

    来源: 互联网  发布时间:2015-04-12

    本文导语:  问题甲: 怎样配置Source Insight 来看linux的源代码,能从变量、函数使用或调用的地方直接转到变量或函数定义的地方。 问题已: 在includelinuxinit.h里面__setup 宏定义如下: #define __setup(str, fn) static char __setup_s...

问题甲:
怎样配置Source Insight 来看linux的源代码,能从变量、函数使用或调用的地方直接转到变量或函数定义的地方。

问题已:
在includelinuxinit.h里面__setup 宏定义如下:
#define __setup(str, fn)
static char __setup_str_##fn[] __initdata = str;
static struct obs_kernel_param __setup_##fn
 __attribute__((unused,__section__ (".init.setup")))
= { __setup_str_##fn, fn }

在initmain.c里面有这样的代码:
__setup("nosmp", nosmp); 其中nosmp是个静态函数的名字。

请高手看看我对这行代码的理解对不对:
宏展开结果如下; 
static char_setup_str_nosmp[] _initdata="nosmp";
static struct obs_kernel_param_setup_nosmp 
       __attribute__((unused,__section__ (".init.setup")))
= { _setup_str_nosmp,nosmp }

我认为它通过 __setup("nosmp", nosmp) 宏完成了两个静态变量的定义,但是有个疑问就是,结构型变量 struct obs_kernel_param_setup_nosmp 没有经过定义,
直接给里面的域赋值,一个是字符串指针,一个是函数指针,我记得 c 语言面应该
先对结构型变量 struct obs_kernel_param_setup_nosmp 定义才对啊!!
请高手解惑!!!

|
来回答第一个问题,呵呵,简单的。再source insight 新建一个project.然后把你要看得文件都加到这个project里,呵呵~ 然后,就不说了……

|
你的扩展是对的。
注意:
static struct obs_kernel_param __setup_##fn
 __attribute__((unused,__section__ (".init.setup")))

obs_kernel_param__setup_##fn

这个东西obs_kernel_param应该是定义过的。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ MultiMaps 成员 swap():交换两个multimaps
  • 急!有两个char buf[]里面是两个日期(2004-08-02),怎样判断两个日期之间的天数?(只能用标准C)
  • C++ Lists(链表) 成员 merge():合并两个list
  • 一个Statement不能同时打开两个ResultSet?为了同时打开两个,可以考虑建立两个Statement?甚至两个Connection?
  • C++ Lists(链表) 成员 swap():交换两个list
  • Keepalived 能配两个虚拟ip吗,匹配两个数据库实例?
  • C++ Maps 成员 swap():交换两个map
  • 可以有其他两个类的实例同时调用一个java实例的两个方法吗?
  • C++ Vectors 成员 swap():交换两个Vector
  • 两个域名,两个端口,一个服务器……
  • C++ Lists(链表) 成员 splice():合并两个list
  • 你们看是不是可以这样理解:在用来进行两个对象的比较时,==操作符用来比较两个对象的引用地址,而equals()用来比较两个对象的值。
  • C++ Strings(字符串) 成员 swap():交换两个字符串的内容
  • 下载了jbuilder5,是rar格式的,解开后有两个文件,一个是rsc-jb5.bin,一个是rsc-jb5.cue,据说这两个文件是刻光盘的,请问谁知道怎么刻?不会用这两个文件直接安装吧?谢谢!
  • C++ Strings(字符串) 成员 compare():比较两个字符串
  • 基础问题,刚学的!请教,两个日期格式变量,我要求两个日期之间的天数,怎么求?
  • cocos2d中CCSpriteFrameCache文件同时存在两个plist的问题解决
  • 主进程有两个线程,fork子进程后复制主进程两个线程的内存么?
  • 我机器上安装了linux和win2000两个系统,请问如何在两个系统之间切换。
  • linux字符模式下怎样可以运行两个任务(开两个终端)
  • 听说,初学JAVA有两个开源程序是必看的,请问是哪两个。在那里下载?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3