![](/img/trans.png)
[英]Weird behavior of custom file open function on overriding sys_call_table in Linux Kernel
[英]How to change the size of the sys_call_table in linux kernel 2.4?
文件linux / arch / i386 / kernel / entry.S包含系统调用列表:
ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_ni_syscall) /* 0 - old "setup()" system call*/
.long SYMBOL_NAME(sys_exit)
.long SYMBOL_NAME(sys_fork)
.long SYMBOL_NAME(sys_read)
.
.
.
.long SYMBOL_NAME(sys_start_monitor) /* 243 */
.long SYMBOL_NAME(sys_stop_monitor) /* 244 */
.long SYMBOL_NAME(sys_get_all_events_number) /* 245 */
.long SYMBOL_NAME(sys_get_events) /* 246 */
.rept NR_syscalls-(.-sys_call_table)/4
.long SYMBOL_NAME(sys_ni_syscall)
.endr
我添加了243-246。 我要确保表的大小相应增加。 我怀疑第247-248行与此有关,但我不确定。 我知道在旧版本的linux中,我需要增加一个计数器,但是在这里找不到它。
那么第247-248行会做什么? 表格大小会自动增加还是我需要更改某些内容?
这段代码:
.rept NR_syscalls-(.-sys_call_table)/4
.long SYMBOL_NAME(sys_ni_syscall)
.endr
看起来它将sys_call_table
为NR_syscalls
longs。 我认为NR_syscalls
可能是您需要调整的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.