繁体   English   中英

如何更改Linux内核2.4中sys_call_table的大小?

[英]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_tableNR_syscalls longs。 我认为NR_syscalls可能是您需要调整的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM