Re: OT: calling kernel syscall manually

From: Albert Cahalan
Date: Wed Sep 13 2006 - 01:40:46 EST


David Woodhouse writes:
On Tue, 2006-09-12 at 14:05 +0200, guest01 wrote:

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

No, I was just using it today in PIC i386 code.
The %ebx register gets pushed, the needed value
gets moved into %ebx, the int 0x80 is done, and
the %ebx register gets popped. Only a few odd
calls like clone() need something different.

(not that this should be needed: gcc is broken
if it can't save/restore the needed registers)

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.

It's damn useful. Hint: Linux does not require glibc.

I could hack up my own assembly. I did that for clone(),
but I didn't enjoy that waste of my time.
-
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/