lkml.org 
[lkml]   [2004]   [Feb]   [25]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 25 Feb 2004 11:07:41 +0100 (CET)
FromKristian_Sørensen <>
SubjectImplement new system call in 2.6
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


-- 
Kristian Sørensen <ks@cs.auc.dk>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:01    [from the cache]
©2003-2008