Implementing a System Call on Linux 2.6 for i386
Prev |  | Next

# 16. _syscallN macro

1. _syscall0(int,mycall) indicates that:

2. The name of the system call is mycall.

3. It takes zero arguments.

4. It returns an int.

1. _syscall1(int,mycall,int,number) indicates that:

2. The name of the system call is mycall.

3. It takes one argument.

4. The argument is an int named number.

5. It returns an int.

When you expand _syscall1(long,mycall,int,i), you get the following code:

long mycall(int i)

{

return syscall(__NR_mycall, i);

}

But the definition of _syscallN macros are different in the kernel. You can look at /usr/src/linux/include/asm-i386/unistd.h for the definition.

Prev | Home | Next
testmycall.c (new user space source file to be created) |  | Testing our new system call