All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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.