Re: Syscall with 7 args...

Petko Manolov (petko@varel.bg)
Thu, 30 Sep 1999 10:44:54 +0300


Fabian.Frederick@prov-liege.be wrote:
>
> Hi !
>
> Someone could tell me what mean 0,b,c,d,S,D ...
> in syscall implementation ?

"0" here refer to register eax, b - ebx, c - ecx, d - edx,
S - esi and D - edi. If you look at arch dependent part of the
kernel you'll see much of these ;-)
I'll stronly suggest you to find and read Brenans Guide to
Inline Assembly. Sorry I lost the URL. You have to check also
http://gcc.cygnus.com for the new fixes in inline asm.

> __asm__ volatile ("int $0x80"
> :"=a" (__res) \
> :"0" (__NR__##name), "b" ((long)(......
>
> In fact I need some _syscall7 declaration and dunno
> which operand to use as maximum declared is s4 : /

When you make a syscall (it is realy a interrupt gate) you pass the args
in
the available registers not in the stack. You loose eax for the syscall
number so you can use only the rest general purpose registers. If you
wish to use more than 6 args one of them must be a pointer to structure
of
args (manu ioctls are designed that way).

Petkan

-- 
Petko Manolov - petkan@varel.bg
http://www.varel.bg/~petkan

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/