From patchwork Wed Aug 17 11:46:27 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 660068 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3sDnXT25HPz9t0m for ; Wed, 17 Aug 2016 21:47:37 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b=GK5RlSh2; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-type; q=dns; s=default; b=btqFs LmklHRunWbPbBjEiiTXpJB9bK9RhCKf3kui9MwYedtgJieDzUtQk5UoeOEZlqPvW bXhEuxdOkWepVjUwijpNXB9W5KwD11W+NIkxjkoZYY0SuxUei6P5edrTIfB1msLq BCCxLFBKJM4aHg84cB7HghF6WlwG0KqRvwAI/E= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-type; s=default; bh=YK4YuW+fGlQ d0eyN7FUdo8Eb6AU=; b=GK5RlSh2maEsTjbbaTY+6bHJOvOx54qJlX1PRnkMYuP AS8vz3okyreQfZj8B9NSLf3fvaMeGor2nfSCExNLT+HxuGdwEDVeUpZ2tgGZk74X IchNeb001V0WP12FldrcoiyBERsHMjdu4zUN6KsLVvV3qIEJCY3QhGl+CccvfSho = Received: (qmail 101627 invoked by alias); 17 Aug 2016 11:47:31 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 101609 invoked by uid 89); 17 Aug 2016 11:47:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.0 required=5.0 tests=AWL, BAYES_20, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=no version=3.3.2 spammy=Hx-spam-relays-external:sk:mail-dm, H*RU:sk:mail-dm, HX-HELO:sk:NAM03-D, Hx-spam-relays-external:sk:NAM03-D X-HELO: NAM03-DM3-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH 02/18] arm64: ilp32: add documentation on the ILP32 ABI for ARM64 Date: Wed, 17 Aug 2016 14:46:27 +0300 Message-ID: <1471434403-25291-3-git-send-email-ynorov@caviumnetworks.com> In-Reply-To: <1471434403-25291-1-git-send-email-ynorov@caviumnetworks.com> References: <1471434403-25291-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-ClientProxiedBy: AM4PR02CA0031.eurprd02.prod.outlook.com (10.165.239.169) To CY1PR07MB2248.namprd07.prod.outlook.com (10.164.112.150) X-MS-Office365-Filtering-Correlation-Id: 7aa4374d-0f88-4ac9-4138-08d3c6943b28 X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2248; 2:DXfekZ+tLAAms1w9SY/YLWJGPVi0Njzpnz5lok6XAu6eUtwjSNJ9dfBxJ5YwSSVii3g2uFh+zqc0ZxcudbC12JEglXs9mhw/89JxJqnhANcMUDQFAG8DKysQtKFomH4jyCY6smjttJQS3QC9d8hJBJZ7W+JEeBEz33o9vl7A5U6fgiFp5PCCGMcY82jKmoXH; 3:5z2MGV3MW8mV1notTNKxA1Vnri8IxhpOxukhTNxhyLkIAJx/LgHBOTTFU58y4puOE1fQKGwv9vuMYtIp9KMJwdNPIRmhDHxzMjypqNt5buaXeYJM9DkiZvmFLlZ6w3V8; 25:X06P2PgWP0lgFQYOz/59FoTQgltqMVY+N3shdBXPKOsauM5KqYczyjYYxctcIcwDjZPSpgBM+TV0imYOuTqqz0ZOqOQIUWJ+v3rukbAUyxkB2Da4Pz22wV+BNwS6xGVq6f9cwUU0TGNPTxKWlqJ2j02q6yPdXyKD2Af/6JQRWc8dmilQrybZqUcbgfpfkmy6bRa+ih7aZAHN6CdSFnFoq8fJEP3PB2LdMc6t0sDcjIlJLOqv7ImA41RMa25A23srZB6DYKvqoJnJJpyYLF0lxDVZnh0T7vJuzSa2XPZXttTyfAH3Gl7BfGsgUIR8UV8r7yQiu9JNdHaiym/RY586YZTk0ywUyCWPdFzlo9Q1/w5xn7QaiwKBMTmIeLdIKoPEYmOg7U4J3114pwQp/DKE5N/l/K4bLD9dG/PmotegBO8= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2248; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2248; 31:wHFhn0CaMdqCFzsae8h8hgQWahhsb6f447HWAKhQU7qau15I2Tp0fzM72KQcRxZwexRwPCb1oe/RTL8vnH+EonIuQ3rGLRKWHGv5TSML95NnGOe+Ha3IkMdGN1abMgPoRqrsrG1enWuiwYWUAZ5brnPz0/NmMg8h7VAfu+F1Z9/6DjzZgQnBhmYwxd8RQTJRc2qOiqKkG7ydjJWYA4RTlzIFeqhLhGvaxoJYz2YBBBA=; 20:u/wq4d6g2nnlYcCXw8AcILjbOQ4x2V4yk+SbaJrHd27k6esdAEzKQd/ir9WE1yUePjSmQjpxHQWrWj3Ak/c1oYBl+oHKH6ky7DhNQbCaD9S4mqUIcB/EIS5Lb7/pePSqWlw9zedIfFzAMHXALYugxVeuFM8rgxDfoQgOFcXCS+mmpDC5Ve6VCoA85gSSG5STVEvx4dgd/HgWNvM/ccTTeoiWzhYBoUvlmbBjHH3dIOS7WRGTyufDYsCanPfCcnXAZZwmjUzCAko0rD2JJWZ4mVkTSiUD7NUEVjOPeccXDrRpazwuUFR8iVaV/IaN5QRRUeb9o9ticS9x65OZW0omDmvFWa8KoEUcX+57kvFRt/103eUsqsAzDTF5h8VmtmFngjq7Xf+AOJWrHGFCTD3BuWxHF5s+zslLhkpWtOCLM+o8T21ZY98jaqa14kSoQnI+at6Jiefxu0sPmthzJqZxomEaOLqBc9rxOrIRKuch9f2aQtSxxjKl2mUnNOoEqk5TrtpKmdeg6CyQf/5NvbM/ZnyqWKSOJfnqOPx30ettAofXBmhVVZjZem5mpgOjs4oKJ0ZOSRBc/g4k2CrDXV2lTyHWEqHNITHab+2gfIOuBSY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046); SRVR:CY1PR07MB2248; BCL:0; PCL:0; RULEID:; SRVR:CY1PR07MB2248; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2248; 4:47kT3s7Lh3Xcc4q67/tEgujbYk23BQcN49gSk8zo6/RyuWIkYY2+XkBXBI7bdNCdjraL1DoLjf5yXPbAv3v1yf0YJbLEb8MPrtmBfkQca3KbvrVn5/gRzULspY5rRNh72xAzC9iCRy0Qo9kGzFG6r9XHlBn2qQI4zoRAVCgbZJm3JWFqwNZghhniimuzTMAfOSZ0WYLo1fPoxihE34M+uWNdynn0n50tV9s+sT/bZ9nQK7MD0tYyH2w5E8/jaXVJpjZI3zpDbqgduMSFjBATJGBrPtf/Xw5e9cIEZxue6G7yYLD30AJ5EqFlK3+f+xi7vQJNIXxZwodko9Dl5xqpXm3QyPPEsicayEN2pRSRsSjNCQD1Z0vzxToJ1S/i87tj X-Forefront-PRVS: 0037FD6480 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(199003)(189002)(97736004)(106356001)(92566002)(68736007)(76506005)(42186005)(2950100001)(2906002)(7416002)(4326007)(2201001)(105586002)(6116002)(5001770100001)(7846002)(48376002)(586003)(50226002)(50986999)(101416001)(47776003)(76176999)(5003940100001)(50466002)(36756003)(229853001)(305945005)(3846002)(66066001)(81166006)(19580395003)(7736002)(33646002)(19580405001)(77096005)(189998001)(8676002)(81156014)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2248; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2248; 23:z6A5Lcg0ImKFNzrmK7xMDaYbnw9oP11ZqhDWvjwI3?= =?us-ascii?Q?CUbagsXXJd7ot4Ut8NeCZClZIJOdjLOdZJP3CJpOWPgf4dAd53iydqFm3EFP?= =?us-ascii?Q?pFT0YaF7tgU+KtMn8Oh60/7Aq5wZg+jLJiap+/olzDlPT6qWHdABwtUl8edZ?= =?us-ascii?Q?76z4+puHiv38KH3zPNtjkz33V8gRCOj5Q7m+TD89OXaMzHqOCG9yrj+RE0EI?= =?us-ascii?Q?2kHZA7wFxoKf7jCv8/3/fq7UqAKdYXuYkfkgrzOVtgcDF54s9otitRVQxl6n?= =?us-ascii?Q?9g/jkjmqEdVFTUqb203tT8dK37C7uEDCRtOmzAW+l1i1h380BTX0ujqw1TCi?= =?us-ascii?Q?77gkyBCG6xoA7ZI6OZJCzn9SbbEWT4E/TNvdNKBx9M9Puuvh/nXmmwPLxpbu?= =?us-ascii?Q?COjpb/cLMyr2O0ZdrWaBxzgt+gt9HqY0IUEpGxbHBz+6sgZsTnoscC9Gm4Bx?= =?us-ascii?Q?carqva4dSMkSiAJTh9L+W2PA/jz/KDqpqx6QqsvlxLy2+anM0NcubyDpxgee?= =?us-ascii?Q?YTtVw13zw3lXQqux/RqrXELkBQq3l5OBF3dckSx6LjpLizDO0FH7JaXEQQ5T?= =?us-ascii?Q?Ui5VbVzJrMddP3L89Z4u7a83jW+5kUeMbuMIp6VEH1tdu/KW0LfkmliQ5pnT?= =?us-ascii?Q?55WnUmc/2rP6NGW47eMKnFD9WE9njHowv80oRJMZge1wyI6tHqSPV9wvSXEU?= =?us-ascii?Q?XD8r5cTS5Ga7YtSAigkIvwi6QOkqTs13FZRbvBhinxJrOIXmWVqHsqWHI2fS?= =?us-ascii?Q?p7DDIlvVScpkzpzKtdDyFmYLzNfQ3+Le/QhY65UApJhiQ85mgdCDx9mEbLLK?= =?us-ascii?Q?A9mh1ADhkrObTrhuRXyv5EK6RQI7iGLlRkMtWhOp/smnCe3+oS5Al4JNv96X?= =?us-ascii?Q?WlJILrNCBIPBHXuKXN8xyBh0FRDrltGVXKO/xwAVa8mP+PfOs0Am9Gl2iWQQ?= =?us-ascii?Q?hnterUyIYBNDYMH9I2w/yJ1w8KyzZxgrPU/Wq6nfqnf/sO4GCd5LhH89kE+M?= =?us-ascii?Q?ZqTgaYq/8PuNqxAkenFrEocFEL77WDsTp3a0f+NDmr6YJYQrq2WbSh5mxBSZ?= =?us-ascii?Q?MUhDWQGRSFdacSXjIstsYrybAmakDwrAb9i35jHXQ2dDzFbacnsexNUN2vDM?= =?us-ascii?Q?ZEP24D1fLCfaKWuLMPGWfbYxLF6tDt9?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2248; 6:JNkrYtYIocN8u2YxRMueHZq8EhCXlolJ4YQ+ni6+z3bqTjb/BaKDFcHn4twiL1gRUP+vmsCcK07nOXjsA4j4/jMVwQAaxGZ3kUZtfAK6+vDC5XJis4ZOcyf4tY1ZtDABnP4ooZsaYSudGrd7/G2LghEsqvIOe6UO/TASZ8IESLuy6TjJNdXeu+1b1gSlJiHuGNF0mlUXWQLZ70kZ2Rus+IQT4A6Gvg4IlPbJ9N5QjxrcYG3s8UM3KmN2hNMNK9ah5bpMbfmST3LqKOmqXcNUWs3JQAJjq7zapaS2iKLoB0o=; 5:IhL5W+HGByg2RnzRQqGpv03fEDY1+DnYxFR8zMVH7XsEslT2NTmUm+hl1MEhAl6VDkY92+XPhxScJe7aiB03L7VitxIHTnFAHuWR2V+IyJmYTnyKCElnc8XUu3zWgEJEG3b62/zgPxe+DNeaKL3Ilg==; 24:TBmaNlFzlkKIPYq0VsLJj061A34ctMzYyP8tn3HWFSEkdF48TFItOZCsfYlqP0p0qBMDalOTDSJHLqBlCQEtMgh0HH9jKna7WlorCqvbm4U=; 7:CLMltCc+rHzzM7i7V4ku1e98ZCWw2QZgQgPKVQWn8IGZCOGjixT/CK5ScEP70ND5eiw4cVJtsKPY+EXuxrebYDAj6LoPtLsGiZu1sJ17mlTIHQNFY2trAbgUnq+Xczd1whPEt1EOL1ohrTk7OobVzuRowWbEa6YlL0ERqlsGdbPRE+CsrhiqKgXKh9N8tGwKHS3//92dJ/4pBadG8xtInbzcVilgr7NfugOlEAieKvwcP/Ton7Wa6145vCnA4DJC SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Aug 2016 11:47:13.5351 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2248 Based on Andrew Pinski's patch-series. Signed-off-by: Yury Norov --- Documentation/arm64/ilp32.txt | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Documentation/arm64/ilp32.txt diff --git a/Documentation/arm64/ilp32.txt b/Documentation/arm64/ilp32.txt new file mode 100644 index 0000000..d575ef9 --- /dev/null +++ b/Documentation/arm64/ilp32.txt @@ -0,0 +1,57 @@ +ILP32 AARCH64 SYSCALL ABI +========================= + +This document describes the ILP32 syscall ABI and where it differs +from the generic compat linux syscall interface. + +AARCH64/ILP32 userspace can potentially access top halves of registers that +are passed as syscall arguments, so such registers (w0-w7) are deloused. + +AARCH64/ILP32 provides next types turned to 64-bit (comparing to AARCH32): +ino_t is u64 type. +off_t is s64 type. +blkcnt_t is s64 type. +fsblkcnt_t is u64 type. +fsfilcnt_t is u64 type. +rlim_t is u64 type. + +AARCH64/ILP32 ABI uses standard syscall table which can be found at +include/uapi/asm-generic/unistd.h, with the exceptions listed below. + +Syscalls which pass 64bit values are handled by the code shared from +AARCH32 and pass that value as a pair. Next syscalls are affected: +fadvise64_64() +fallocate() +ftruncate64() +pread64 () +pwrite64() +readahead() +sync_file_range() +truncate64() +sys_mmap() + +ptrace() syscall is handled by compat version. + +fcntl64() syscall is handled by non-compat handler as struct flock for ilp32 +is the same as for lp64 + +shmat() syscall is handled by non-compat handler as aarch64/ilp32 has no +limitation on 4-pages alignement for shared memory. + +Syscalls which take a pointer to stat, stat64, statfs, statfs64, rlimit +structures are now routed to native handlers directly, as aarch64/ilp32 +defines userspace ino_t, off_t, blkcnt_t, fsblkcnt_t, fsfilcnt_t rlim_t +types as 64-bit and it makes that structures have same layout as lp64. +Next syscalls are affected: +fstatat64() +fstat64() +statfs64() +fstatfs64() +setrlimit() +getrlimit() + +struct rt_sigframe is redefined and contains struct compat_siginfo, +as compat syscalls expects, and struct ilp32_sigframe, to handle +AARCH64 register set and 32-bit userspace register representation.h + +elf_gregset_t is taken from lp64 to handle registers properly.