※ 引述《wayne8145 (wayne)》之铭言:
: 小弟Linux kernel新手
: 一个loadable module code中的function称为A
: 另一个linux kernel的source code称为B
: 目前的问题是我需要让B呼叫A
: 在B中include A 的header档,在link time发生如题的错误讯息(compile time没错!)
:
谢谢leo大详细的解释现在compile是过了...但runtime时喷dereference null pointer问题应该是我在Module assign函数指标了,但两个是不同process,B看不到A的变量,是否要用到shared memory让B看到跟A相同的变量才行小弟资质驽钝><
不对,在kernel里面,所有的code包然事后插入的module,都处于同一个process
leo大这句【然后你的module 启动的时候把你的函式内存位置塞到这个"函式指标"变量里面】module要怎么去得到主体code的‘’函式指标变量‘’因为AB是分开编译的,所以是我哪边有误会吗@@
你C语言不同C档案虽然不同时间编译依样可以共享全域变量对吧,例如libc里面的errno变量就是经典的例子,kernel跟module一定是同样的行程,所以kernel code里extern出来的变量或函式,module一定可以存取
作者:
cobrasgo (人鱼线变成鲔鱼线,超帅)
2016-02-19 18:49:00wayne我想你很多基础观念都还没搞懂
Linux kernel确实还是新手QQ我最后有解决了,不过方法有点不太一样,还是感谢leo大