strange new system call problems

From: kwl02r
Date: Fri Aug 06 2004 - 04:58:50 EST


Hiya,

I am running the Redhat9 with kernel-2.4.20-8. I added four new system calls for my application program.
At file /asm/unistd.h, I added my system calls definition as following.
#define __NR_set_tid_address 258 /* last system call defined by system*/

#define __NR_mysystemcall1 259 /* my first system call*/
#define __NR_mysystemcall2 260 /* my second system call*/
#define __NR_mysystemcall3 261 /* my third system call*/
#define __NR_mysystemcall4 262 /* my forth system call*/

After this , I changed the linux/arch/i386/entry.S as following.
. long SYMBOL_NAME(sys_mysystemcall1) /* 259 system call */
.long SYMBOL_NAME(sys_mysystemcall2) /* 260 system call */
.long SYMBOL_NAME(sys_mysystemcall3) /* 261 system call */
.long SYMBOL_NAME(sys_mysystemcall4) /* 262 system call */

When I compilered a new kernel, there was no any error messages.
But only the new system call 259 was working. The rest of three (260-262) did not response
anything. If I changed the position of system calls (259->260 and 260->259), still the 259 had
response. Anyway, only the new system call at the 259 position was working. What is wrong?
Other questions are:
(1) Is it correct that I add my new definitions at /linux/asm/unistd.h? There is another file under
/linux/asm-i386/unistd.h
(2) At entry.S, do I need to change codes following for my new system calls? How to change ?
.rept NR_syscalls-(.-sys_call_table)/4
.long SYMBOL_NAME(sys_ni_syscall)
.endr

Thanks










-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/