From patchwork Tue Apr 10 14:33:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Hayward X-Patchwork-Id: 26670 Received: (qmail 53350 invoked by alias); 10 Apr 2018 14:34:15 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 53248 invoked by uid 89); 10 Apr 2018 14:34:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=1076 X-HELO: EUR02-HE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr10088.outbound.protection.outlook.com (HELO EUR02-HE1-obe.outbound.protection.outlook.com) (40.107.1.88) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 10 Apr 2018 14:34:12 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; Received: from c02tf0u7hf1t.manchester.arm.com (217.140.96.140) by HE1PR0802MB2138.eurprd08.prod.outlook.com (2603:10a6:3:c2::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 14:33:55 +0000 From: Alan Hayward To: gdb-patches@sourceware.org Cc: nd@arm.com, Alan Hayward Subject: [PATCH v5 4/8] Add tdesc osabi and architecture functions Date: Tue, 10 Apr 2018 15:33:33 +0100 Message-Id: <20180410143337.71768-5-alan.hayward@arm.com> In-Reply-To: <20180410143337.71768-1-alan.hayward@arm.com> References: <20180410143337.71768-1-alan.hayward@arm.com> MIME-Version: 1.0 X-ClientProxiedBy: CWXP265CA0019.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:2e::31) To HE1PR0802MB2138.eurprd08.prod.outlook.com (2603:10a6:3:c2::10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9ddbc7ca-da68-4f97-d2e3-08d59ef016ee X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0802MB2138; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2138; 3:wslJzBrXPPkUqar32V2hxM68YXfHcmVHZ4bOZ9tqm0Af/DzDAufJD7r85sSPjOTX0Df4JcxXdNn/LZw0aCXpMkBq2DgEocT2a73BIG39zR2S1L3ufJGmyQzlvtEBp/nds4lrD99S4lhRL7B/qdkBEGfBxaBq9gjycKv9G+W9sy7vXBzyFXdwT36ddmTiFj8Ttk6IfpCcLMQ44sj5wEQMCMG1iLf6p5k8qrhI5R41jWQ3acE6pBUi3C/QGgQ5V/UN; 25:0Pc9AVUCJpY6e3dbFZ8rlHc7dEo0Sg5rYR9vuP88n6ZRA8JPdb4KUuUJiMkiJx7njIJoOnxLUhUT+qcYTIIjvhddwY3yFnfGvwwplZq5yNWQLy+TpD/9rrsIMWYdf3A/kMCaBho5mOCQ9J3PfaZUpNjZNf/rBEPs/kAkaMuN7qPZHRlzh9JebRK27HO2bvpn/bF6NnwZZ8dVArt/JNVZQUExGXeGHJMkIhlLOkip8caJNJEWQGDfhmWINrZPZfb/pk9GmuNQ2RvnGke0IbtYrE93UAD6kCPT1iRlHxnI2x9OMgqd5fuPGyquOZWfgIoZFWt83UBGbdNE8/DmGfwJAg==; 31:jE5VWuSgvTNaraW7LrV4hFxFsmwQOz43W27gen5N995fEd/cbWB6TGxZZh7knF++8IHqYdXfAjrIIwXwaNEXeIG+535H/ACOa/aywmq6CsHwAR+mwXnSwBtTWwChCLqSvKHkgx2M01NGG3ZWFRUirBtnQ0xqGVCKfQ+mFJhRPIk5tWN2yjvkPV66jNU8n+dyH1XJniwOKIt+9EWWpL3l+PRvDA4wsKPPae5p0D0N+wE= X-MS-TrafficTypeDiagnostic: HE1PR0802MB2138: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2138; 20:InP8JTXRpSDQnEBsGq+F8rDcyR+jBtpPivDEfL6+2YntZmIyW1qxFpaMp8q18J9XkEkmQDeoBVCD4pTOEb0zCqRqRrhHJAVgfoWzjp4nktZi8FsQcU5ccZV7/TNfcZB+SY/Ir5I9WJgwkocZQ2Mm7Els7vyrBE0+/0yAP/zYsd8=; 4:J958EL8vopE5fVOwaCFeubVb3JlZM+dh+YsNvu+LDEEI3GkOF9yrT6Qnv6qPYFZV00yhABM4iu/E9pU+WT4PdQk3+5GXIaawh4QylWtnJJ3x1DmM2GRd9ID8F2hItsfMwV8BJIC37n07Y77dtmrpz/w5YvG5ooWnGL/vJRnAKxUy6kyKCYCMfn9owrIs1o3l3S+j+E5yIRnlC5lTDiu3LZRXkNZUb4UGB4bkaLB3XccRNfp9jNjrMplqCqmVsKricnSrBPWsEwGkQW43xOgYXE5/xhK58pAT/QZjpP7bK7pOkWdBF7ufdNT1ZpSEItxY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:HE1PR0802MB2138; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0802MB2138; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(396003)(346002)(39860400002)(366004)(376002)(377424004)(189003)(199004)(76176011)(386003)(52116002)(7696005)(36756003)(59450400001)(51416003)(6486002)(105586002)(486006)(6666003)(11346002)(6916009)(476003)(2906002)(3846002)(2616005)(6116002)(956004)(2361001)(446003)(1076002)(2351001)(186003)(316002)(26005)(86362001)(16526019)(8676002)(68736007)(16586007)(81166006)(81156014)(5660300001)(7736002)(8936002)(53936002)(106356001)(4326008)(478600001)(66066001)(305945005)(25786009)(48376002)(97736004)(72206003)(575784001)(50226002)(50466002)(47776003); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0802MB2138; H:c02tf0u7hf1t.manchester.arm.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2138; 23:fjda9NMNShwEeJXx27V7J1ZDSU3aWXgrcrCR21e?= =?us-ascii?Q?6F/kkbB4JB3eaVRdqel+VPJh+qNGKIJW4a/krXaIxirscq0/xPjJs+6ARHXb?= =?us-ascii?Q?74RK2MA1xPityWD6vgo86lXY0BMwxCcPLn13/nURIwSr4sNSaz71+VgC8Qc8?= =?us-ascii?Q?+/v6QzNWRryi22z7i761TbnQbeM/2MJJ9FWeLdh7vk7fG2hvoo64DkfiY+hM?= =?us-ascii?Q?VAgHV6nQcqQOIeT2WxqFfoasDrer+rjJd5tytIOnj0jc74rmQ4tnrLqBva+o?= =?us-ascii?Q?P63Zt4Pp5U6JU6XRx1olxHIZM+GYvX3ky5I5SCb55HezgMnR7MJw1BjWrSbu?= =?us-ascii?Q?n1InU+Hsfj/vHA9a0HaK3cOG/hTH1WvwNfn44lvbY9cx9NWO1uRXhE5tRy/5?= =?us-ascii?Q?fqmhfJLhrdw4F5XxsXU16tO6YnONWhJftMD1u5Irigu+zUcuIR4v5UKM5o27?= =?us-ascii?Q?iS1KRNV2XmYQi1g3vd/pnmD/ACOitGEvIsXhzV69qmklMkzk9cTU/Kwj2KTT?= =?us-ascii?Q?Sqj49wB71ji1PetvKGemSxKAoQmfbDc3YLj0GGb2/O+vIhN7d7SEu758sgYd?= =?us-ascii?Q?3AcnvaYi1aVsoCJQfW10zjLOPAU8WLLmnXcOQ0thfy5siPIQCYVK+/MfYGWx?= =?us-ascii?Q?vNQKX40OmzrcxJDNwIYA5QvG6x1TwtkAE9ODL98sFDI+hhXTr9yMzIjM/zom?= =?us-ascii?Q?iuVxr+8jZdh5ufD2eg2eA8UtzsQIXrQh1irvCzm1NE2c99u2AcGa8RuAMpOy?= =?us-ascii?Q?uBy1XHV20Tw6sxkHNsLevmpHmH7lJyXkbxlm8pISkSewOezn2f9JJxCsWqHF?= =?us-ascii?Q?5kkkiTIVg2SgDhex45ZXCZmXzPTfnQiOLjt1nySCHr0JVb4s5oxZN6ll2uTH?= =?us-ascii?Q?wd/BygPklf1r+GJkfmFubc5FHkRpOFZTYRDMtLoUNLGI8GFyCzPB8roGfCRD?= =?us-ascii?Q?PhbXawUd5X5/p9+N6nu9ETjWpbDK9Whc8eLP9nQKgbStNPyiQRFGyqa0GrAk?= =?us-ascii?Q?fTZbAABF5XAtfGs88EuIFsMxJj5ToZYIauRXx6ZmopcW5ORTP/qV1mTLTXTZ?= =?us-ascii?Q?bOXdFvHIwyTVIy1gmsAWMIHOvr5ntr7CIqkEjP1uYbu0NenLVcweGAUwzEph?= =?us-ascii?Q?bvMSYu29qY28l24Jtckfe4CsiE6kOr0DM229d6eEWN+lVoLOku2SzpJBWrr7?= =?us-ascii?Q?GQ9e/4w14BD41eIoNWLrroJ7Qy0c6guq+IrM8TXPSKGdWfIWlm/VKQCb44a4?= =?us-ascii?Q?lcB7eYj88sfVEcq0D4CwXesgfa3FmcrD80/zxjulukvwmvS+znR1JZmXSoB4?= =?us-ascii?Q?El07bgwiUPoCS4VC1ab+a/IU=3D?= X-Microsoft-Antispam-Message-Info: jwsY5F237p1YpK8urMwgjaRKCmHudfxYDwt8cDF9fEl/iKK9HtP3sh8fMuT1PePgFSnzX56338BL11PihQk3DWNsN2B6g5Cqp9lAFHKJ74QsirBMLfx2w/8Ko1m0YYJBgxSOwC2yIVjQ3ObIj5o8rDk3Hv6GeAK3z9WDYB5xNhMF7iuhTyPvIWWey89PnR9b X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2138; 6:B5m2XF0H4EoHLwrDik4bl39uVgyW7pEdGy0gLMMcgCllNZRxmW+VB+W8zcd6KWORaAtl0qNcJry5wUcdTG+Mhbjm23fe+jaW5SOA3b0HQexfSWgxBmylYvo03x7CLVz0k/xaH0khjtTa8NFwnj4T8c2N6yyzrx4w1lNlAeavY/VEokOEyIvoSiKsvP+mfMEdXlAGBWtXHE3bvNl7tlRP6FFD92HF8ITVNUn8S12u0YPSBb+O0GEKGLW0PANPoBsgge5/EGdagFshXwpmXAXVx7woQyDD5AQzXiLcD3KoJ34walgYbowwncWxUqZPRZpdOa2yomwov4hQKi2XTUSQCfF78wLKazhOxDuq/EGfb3/M4cnysss21apnXltZuiptOBAaA0+hmrpYnHt23qP9HW/I4jWqjvhDdpjwAvZdF13XkGsXk16f7dzEGY3VPSjudgOnh43w5ZXyLcKtL5R+7g==; 5:xkfe1YdGrk4WauUkQTqwxd6aW/dexaovWbmHeKC4l/1chmF33cMClPmbwvIJK+PukMojQ3nsff+9gs/iZ6Cu/dxAJ0bNR55MM3nwuxkPTxloeHcorO3aQ6PD07OCvXGbo7GscRA7c/d8KfEtf0EwGdFdOcsPxdGvJqs/g+lF26I=; 24:bdgzv63UdN8nJQAUygok1R7b9rRuIToOtKzKp8mkVuPZtuPTHWByX1uJnojSTuR+0NMJKrqEfGv5O1LKaLwsts6l0r+20JzOSFInEZbnihg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2138; 7:oUsCfs0fnrC9k4sz5Dax1ZTmSujBeNOZA6x3XkZIZSU/YxQ9ZP/yH0JxxKFTDD7KO8sPSgKkAFdorcr+lln8RAVgsRWABLUYKo4dV3PZ7ctK6m0lxT1knzOCmClal+Rbc3xInF6LNSQnu0CP9dLJxUFn7dqg/HxLT8SrjQAhhTvPNf2YUsrA9sLa6q9yUtHJlz8c+CF10e15WgGM/fZ6WXBom5yyBRz9hqIbOLJ5zphQUWpNlwTRL1x8rhwr/NzO X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 14:33:55.2820 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9ddbc7ca-da68-4f97-d2e3-08d59ef016ee X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2138 X-IsSubscribed: yes Add functions to access to printable names for osabi and architecture in target_desc. I wanted to add these as member functions of target_desc, but cannot until target_desc is moved into the header files. Identical to V3/4 versions. Alan. 2018-04-10 Alan Hayward gdb/ * common/tdesc.h (tdesc_architecture_name): Add new declaration. (tdesc_osabi_name): Likewise. * target-descriptions.c (tdesc_architecture_name): Add new function. (tdesc_osabi_name): Likewise. gdb/gdbserver/ * tdesc.c (tdesc_architecture_name): Add new function. (tdesc_osabi_name): Likewise. (tdesc_get_features_xml): Use new functions. --- gdb/common/tdesc.h | 9 +++++++++ gdb/gdbserver/tdesc.c | 23 ++++++++++++++++++++--- gdb/target-descriptions.c | 19 ++++++++++++++++++- 3 files changed, 47 insertions(+), 4 deletions(-) diff --git a/gdb/common/tdesc.h b/gdb/common/tdesc.h index 7f4222b653..311341da0d 100644 --- a/gdb/common/tdesc.h +++ b/gdb/common/tdesc.h @@ -297,9 +297,18 @@ target_desc *allocate_target_description (void); void set_tdesc_architecture (target_desc *target_desc, const char *name); +/* Return the architecture associated with this target description as a string, + or NULL if no architecture was specified. */ +const char *tdesc_architecture_name (const struct target_desc *target_desc); + /* Set TARGET_DESC's osabi by NAME. */ void set_tdesc_osabi (target_desc *target_desc, const char *name); +/* Return the osabi associated with this target description as a string, + or NULL if no osabi was specified. */ +const char * +tdesc_osabi_name (const struct target_desc *target_desc); + /* Return the type associated with ID in the context of FEATURE, or NULL if none. */ struct tdesc_type *tdesc_named_type (const struct tdesc_feature *feature, diff --git a/gdb/gdbserver/tdesc.c b/gdb/gdbserver/tdesc.c index aca27ea3b0..7603a90a59 100644 --- a/gdb/gdbserver/tdesc.c +++ b/gdb/gdbserver/tdesc.c @@ -107,6 +107,14 @@ current_target_desc (void) /* See common/tdesc.h. */ +const char * +tdesc_architecture_name (const struct target_desc *target_desc) +{ + return target_desc->arch; +} + +/* See common/tdesc.h. */ + void set_tdesc_architecture (struct target_desc *target_desc, const char *name) @@ -116,6 +124,14 @@ set_tdesc_architecture (struct target_desc *target_desc, /* See common/tdesc.h. */ +const char * +tdesc_osabi_name (const struct target_desc *target_desc) +{ + return target_desc->osabi; +} + +/* See common/tdesc.h. */ + void set_tdesc_osabi (struct target_desc *target_desc, const char *name) { @@ -140,13 +156,14 @@ tdesc_get_features_xml (target_desc *tdesc) buffer += ""; buffer += ""; buffer += ""; - buffer += tdesc->arch; + buffer += tdesc_architecture_name (tdesc); buffer += ""; - if (tdesc->osabi != nullptr) + const char *osabi = tdesc_osabi_name (tdesc); + if (osabi != nullptr) { buffer += ""; - buffer += tdesc->osabi; + buffer += osabi; buffer += ""; } diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 2782ffaab9..da2c1ce345 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -628,6 +628,14 @@ tdesc_architecture (const struct target_desc *target_desc) return target_desc->arch; } +/* See common/tdesc.h. */ + +const char * +tdesc_architecture_name (const struct target_desc *target_desc) +{ + return target_desc->arch->printable_name; +} + /* Return the OSABI associated with this target description, or GDB_OSABI_UNKNOWN if no osabi was specified. */ @@ -637,7 +645,16 @@ tdesc_osabi (const struct target_desc *target_desc) return target_desc->osabi; } - +/* See common/tdesc.h. */ + +const char * +tdesc_osabi_name (const struct target_desc *target_desc) +{ + enum gdb_osabi osabi = tdesc_osabi (target_desc); + if (osabi > GDB_OSABI_UNKNOWN && osabi < GDB_OSABI_INVALID) + return gdbarch_osabi_name (osabi); + return nullptr; +} /* Return 1 if this target description includes any registers. */