From: Mike Frysinger <vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: Changhee Han <ch0.han-Hm3cg6mZ9cc@public.gmane.org>,
linux-man <linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
gunho.lee-Hm3cg6mZ9cc@public.gmane.org
Subject: Re: [PATCH] man2 : syscall.2 : add notes
Date: Mon, 1 Apr 2013 03:19:43 -0400 [thread overview]
Message-ID: <201304010319.45019.vapier@gentoo.org> (raw)
In-Reply-To: <CAKgNAki_8bOsuKTJLx3iMLeSvVXHo0bZf8zSUQ08RR7+D33xgQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
[-- Attachment #1: Type: Text/Plain, Size: 1839 bytes --]
On Monday 01 April 2013 02:22:45 Michael Kerrisk (man-pages) wrote:
> On Mon, Apr 1, 2013 at 8:13 AM, Mike Frysinger wrote:
> > On Monday 01 April 2013 01:33:49 Changhee Han wrote:
> >> +However, when using
> >> +.BR syscall ()
> >> +to make a system call,
> >> +the caller may need to handle architecture-dependent details.
> >> +For example, on ARM architecture, a
> >> +.I "long long"
> >> +argument is considered to be 8-byte aligned and to be split into two
> >> 4-byte arguments. +
> >> +.BR readahead ()
> >> +system call could be called like below in ARM architecture.
> >
> > this has nothing to do with alignment. syscalls pass args via registers,
> > and in the 32bit ARM port, registers are 32bits wide. so in order to
> > pass a 64bit value, you have to manually split it up.
>
> So, I'm not familiar with all the details here. What is the purpose of
> the '0' argument that precedes 'offset' then?
ok, so the answer is more nuanced, and the reasoning above is incorrect (or at
the very least, poorly phrased).
for ARM OABI, there is no such padding, and the proposed example is wrong and
will not work.
for ARM EABI, the ABI requires that 64bit values be passed in register pairs.
since the kernel people wanted to avoid an assembly trampoline to unpack the
64bit value with EABI, you have to call it as proposed:
syscall(readahead, fd, _pad, high32, low32)
for MIPS, only the O32 ABI has this behavior.
for PPC, only the 32bit ABI has this behavior.
otherwise, i don't believe anyone else does this -- they just pass things
along in registers w/out padding.
since the current list of syscalls which are impacted is small, it might be
useful to explicitly enumerate them. they are:
fadvise64_64
ftruncate64
pread64
pwrite64
readahead
truncate64
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-04-01 7:19 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-27 5:11 [PATCH] man2 : syscall.2 : add notes ch0.han-Hm3cg6mZ9cc
[not found] ` <1364361092-5948-1-git-send-email-ch0.han-Hm3cg6mZ9cc@public.gmane.org>
2013-03-27 7:53 ` (unknown), Changhee Han
2013-03-27 8:25 ` [PATCH v2] man2 : syscall.2 : add notes Changhee Han
2013-03-28 9:37 ` [PATCH] " Michael Kerrisk (man-pages)
2013-04-01 5:33 ` Changhee Han
[not found] ` <1364794429-20477-1-git-send-email-ch0.han-Hm3cg6mZ9cc@public.gmane.org>
2013-04-01 6:13 ` Mike Frysinger
[not found] ` <201304010213.06056.vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2013-04-01 6:22 ` Michael Kerrisk (man-pages)
[not found] ` <CAKgNAki_8bOsuKTJLx3iMLeSvVXHo0bZf8zSUQ08RR7+D33xgQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-01 7:19 ` Mike Frysinger [this message]
[not found] ` <201304010319.45019.vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2013-04-01 7:36 ` Michael Kerrisk (man-pages)
[not found] ` <CAKgNAkhBASGvXGfdBSjpGaMuxoJofcQvZQrX3a=uxbcKQnXOAQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-01 8:29 ` Mike Frysinger
[not found] ` <201304010429.45737.vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2013-04-01 9:29 ` Michael Kerrisk (man-pages)
[not found] ` <CAKgNAkij3zDwakWvcRkRbknmV2Hpt4HWfH4uVqmxp+7gQek-2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-01 10:32 ` Mike Frysinger
[not found] ` <201304010632.41520.vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2013-04-02 6:54 ` Michael Kerrisk (man-pages)
[not found] ` <CAKgNAkgG2kdCC1tyZQkYU7O_nP7RB8VoCmx6eb8FcudU1s6RgA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-02 23:17 ` [PATCH] man2 : syscall.2 : document syscall calling conventions Mike Frysinger
2013-04-07 10:00 ` Michael Kerrisk (man-pages)
2013-04-07 13:55 ` Kyle McMartin
2013-04-07 14:56 ` James Bottomley
2013-04-07 15:11 ` Kyle McMartin
[not found] ` <20130407151134.GX12938-PfSpb0PWhxZc2C7mugBRk2EX/6BAtgUQ@public.gmane.org>
2013-04-07 15:38 ` James Bottomley
2013-04-08 9:18 ` Michael Kerrisk (man-pages)
[not found] ` <20130407135514.GW12938-PfSpb0PWhxZc2C7mugBRk2EX/6BAtgUQ@public.gmane.org>
2013-04-07 18:39 ` Mike Frysinger
2013-04-07 18:48 ` John David Anglin
[not found] ` <BLU0-SMTP986B123D17DB8B88214F797C40-MsuGFMq8XAE@public.gmane.org>
2013-04-08 9:20 ` Michael Kerrisk (man-pages)
2013-04-08 9:20 ` Michael Kerrisk (man-pages)
[not found] ` <CAKgNAkhv6tovvnucoofDR-eOe4H7xeFZDam9+iaVVndEqbuoXg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-12 1:40 ` Mike Frysinger
[not found] ` <201304112140.18506.vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2013-04-16 6:01 ` Michael Kerrisk (man-pages)
2013-04-12 1:55 ` Mike Frysinger
[not found] ` <201304112155.46349.vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2013-04-12 2:34 ` John David Anglin
2013-04-12 3:38 ` Mike Frysinger
2013-04-12 4:45 ` James Bottomley
2013-04-12 12:17 ` John David Anglin
2013-04-12 18:45 ` Mike Frysinger
2013-04-12 19:14 ` James Bottomley
2013-04-12 19:46 ` Mike Frysinger
2013-04-12 20:25 ` James Bottomley
2013-04-12 14:01 ` Kyle McMartin
[not found] ` <CAKgNAkgODPSWSeA8ZymiAjFBqSAZQMtQe9GW84Y6QHdFEc9S-w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-07 18:43 ` Mike Frysinger
2013-04-01 8:37 ` [PATCH] man2 : syscall.2 : add notes Mike Frysinger
[not found] ` <201304010437.52901.vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2013-04-01 9:30 ` Michael Kerrisk (man-pages)
[not found] ` <CAKgNAkit-qRPErHDzGEJ_yedA+O97bFxDsqWJMZOhCZ9DPvOtw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-01 10:09 ` Mike Frysinger
2013-04-01 7:05 ` Fw : Re : " 한창희
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201304010319.45019.vapier@gentoo.org \
--to=vapier-abrp7r+bbdudnm+yrofe0a@public.gmane.org \
--cc=ch0.han-Hm3cg6mZ9cc@public.gmane.org \
--cc=gunho.lee-Hm3cg6mZ9cc@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.