![](/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.