From patchwork Wed Jul 29 20:24:41 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 501820 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 5030B1402B9 for ; Thu, 30 Jul 2015 06:25:38 +1000 (AEST) Received: from localhost ([::1]:36910 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZKXux-0005k1-7o for incoming@patchwork.ozlabs.org; Wed, 29 Jul 2015 16:25:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55176) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZKXuK-0004Wc-DB for qemu-devel@nongnu.org; Wed, 29 Jul 2015 16:24:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZKXuB-0002Uy-G8 for qemu-devel@nongnu.org; Wed, 29 Jul 2015 16:24:56 -0400 Received: from mail-bl2on0079.outbound.protection.outlook.com ([65.55.169.79]:53888 helo=na01-bl2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZKXuB-0002Ur-Bd for qemu-devel@nongnu.org; Wed, 29 Jul 2015 16:24:47 -0400 Received: from BN1AFFO11FD028.protection.gbl (10.58.52.31) by BN1AFFO11HUB016.protection.gbl (10.58.52.126) with Microsoft SMTP Server (TLS) id 15.1.231.11; Wed, 29 Jul 2015 20:24:46 +0000 Authentication-Results: spf=fail (sender IP is 149.199.60.96) smtp.mailfrom=xilinx.com; suse.de; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of xilinx.com does not designate 149.199.60.96 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.96; helo=xsj-tvapsmtpgw01; Received: from xsj-tvapsmtpgw01 (149.199.60.96) by BN1AFFO11FD028.mail.protection.outlook.com (10.58.52.88) with Microsoft SMTP Server (TLS) id 15.1.231.11 via Frontend Transport; Wed, 29 Jul 2015 20:24:45 +0000 Received: from 172-16-1-203.xilinx.com ([172.16.1.203]:49639 helo=xsj-tvapsmtp02.xilinx.com) by xsj-tvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1ZKXu8-0003Zu-LZ; Wed, 29 Jul 2015 13:24:44 -0700 Received: from [127.0.0.1] (port=39034 helo=tsj-smtp-dlp1.xlnx.xilinx.com) by xsj-tvapsmtp02.xilinx.com with esmtp (Exim 4.63) (envelope-from ) id 1ZKXu8-0004S3-G1; Wed, 29 Jul 2015 13:24:44 -0700 Received: from xsj-tvapsmtp02 (xsj-tvapsmtp02.xilinx.com [172.16.1.203]) by tsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id t6TKK6PC010130; Wed, 29 Jul 2015 13:20:06 -0700 Received: from [172.19.5.153] (port=49421 helo=xsjrdevl46.xilinx.com) by xsj-tvapsmtp02 with esmtp (Exim 4.63) (envelope-from ) id 1ZKXu5-0004Rw-QR; Wed, 29 Jul 2015 13:24:41 -0700 From: Alistair Francis To: Date: Wed, 29 Jul 2015 13:24:41 -0700 Message-ID: <31801d99c424d645b3ec2737f5140d81656d723f.1438200827.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.1.1 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-MML: disable X-TM-AS-Product-Ver: IMSS-7.1.0.1679-8.0.0.1202-21710.005 X-TM-AS-Result: No--4.065-7.0-31-10 X-imss-scan-details: No--4.065-7.0-31-10 X-TMASE-MatchedRID: +aiIZkdJNeX/uyguzMmOKI6MisxJraxHesw8RnBRGwp+CPuoK+vfzWWa +qypoBhr5Sm8HHBIi6W+daZEFcM/u+SVcWGqSjBgxEwSTOeVUQ67nrAU9KQxUUbqb+WBsolSo8W MkQWv6iXBcIE78YqRWo6HM5rqDwqt1+aLzc6SwKklVGG83ywAEp49L3aUfy2jITU8cddBSCj40A ds7JYuXjjZ9OsPzXJCz8LE0JUQyEaOj4AVZtzhV6RV+7bK/2eBHSbhGbmGylXFJK7yLnZRGZdO3 Q67ImL8gi4RUz90EQwG2MApbv6odw== X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD028; 1:G6eDJtsw3tnbWoVdhydQauVx9Y4h/ZaSTO4RgU4CxyTqdOf3u+XUz9+2PwT0MBRMP39H1QxjbX7A4KJuP8LIEFgngAk/THMiaad3Pqnq2SDqBZezk30/LPgNU4/x2Ewpzd5dN9kVtIi2Yd+GX3DGY0wdN4O8ucEjP4wo6m3tjFO+m/XioZSpvDYL7+5pzjZPmFi5nHJ1FJ1Jb2uFaZcSY6Yl2CdPKX/51QEooNQL5U+x0Mo7EkulhOylM5ANxA/tiK+s+MgD9nsPW/EHqVjRL6W5gwneEfOCe3sZWNuU6yWrKeIqZTWwGMsLU2RaqubL X-Forefront-Antispam-Report: CIP:149.199.60.96; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(339900001)(189002)(199003)(50466002)(48376002)(189998001)(2351001)(229853001)(110136002)(5003600100002)(5001960100002)(86362001)(92566002)(47776003)(85426001)(118296001)(87936001)(64026002)(77096005)(50226001)(2950100001)(50986999)(76176999)(71366001)(33646002)(106466001)(62966003)(77156002)(105606002)(5003940100001)(46102003)(36756003)(19580405001)(19580395003)(6806004)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1AFFO11HUB016; H:xsj-tvapsmtpgw01; FPR:; SPF:Fail; MLV:nov; MX:1; A:1; PTR:unknown-60-96.xilinx.com; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB016; 2:JvPWPABqS99RgQNmm18OjlCCp2FEAiQftIJ562rknu84EqH62u8TzEvW93SrbtERATaet8QSmg/phWLqSpkY1s2GJNlvASgfmUiX0nABlD8AZ2Z64v76lP4U9y9S95V8UKLaWlln9/IUyDNUgFX2VjMfZjFXq3PBzA+Opl6VzzI=; 3:xd10S34bvBYbhPLZGnJs0/hZgs4W0b860+/6VFuUaPT0WKIwiis9gu1JeYyKA5PZ2kgxmCVLgDKi6UUQjGZsBmjmJYFU7POdmn7PGDYtpb84zqGZfxAanfQYJMjX7uOjjctgQJkHR8eHehMK+kid/NmmB+DCtuOVUFhdqjBYTfYDwcnVsznfVI0IrZBIKETxFoFsh3tMdTWFksILzoLcQ8bTaiT9pNarq6UJsQvSEn8=; 25:rV7mxSWfyYIpnZOoxua0WbtrTOFNgcu8yrCZN6EGn54+IMAksXmsS/iY8NLA61b4W1X+SiQCfCi+pO3B3ytgpfO6qv9xwTHEebPQsjwX0kZva1dfg9/O/ADPkmOBFY5dFVaJ/1TF9VpvB74WG3N/BIyXNLi19ZjMfAp/UkBVL1Qeu4dy+aNJXQfg1nkmY7+QsS4Y42CIuc8xTBspC98gsEtHB39cjKLzpbhls+wDtOdRLw72NvWsYzi8fWxMqN8rL4tw976IiuyiA9NnUnYXYw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1AFFO11HUB016; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB016; 20:C6ZwgBmDys0I8c6cWEYbZ7T7pOJYSAE4cxbtMvv0si6gHMv9DYamDrHtklJStPengFObEb5TE2W/kYO4QyAOstnSxcSMsD3xCYNzKnrdh0q5pSQZPFv0uG0GBEgX7UctU92F7TefRykvpP85h5YTX1IHWZnft2Ltl6UAY298EKzapdmwJ6ZLO/lVzbQdJvzmC6SUtlMs1Eyi5VzFjCoAD5rzrVJfh7rkGcNTsECmUHE6sVG/k/AeYNn0XKMDcSyF9avkHEyKsZXjNsw5aiCmfpSkIn9h50A42NS9OcZ4AcayouHPs6Xhn+U7LfBF2DbMH6KVn4UCwdx/hTbAIxE8phYkXChRXXV2FcAWF1TgYH5pAUnBDYwK9clMF6hDk+JOtVk6Xflmds5cMBw8/m7fTA1fQOFP6D93sR2175MhlxwT7OUoU11xH+tIqXgSrfWgeKnbZWeNy7IDxtLQiWshFg17JwRqdQAISRe8CX7zOKKTG13HGc6Rjj135UDmLJLC; 4:TjKIz5FRnNy2S34cgeVadlWGfrB1zlWy7W5hB9PdA3Uy69DQd5UVJG8wB7jRhgErjjW+HGSBJZLZhww6zbq/3wA8/ollMHae9I6rFlK6CygdrfYJezKPULaDv54QhpbAk5e9I2hKe0CpG5LQdOwkgXKyLXHObWjY/USXo2hi1TAzlBuYJPDMyN062F9ZQ2WNuN1LJRXKayQPL0ysdsm7hwQohgRQdgiRahEEupbBNgCU0FHOHT0D3oPCkibYuZq41G8/kyF1bIagn2Ye6yWdGqy3TWjxGnIGu3CRj7lVrOI= BN1AFFO11HUB016: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BN1AFFO11HUB016; BCL:0; PCL:0; RULEID:; SRVR:BN1AFFO11HUB016; X-Forefront-PRVS: 0652EA5565 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1AFFO11HUB016; 23:ZgmptfgQR34kGjScwTRINtvjioERlFR+Zi3O84+?= =?us-ascii?Q?2L4VvpiAC5zLhkrq0nBbQd8ZMAf3fjJSYWTSsFtQVth1T16Suvl0FHRs5TQR?= =?us-ascii?Q?DfQMPqaeLzK+MD9IzmeVFckkQx5Lah/vfTXvDx14JYhiMGSrSQMi6I8SqHHF?= =?us-ascii?Q?xbg1LF4R0nwbLG1X0id9H2Bm/l4uBT7tlweGslSlvKCxt3Rx6DE6S7Ix3LVd?= =?us-ascii?Q?5SrbN4apZh8Dik3lB9ZAE3R0QjTgoVMo+t8wS5InoeSHM2d5sY7yGhdD3YF6?= =?us-ascii?Q?/vjoTfyOQNaPkD0+xe7g/42f/I6y8CoE42CuhFa5VLbnzSM931lIfudjE4wI?= =?us-ascii?Q?aSLdEy5xR6sVzBB4bTD3gZEa3lbWJ6rnrVDBYNxsHKV3mYrCrRZ1fyc523Ay?= =?us-ascii?Q?OCvSZK/+Sub7LvyOzSxFe7DXdcyOkAIDPDcVWrasOxy8OJfvY5O+vjSOYM9D?= =?us-ascii?Q?IpRdRBbFQQRAVvRb1NFsWw8NErQPs7+dGWNFpF9H70DJlb1rS0T2ify9LdeI?= =?us-ascii?Q?X6p1CXoLkqjg7zkFZb0yVi2/Pd1upV/NB7XYxDT7T098G2gPytJFo/+BCnA6?= =?us-ascii?Q?w62SKakkyW0oCmU92z+uSU+gph1aODuenK6Qh5/SlpNNABm0SsS8yC1EjjiC?= =?us-ascii?Q?JnBxHA+2pYoCe1Y6QXHYMFZyT/2wLF0kxxCT9C8LWljI7+K12yrjVNlCjULn?= =?us-ascii?Q?kOTjIHZwVK57lDOkTbqxHtwym9m9+TB/0dViWQ5tDFPgaPEqfHEV9sybRfU9?= =?us-ascii?Q?Ny8liOQ+kFiltRMvqFtL7O7wvNE6m9nQGYgNWlmZFcGXxsVj4e1ksNbPprvH?= =?us-ascii?Q?L5x/sholrKv468FXlERNAfg+gXW49vp0QlqlVSk8NXNA4B4811vyW7qTKfvK?= =?us-ascii?Q?zCmejc6BmZnSmDmWnhl78pBa3aIrNmdZUFtToLKySIvrdxIdhs4QAY2DyJpW?= =?us-ascii?Q?HBR3+Wugu+uZX0q6RJYV7zOaCiagc74qDFbV1NVlIxLTI4jY/SkZ7q8WDiaU?= =?us-ascii?Q?pGDZuTWyu4o/7sL3ckBqaUa590ORBXyBcNCCcjMs3BSJAuQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB016; 5:0Fo4JJa11lNuqtolAXGz9UV+FOpM/QJe7qESCGjdWfu2RWRuUvz0Zh6I+Z5YV9u+D5Q5a5DonB85lmovWLbF6sAfxcEwQbsFo8hzzkcaNG0Akkq79HKMr7FIySFRLG/U2U8TlE1ybfY/xO1uzVyMzw==; 24:WAfw1i5ZWptksePO6gc29TkwzdV+f6IZX796ixDVk8XzRRzaqDMRPrDj/lg/UkqF/rAC5+9i/MZLQBmSqD7+5qGKyI+3JS82WQdI4YiQL24= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jul 2015 20:24:45.7319 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.96]; Helo=[xsj-tvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1AFFO11HUB016 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone) [generic] [fuzzy] X-Received-From: 65.55.169.79 Cc: edgar.iglesias@xilinx.com, peter.maydell@linaro.org, alistair.francis@xilinx.com, crosthwaitepeter@gmail.com, edgar.iglesias@gmail.com, afaerber@suse.de Subject: [Qemu-devel] [PATCH v1 03/15] register: Add support for decoding information X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Peter Crosthwaite Allow defining of optional address decoding information in register definitions. This is useful for clients that want to associate registers with specific addresses. Signed-off-by: Peter Crosthwaite --- changed since v4: Remove extraneous unused defintions. include/hw/register.h | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/include/hw/register.h b/include/hw/register.h index a3c41db..90c0185 100644 --- a/include/hw/register.h +++ b/include/hw/register.h @@ -54,6 +54,11 @@ typedef struct RegisterAccessError { * allowing this function to modify the value before return to the client. */ +#define REG_DECODE_READ (1 << 0) +#define REG_DECODE_WRITE (1 << 1) +#define REG_DECODE_EXECUTE (1 << 2) +#define REG_DECODE_RW (REG_DECODE_READ | REG_DECODE_WRITE) + struct RegisterAccessInfo { const char *name; uint64_t ro; @@ -71,6 +76,11 @@ struct RegisterAccessInfo { void (*post_write)(RegisterInfo *reg, uint64_t val); uint64_t (*post_read)(RegisterInfo *reg, uint64_t val); + + struct { + hwaddr addr; + uint8_t flags; + } decode; }; /**