若要在 kernel 里面新增加一个自己的 sys call,大致需要这么几个步骤:
a,新增自己 sys call 的代码,并修改相应 makefile;
b,修改相应头文件,分配自己的系统调用号;
c,系统调用通过中断加查表的方式实现,所以需要在系统调用表里面增加相关的项目,这需要修改相关的汇编源文件;
d,重新编译内核,并写测试程序测试新增的sys call;
注意几点:
1,上述步骤所要修改的文件/位置等对不同处理器架构来说,不尽相同;
2,对于应用层的测试代码来说,在 2.6.20 版本之前,可以使用相应的 _syscallN 宏;
但是2.6.20 版本后,这些宏已经被从 kernel 中去掉了,你需要使用应用层的 syscall 函数
来测试。
你可以在自己的sys call实现文件中加上 EXPORT_SYMBOL / EXPORT_SYMBOL_GPL
等宏来导出你的全局变量或者函数,导出后,另外的模块或者其他内核代码就可以使用
这些变量和函数。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
杭州巨立安(JulianTec)是杭州市场上
唯一由资深研发工程师所创办的机构。所以:
就专业程度和实在程度而言,杭州巨立安(JulianTec)
是您在arm架构下学习嵌入式Linux研发的上佳指导!
仿造之前内核自带