Linux
add system call
jackyjung
2012. 1. 16. 17:16
1. add new system call in work/linux-2.6.29/arch/arm/include/asm/unistd.h
#define __NR_newsyscall (__NR_SYSCALL_BASE+361)
2. register system call tabla
~/work/linux-2.6.29/arch/arm/kernel/calls.S
/* 361 */ CALL(sys_newsyscall)
3. register handler function
in ~/work/linux-2.6.29/arch/arm/kernel/newsyscall.c
1 #include <linux/kernel.h>
2
3 asmlinkage int sys_newsyscall(int n) {
4 printk("newsyscall called: %d\n", n);
5 return n * n;
6 }
3. compile
modify Makefile like below :
kernel/Makefile
obj-y = sched.o fork.o exec_domain.o panic.o printk.o \
cpu.o exit.o itimer.o time.o softirq.o resource.o \
sysctl.o capability.o ptrace.o timer.o user.o \
signal.o sys.o kmod.o workqueue.o pid.o \
rcupdate.o extable.o params.o posix-timers.o \
kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \
hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \
notifier.o ksysfs.o pm_qos_params.o sched_clock.o cred.o \
async.o newsyscall.o
apt-get install libncurses5-dev
ncurses 텍스트 기반의 UI들을 사용하기 위한 library