Re: OT: calling kernel syscall manually

From: David Woodhouse
Date: Tue Sep 12 2006 - 09:31:19 EST


On Tue, 2006-09-12 at 14:05 +0200, guest01 wrote:
> Hi
>
> Sorry guys, this question is a little bit off topic, but maybe someone
> has an answer, I am sure that there is a simple one. :-)
>
> Ok, I have to find 3 possibilities to create a directory with 3 small c
> programs:
> 1 -> using libc: mkdir(dir,mode)
> 2 -> using libcsyscall: syscall(__NR_mkdir, "mkdirLibcSyscall", 0777);
> 3 -> using kernel directly
>
> Ok, the third one is a little bit tricky, at least for me. I found an
> example for lseek, but I don't know how to convert that for mkdir. I
> don't know the necessary arguments, ..

The third one has always been broken on i386 for PIC code and was
pointless anyway, since glibc provides this functionality. The kernel
method has been removed from userspace visibility all architectures, and
we plan to remove it entirely in 2.6.19 since it's not at all useful.

However, there was a patch which was sneaked to Linus in private which
reverted that cleanup on i386 and x86_64 and made them visible again --
but they'll be going away again on those two architectures shortly;
hopefully before 2.6.18.

Don't bother with it -- just use glibc's syscall().

--
dwmw2

-
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/