find指令:find -name “*.h” | xargs grep “XXXX” -rn
一般情况下在阅读内核源码时直接使用ctag跳转就能大概率找到结构体的初始定义的地方,但是也会有特殊情况这时需要grep指令或者find指令,我们采取find指令。想要查看一些结构体的定义,比如struct mii_bus,可以查看头文件,所有的系统预定义的结构体都在内核源代码的/include下有定义(如果是自己下载的kernel的话,可以在/include/linux找到),ubuntu里面是/usr/include 。 比如要找上面提到的struct mii_bus,可以这样 :find /usr/include -name “*.h” | xargs grep “struct mii_bus” -rn ,结果显示,这个结构体在/usr/include/linux/phy.h 的217行有定义。
查找可能出现一大堆数据,有个快速找到结构体的方法是:找空格区,这里一般是结构体的原始定义区,此方法可能不适用与其他情况。