On Montag, 13. September 2004 16:04, Constantine Gavrilov wrote:I can implement differently what I want, though it will be somewhat kludgy and kernel depenedent (depends on a version and distribution). I wanted to avoid that. Since what I write is really an application and not interface, it was very "native" to use application syscall approach.
We have a piece of kernel code that calls some system calls in kernel context (from a process with mm and a daemonized kernel thread that does not have mm). This works fine on IA64 and i386 architectures.
You can find the list of system calls that are supposed to work
from kernel space in asm/unistd.h inside #ifdef __KERNEL__SYSCALLS__.
On current kernels, that list only contains execve(), which should
be avoided as well in favor of call_usermodehelper. Other calls
might work on some architectures but that is not a supported
interface any more.
You could call the sys_* functions directly if they are exported,
but it is unlikely that such code gets integrated in the mainline
kernel.
The real answer for your problem highly depends on which syscalls
you want to use.
Arnd <><