* syscall_linkage
@ 2004-04-08 15:54 Zoltan Menyhart
2004-04-08 16:23 ` syscall_linkage Stephane Eranian
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Zoltan Menyhart @ 2004-04-08 15:54 UTC (permalink / raw)
To: linux-ia64
Can somebody explain me, please, what the difference is between an
__attribute__((syscall_linkage)) call and a regular one ?
The Itanium Software Conventions & Runtime Architecture Guide does
not say a word about it, does it mean it is a non standard way to
pass parameters ?
What registers need / do not need to be saved with respect to what
is written in the Intel book ?
Thanks,
Zoltán Menyhárt
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: syscall_linkage
2004-04-08 15:54 syscall_linkage Zoltan Menyhart
@ 2004-04-08 16:23 ` Stephane Eranian
2004-04-08 23:39 ` syscall_linkage David Mosberger
2004-04-12 23:01 ` syscall_linkage Jim Wilson
2 siblings, 0 replies; 4+ messages in thread
From: Stephane Eranian @ 2004-04-08 16:23 UTC (permalink / raw)
To: linux-ia64
Hi,
On Thu, Apr 08, 2004 at 05:54:40PM +0200, Zoltan Menyhart wrote:
> Can somebody explain me, please, what the difference is between an
> __attribute__((syscall_linkage)) call and a regular one ?
>
It indicates to the compiler that the arguments of the function
are to be treated read-only. If they need to be modified, then a
copy is made into other registers. This is necessary for the
system call entry points because some syscalls can be restarted
and they need to restart we the orginal values. Remember that
all syscall arguments are passed in registers AND the registers
come straight from the user level, i.e., they are never copied.
> The Itanium Software Conventions & Runtime Architecture Guide does
> not say a word about it, does it mean it is a non standard way to
> pass parameters ?
>
> What registers need / do not need to be saved with respect to what
> is written in the Intel book ?
>
> Thanks,
>
> Zoltán Menyhárt
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
-Stephane
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: syscall_linkage
2004-04-08 15:54 syscall_linkage Zoltan Menyhart
2004-04-08 16:23 ` syscall_linkage Stephane Eranian
@ 2004-04-08 23:39 ` David Mosberger
2004-04-12 23:01 ` syscall_linkage Jim Wilson
2 siblings, 0 replies; 4+ messages in thread
From: David Mosberger @ 2004-04-08 23:39 UTC (permalink / raw)
To: linux-ia64
Zoltan,
The quick summary can be found in asm-ia64/ptrace.h.
Also, my book has a fairly extensive discussion of how machine-state
is handled on ia64 linux.
--david
>>>>> On Thu, 08 Apr 2004 17:54:40 +0200, Zoltan Menyhart <Zoltan.Menyhart_AT_bull.net@nospam.org> said:
Zoltan> Can somebody explain me, please, what the difference is between an
Zoltan> __attribute__((syscall_linkage)) call and a regular one ?
Zoltan> The Itanium Software Conventions & Runtime Architecture Guide does
Zoltan> not say a word about it, does it mean it is a non standard way to
Zoltan> pass parameters ?
Zoltan> What registers need / do not need to be saved with respect to what
Zoltan> is written in the Intel book ?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: syscall_linkage
2004-04-08 15:54 syscall_linkage Zoltan Menyhart
2004-04-08 16:23 ` syscall_linkage Stephane Eranian
2004-04-08 23:39 ` syscall_linkage David Mosberger
@ 2004-04-12 23:01 ` Jim Wilson
2 siblings, 0 replies; 4+ messages in thread
From: Jim Wilson @ 2004-04-12 23:01 UTC (permalink / raw)
To: linux-ia64
On Thu, 2004-04-08 at 08:54, Zoltan Menyhart wrote:
> Can somebody explain me, please, what the difference is between an
> __attribute__((syscall_linkage)) call and a regular one ?
It also prohibits use of input registers for local values, thus helping
to prevent kernel data from accidentally leaking back to application
code. The input registers will be visible to the caller after the
syscall returns because of the register windows.
See the gcc code that implements syscall_linkage in
gcc/config/ia64/ia64.c.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-04-12 23:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-08 15:54 syscall_linkage Zoltan Menyhart
2004-04-08 16:23 ` syscall_linkage Stephane Eranian
2004-04-08 23:39 ` syscall_linkage David Mosberger
2004-04-12 23:01 ` syscall_linkage Jim Wilson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox