2007-06-12 13:55:12

by Federico Paparoni

[permalink] [raw]
Subject: Linux kernel 2.4 programming problem

Hi all,
i'm trying to create a simple system call in a kernel 2.4 distribution.
I read guide/articles like this

http://irfanhabib.wordpress.com/2006/10/01/adding-a-system-call-linux-24x/

All the articles say the same things, but the implementation of my new
system call doesn't work.
I create a new entry in arch/i386/kernel/entry.S
I create a new entry in include/asm/unistd.h
I create a new function with the asmlinkage prefix in a source file
already defined (in ipc/sem.c for example)

When i create my user program, it doesn't work. Firstly when i try to
compile i receive a problem like this

: undefined reference to 'errno'

Then I include errno.h (also if i don't understand this step) and the
compilation works, but the syscall neverworks, because the call always
return -1.

Any help?
Any tutorial FOR DUMMY MAN that someone already used?

Cheers

Federico


2007-06-12 15:12:24

by Randy Dunlap

[permalink] [raw]
Subject: Re: Linux kernel 2.4 programming problem

On Tue, 12 Jun 2007 15:54:57 +0200 Federico Paparoni wrote:

> Hi all,
> i'm trying to create a simple system call in a kernel 2.4 distribution.
> I read guide/articles like this
>
> http://irfanhabib.wordpress.com/2006/10/01/adding-a-system-call-linux-24x/
>
> All the articles say the same things, but the implementation of my new
> system call doesn't work.
> I create a new entry in arch/i386/kernel/entry.S
> I create a new entry in include/asm/unistd.h
> I create a new function with the asmlinkage prefix in a source file
> already defined (in ipc/sem.c for example)
>
> When i create my user program, it doesn't work. Firstly when i try to
> compile i receive a problem like this
>
> : undefined reference to 'errno'
>
> Then I include errno.h (also if i don't understand this step) and the
> compilation works, but the syscall neverworks, because the call always
> return -1.
>
> Any help?
> Any tutorial FOR DUMMY MAN that someone already used?

You can try this one. It used to work, but I haven't updated or
tested it lately.

http://www.xenotime.net/linux/syscall_ex/

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-06-12 15:17:21

by Andev

[permalink] [raw]
Subject: Re: Linux kernel 2.4 programming problem

Please look into http://kernelnewbies.org

On 6/12/07, Federico Paparoni <[email protected]> wrote:
> Hi all,
> i'm trying to create a simple system call in a kernel 2.4 distribution.
> I read guide/articles like this
>
> http://irfanhabib.wordpress.com/2006/10/01/adding-a-system-call-linux-24x/
>
> All the articles say the same things, but the implementation of my new
> system call doesn't work.
> I create a new entry in arch/i386/kernel/entry.S
> I create a new entry in include/asm/unistd.h
> I create a new function with the asmlinkage prefix in a source file
> already defined (in ipc/sem.c for example)
>
> When i create my user program, it doesn't work. Firstly when i try to
> compile i receive a problem like this
>
> : undefined reference to 'errno'
>
> Then I include errno.h (also if i don't understand this step) and the
> compilation works, but the syscall neverworks, because the call always
> return -1.
>
> Any help?
> Any tutorial FOR DUMMY MAN that someone already used?
>
> Cheers
>
> Federico
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2007-06-12 15:19:12

by Jan Engelhardt

[permalink] [raw]
Subject: Re: Linux kernel 2.4 programming problem


On Jun 12 2007 20:47, debian developer wrote:
>
> Please look into http://kernelnewbies.org
>
> On 6/12/07, Federico Paparoni <[email protected]> wrote:
>> Hi all,
>> i'm trying to create a simple system call in a kernel 2.4 distribution.
>> I read guide/articles like this
>> http://irfanhabib.wordpress.com/2006/10/01/adding-a-system-call-linux-24x/
>>[...]

And don't top post.


Jan
--