Re: Implement new system call in 2.6

From: Kristian Sørensen
Date: Wed Feb 25 2004 - 06:16:45 EST


PS. including <errno.h> in test.c doesn't solve the problem :-(

--
Kristian Sørensen <ks@xxxxxxxxx>

On Wed, 25 Feb 2004, Kristian Sørensen wrote:

> Hi all!
>
> How do I invoke a newly created system call in the 2.6.3 kernel from
> userspace?
>
> The call is added it arch/i386/kernel/entry.S and include/asm/unistd.h
> and the call is implemented in a security module called Umbrella(*).
>
> The kernel compiles and boots nicely.
>
> The main problem is now to compile a userspace program that invokes this
> call. The guide for implementing the systemcall at
> http://fossil.wpi.edu/docs/howto_add_systemcall.html
> has been followed, which yields the following userspace program:
>
> // test.h
> #include "/home/snc/linux-2.6.3-umbrella/include/linux/unistd.h"
> _syscall1(int, umbrella_scr, int, arg1);
>
> // test.c
> #include "test.h"
> main() {
> int test = umbrella_scr(1);
> printf ("%i\n", test);
> }
>
> When compiling:
>
> gcc -I/home/snc/linux-2.6.3/include test.c
>
> /tmp/ccYYs1zB.o(.text+0x20): In function `umbrella_scr':
> : undefined reference to `errno'
> collect2: ld returned 1 exit status
>
>
> It seems like a little stupid error :-( Does some of you have a solution?
>
>
>
> Thanks in advance and best regards,
> Kristian Sørensen.
>
>
>
> (*) Umbrella is a security project for securing handheld devices. Umbrella
> for implements a combination of process based mandatory access control
> (MAC) and authentication of files. This is implemented on top of the Linux
> Security Modules framework. The MAC scheme is enforced by a set of
> restrictions for each process.
> More information on http://umbrella.sf.net
>
>
>
-
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/