Add a system call on Ubuntu 13.04(x64) with x86_64

We added a system call to modify idt table, then programed it in modify_idt.c

1. Put our modify_idt.c file in /usr/src/linux-3.10.15/arch/x86/kernel

2. /usr/src/linux-3.10.15/arch/x86/syscalls# vim syscall_64.tbl

 add a new line

314     64      modify_idt              sys_modify_idt

3. Add the prototype of our system call in

/usr/src/linux-3.10.15/include/linux/syscalls.h

asmlinkage long sys_modify_idt(int i);

4. Add the file to the Makefile in /usr/src/linux-3.10.15/arch/x86/kernel/Makefile by

adding modify_idt.o to the list in obj-y += ...

obj-y                   := process_$(BITS).o signal.o entry_$(BITS).o
obj-y                   += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o

obj-y                   += modify_idt.o    // adding this one

5. Do not forget to recompile & reload the kernel before testing!

原文地址:https://www.cnblogs.com/bittorrent/p/3744028.html