<div dir="ltr"><font size="4">Thanks very much! I will try that later. What you mentioned is another amazing sight. But I am confused that why it can&#39;t work if I export a function from my module and call it in the kvm? Do I have to modify the makefile of kvm? How? I have referenced to the doc of KBuild. It said that :</font><div>
<div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp; &nbsp; Sometimes, an external module uses exported symbols from</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp; another external module. kbuild needs to have full knowledge of</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp; all symbols to avoid spliitting out warnings about undefined</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp; symbols.&nbsp;<font color="#ff0000">Three solutions exist for this situation.</font></div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp; NOTE: The method with a top-level kbuild file is recommended</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp; but may be impractical in certain situations.</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff0000">Use a top-level kbuild file</font></div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If you have two modules, foo.ko and bar.ko, where</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foo.ko needs symbols from bar.ko, you can use a</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; common top-level kbuild file so both modules are</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compiled in the same build. Consider the following</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; directory layout:</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./foo/ &lt;= contains foo.ko</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./bar/ &lt;= contains bar.ko</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The top-level kbuild file would then look like:</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #./Kbuild (or ./Makefile):</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj-y := foo/ bar/</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; And executing</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ make -C $KDIR M=$PWD</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; will then do the expected and compile both modules with</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; full knowledge of symbols from either module.</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
<font color="#ff0000">&nbsp;&nbsp;&nbsp; Use an extra Module.symvers file</font></div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When an external module is built, a Module.symvers file</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is generated containing all exported symbols which are</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not defined in the kernel. To get access to symbols</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from bar.ko, copy the Module.symvers file from the</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compilation of bar.ko to the directory where foo.ko is</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; built. During the module build, kbuild will read the</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Module.symvers file in the directory of the external</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; module, and when the build is finished, a new</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Module.symvers file is created containing the sum of</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; all symbols defined and not part of the kernel.</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
<font color="#ff0000">&nbsp;&nbsp;&nbsp; Use &quot;make&quot; variable KBUILD_EXTRA_SYMBOLS</font></div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If it is impractical to copy Module.symvers from</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; another module, you can assign a space separated list</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; of files to KBUILD_EXTRA_SYMBOLS in your build file.</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; These files will be loaded by modpost during the</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; initialization of its symbol tables.</div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
<span style="font-size:large;font-family:arial;line-height:normal;color:rgb(34,34,34)"><br></span></div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
<span style="font-size:large;font-family:arial;line-height:normal;color:rgb(34,34,34)">But I have tried those methods. They don&#39;t work. Why?</span></div></div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;line-height:20px">
<font size="4">Thanks for your help very much!</font></div><div style="color:rgb(0,0,0);font-family:&#39;Microsoft YaHei UI&#39;,&#39;Microsoft YaHei&#39;,SimSun,&#39;Segoe UI&#39;,Tahoma,Helvetica,sans-serif,&#39;Microsoft YaHei&#39;,Georgia,Helvetica,Arial,sans-serif,宋体,PMingLiU,serif;font-size:14.285715103149414px;line-height:20px">
<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014/1/14 Henrique Rodrigues <span dir="ltr">&lt;<a href="mailto:henriquesilvar@gmail.com" target="_blank">henriquesilvar@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Le,<div><br></div><div>You can do that by exporting a function pointer from the kvm code that is only called if it is not null. Then, when you load your module, you set that exported function pointer (I&#39;m assuming that you want to call your module&#39;s function from the kvm code... ). Here is a post on how to do that:</div>


<div><br></div><div><a href="http://stackoverflow.com/questions/11463184/how-to-use-exported-symbols-in-the-linux-kernel" target="_blank">http://stackoverflow.com/questions/11463184/how-to-use-exported-symbols-in-the-linux-kernel</a><br>


</div><div><a href="http://stackoverflow.com/questions/1196944/can-i-replace-a-linux-kernel-function-with-a-module" target="_blank">http://stackoverflow.com/questions/1196944/can-i-replace-a-linux-kernel-function-with-a-module</a><br>
</div>

<div><div><br></div><div>Best,</div></div><div class="gmail_extra"><div><div dir="ltr"><div>--</div>Henrique Rodrigues<br><div><a href="http://www.dcc.ufmg.br/~hsr" target="_blank">http://www.dcc.ufmg.br/~hsr</a></div></div>


</div>
<br><br><div class="gmail_quote"><div><div class="h5">On Mon, Jan 13, 2014 at 2:47 AM, Le Tan <span dir="ltr">&lt;<a href="mailto:tamlokveer@gmail.com" target="_blank">tamlokveer@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Hello! I am writing a device driver module. I define some functions in the module, for example print_record(). I am doing something in the kvm, so I want to call print_record() in the file of kvm module, for example, I may call print_record() in file /arch/x86/kvm/x86.c to put something into my device driver module.<div>



Now comes the question.</div><div>1. Where should I put the codes of my device driver module? It&#39;s the first time I write the device driver.</div><div>2. After compiling my module, I encounter an error when I compile the kvm module.</div>



<div>&nbsp; &nbsp; &nbsp;ERROR: &quot;print_record&quot; [arch/x86/kvm/kvm.ko] undefined!</div><div>&nbsp; &nbsp; I use EXPORT_SYMBOL(print_record) in my module file. I use &quot;extern&quot; to declare print_record() and then call print_record() &nbsp;in file x86.c.&nbsp;</div>



<div>&nbsp; &nbsp; To solve this problem, I have tried to copy the Module.symvers from my module folder to /arch/x86/kvm/. But it doesn&#39;t work. I have also tried to add&nbsp;<strong style="vertical-align:baseline;line-height:18px;font-size:14px;font-family:Arial,&#39;Liberation Sans&#39;,&#39;DejaVu Sans&#39;,sans-serif;margin:0px;border:0px;padding:0px">KBUILD_EXTRA_SYMBOLS&nbsp;</strong>to the Makefile of kvm. It doesn&#39;t work either.</div>



<div>&nbsp; &nbsp; I cat /proc/kallsyms and find that the type of symbol &quot;print_record&quot; is &quot;t&quot; ( local text). What should I do? How to call functions defined in my own module from kvm? Maybe there is something wrong in Makefiles?</div>



<div><br></div><div>Any suggestion is appreciated!</div><div>Thanks!</div></div>
<br></div></div>_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org" target="_blank">Kernelnewbies@kernelnewbies.org</a><br>


<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
<br></blockquote></div><br></div></div>
</blockquote></div><br></div>