0

文件 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 行是做什么的呢?表格大小会自动增长还是我需要更改某些内容?

4

1 回答 1

0

这段代码:

.rept NR_syscalls-(.-sys_call_table)/4
.long SYMBOL_NAME(sys_ni_syscall)
.endr

看起来它填补了sys_call_table多头NR_syscalls。我想NR_syscalls可能是你需要调整的。

于 2013-11-09T00:02:52.387 回答