How to call execve() form a function under linux2.4.x/drivers/char/?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi all,

I am writing a driver for GPIO device, gpio_int.c, and I put it under /
linux-2.4.x/drivers/char.
I need to call execve() in a function, v_hwrb_timer_handler() in
gpio_int.c:

void v_hwrb_timer_handler()
{
   ...
   execve(path, argv, argc);
   ...
}

When I make it, I get the result:

drivers/char/char.o(.text+0xe9c4): In function `v_hwrb_timer_handler':
: undefined reference to `execve'
make[1]: *** [linux] Error 1
make[1]: Leaving directory `/home/uClinux-dist/linux-2.4.x'
make: *** [linux] Error 1

Can anyone present ideas for it?

Sincerely,

Ken


Re: How to call execve() form a function under linux2.4.x/drivers/char/?
On Fri, 13 Jul 2007 00:43:22 -0700, Ken rearanged some electrons and
created:

Quoted text here. Click to load it

You may need to include <unistd.h>.

Re: How to call execve() form a function under linux2.4.x/drivers/char/?

Quoted text here. Click to load it
execve() is not supported inside the kernel. It is only available in user
space.

Read this:

http://mirror.linux.org.au/linux.conf.au/2005/cdrom-beta-1/linux-mandocs-2.4.31/call_usermodehelper.html

regards

Wolfgang


Re: How to call execve() form a function under linux2.4.x/drivers/char/?
Quoted text here. Click to load it

Thank you for your advices, this problem has been solved by add a
macro before <unistd.h>
#KERNEL_CALL
#include <unistd.h>

regards,

Ken


Site Timeline