0

私はここで多くの質問をしました.他のウェブサイトでは、まだ次の質問があります.

私は単純なシステムコールを実装しています。これは、次のように変更したファイルです

 1. /arch/x86/kernel/syscal_table_32_S
 2. /include/asm-x86/unistd_32.h
 3. /include/linux/syscalls.h

システムコール番号を含むファイルを知っているので、このファイル(/include/asm-x86/unistd_32.h)を変更するかどうかわからないため、2番目のファイルに疑問があります。システム コールと最後の番号 + 1 を追加します。ここで疑いがあるのは、このファイルです (/include/asm-x86/unistd_32.h)制限行 ( ) は含まれていませんが、#define NR_syscalls <last syscall no + 1>別のファイル ( /include/asm-sh/unistd_32.h) があり、システム コール番号と制限行も含まれています。

そのため、簡単な例でどのファイルを変更するか教えてください。

4

1 に答える 1

2

linux-kernel 3.2に新しいシステムコールを実装し、次のファイルを変更しました。

1. /arch/x86/kernel/syscal_table_32.S
2. /arch/x86/kernel/syscal_table_64.S
3. /arch/x86/include/asm/unistd_32.h - contains NR_syscalls for ia32
4. /arch/x86/include/asm/unistd_64.h
5. /arch/x86/include/asm/<new_file_with_syscall>
6. /arch/x86/include/asm/Makefile

syscall(NUMBER_OF_SYSCALL)関数で呼び出したsyscall自体。

于 2012-10-25T18:39:08.530 に答える