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
'Linux' 카테고리의 다른 글
install package for minicom (0) | 2012.01.17 |
---|---|
Module-related shell commands (0) | 2012.01.17 |
vimrc (1) | 2012.01.16 |
usage ctags (1) | 2012.01.16 |
print pstree (2) | 2012.01.16 |