From patchwork Thu Mar 22 08:44:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Hayward X-Patchwork-Id: 26420 Received: (qmail 44122 invoked by alias); 22 Mar 2018 08:45:31 -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 42900 invoked by uid 89); 22 Mar 2018 08:45:22 -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= X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0054.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 Mar 2018 08:45:20 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; Received: from C02TF0U7HF1T.arm.com (217.140.96.140) by AM2PR08MB0097.eurprd08.prod.outlook.com (2a01:111:e400:841e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.609.10; Thu, 22 Mar 2018 08:44:56 +0000 From: alan.hayward@arm.com To: gdb-patches@sourceware.org Cc: nd@arm.com, Alan Hayward Subject: [PATCH v4 06/10] Add tdesc osabi and architecture functions Date: Thu, 22 Mar 2018 08:44:25 +0000 Message-Id: <20180322084429.26250-7-alan.hayward@arm.com> In-Reply-To: <20180322084429.26250-1-alan.hayward@arm.com> References: <20180322084429.26250-1-alan.hayward@arm.com> MIME-Version: 1.0 X-ClientProxiedBy: CWXP265CA0052.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:2c::16) To AM2PR08MB0097.eurprd08.prod.outlook.com (2a01:111:e400:841e::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 2cfad5c8-3d7b-4b74-a1e5-08d58fd1304c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM2PR08MB0097; X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0097; 3:SJ9OuaHyk7xic3a2WwqCfFOYsnkpR1jARosuTVhmuJlTSRlIs0m9x1iM3CoNAlhrOLp0vA1VhrfnWISmhh9vaYQK4dUY/58bS4/FXnU/Omu7iIDBHLJtr/LYGzTic0kSDT1aOKUQQBGxOIuA+nKp2A1f19vmjoBPPEb2aFXpJparV28+fksuUXWexdlPYxeK8BkcOZkYGaG/ZD+sxWv+A7Row9WZXPlCdA/lni0eBrYbUoRPS1Hwnu/3FOaGhS+D; 25:PaZ52kmYCFIcwLzvgEDJjEcW7tt4Ox1Ohf533Gf+b/ROTpoY9iVZvIE529CTun16Bph9hHqRNgjNn9D8XesozWTDqdxvYY0Vn3WImfIMiLGjfFWLQPP5cy2dqmvqR4K7WVuBrzaxfycbyLkKyCSdXPNWs9w7DTkjIdMk0vhpsEBemrJKW51IBvNPJsxg4Ajp8pV2HzNkNv3e2PWXdVCxed4bdtJjR8n7DhRnthKq70rYo0YdyvPVAZ8F/GFM1fq75lf35nJWPixg9AWdiAay0hrMqRbwgodSobrcTzWqb9cxtGaDUulUSDIiDvu3bUDoY8uTtmc1LoHptJvhvFro6g==; 31:VKQHjZLaToNglHXFeKumnqqBJfYts1HCGxIzEtcZ1YFVG75pOJ1xtvaFFtZr++v+QUH41ocApAnERpEbb29zBKz/AyFVOWWKWw/GGJoJlN4wiXcAR/oUak/MdEP6ceO0gu2CXMFnFcmi2BN+rrIJ4Fe8E/E9sh2Uv538AmJkmjiPGKzByNgN+0dHw1xH+w2OVpZdIRYIcFfsy+y1+8qb6k39sBes61UnkoqDXgueadw= X-MS-TrafficTypeDiagnostic: AM2PR08MB0097: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0097; 20:cC6wOY299Zis6MXG/1u2JU3Yp0oxJ/4VR8TiUjS2bwExxSDjcYfun0nm4JHRPFgbsArGf3WhtFiSD0h5aM0LNSXtNE+B3g0N0dZ5XgOBnBjLa+DKK1kJgUHhGdNgsxAu4usGrS+W1XT22AypvVqrfuYXUGVzszD9zE6X98RNPGs=; 4:vrUZ/146mT8L8cBnw7uP8PWkdKdyHebEbWeYgMv3ZXeg5lGzJ7lnfP59DQ2RJpbf44HVVxh3OA29mgV7z75jkjhJROUE3o/C1VDgjoWvzaSb0i4jdEoTaoMev6d2nkyiZhjdL8RH7fFmFUz4lobNwdmbGHI/YtJYMa4tfucqukrnP5Qm7+usPFKoJjwgoJ9911ey/1NigSSFmy85a4X42N8TgNMe6Ixq9nhrvdg9mbO7QAvvXlJgIj0CHHWp18I6ogx7fx+GPD8fk1Ua3C+2ZU4Lez/KbyceJ7tEnFXWcX+ERaboi3LWyXSO0z5vU1cT 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)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231221)(944501327)(52105095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(6072148)(201708071742011); SRVR:AM2PR08MB0097; BCL:0; PCL:0; RULEID:; SRVR:AM2PR08MB0097; X-Forefront-PRVS: 0619D53754 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(366004)(376002)(39380400002)(396003)(39860400002)(377424004)(189003)(199004)(97736004)(72206003)(16586007)(7696005)(6666003)(86362001)(6916009)(2906002)(2950100002)(66066001)(47776003)(6486002)(25786009)(53936002)(51416003)(4326008)(106356001)(1076002)(8676002)(105586002)(478600001)(53416004)(6116002)(305945005)(50226002)(36756003)(386003)(7736002)(59450400001)(52116002)(3846002)(81156014)(81166006)(9686003)(68736007)(76176011)(50466002)(8936002)(186003)(2351001)(16526019)(85782001)(26005)(316002)(5660300001)(2361001)(48376002)(446003)(85772001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR08MB0097; H:C02TF0U7HF1T.arm.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM2PR08MB0097; 23:F0doz4ToPhocB99V2w10U0cAStrGdUtmpyavLUWdM?= =?us-ascii?Q?hi2ssPEmZUm6dG5HdDTWAYsz6WMJjeDfDKHpJ6t22pOtG0e5qny29owowJn/?= =?us-ascii?Q?Fg8wJMAgnmlqCQqsu15pURDRrw+AUO6GrFQS1FfGxQ/o2tXTXjDZQUPy0A0p?= =?us-ascii?Q?zPWzCkvxZOR1EOwNPxv8jb5broF8Ych+Rxx9BF6H0aTDKbf+FCF+8iUCnhUK?= =?us-ascii?Q?9AusskUwzz12xJook+rhO0Zid1ASXNP03i+oLgeBIQ7n0Q5mEurItOgavgiu?= =?us-ascii?Q?SqGzDb6AdqaVdeOdjYItW6hPs72cq73kqjreBKvbib5TsDDaVtoYoACMetYk?= =?us-ascii?Q?+B+wuvV6f+ii60Ll5yUcQwk8uyfqQtnJ+dLZORiQhoPwslCNNVMDeQKUGgYI?= =?us-ascii?Q?cLpqSqpok1A0zw2Ke9cLNyDX0/tT/TCQMZE97exJMODAEVUSdmGbxcLoSYnG?= =?us-ascii?Q?YfOLMc8pJz9zvXLGNt3mcxg2Bb2LNX6CSuoVE7Ryco6CBfL5YypMzyxx0Ouj?= =?us-ascii?Q?IkhOXrt6ONP1EZinpjwP2wPN+C2YOrb2Bpr/SIAB3QUeXyykIumSZLIrrck0?= =?us-ascii?Q?dtkXB9pp3PHUZQGr5X5WjoBiDw3zjGAb2+rvQSbeKihER2ejPf/LFLVoOM7c?= =?us-ascii?Q?pYOqDDtchcETIHg39KvzlRLwz2oGw9xdqicCiqiLypS0d2gKzjhs9GUyrY/+?= =?us-ascii?Q?UOfR6bQZGK73wr92FtYqIVjz9DMQQ1oW222ktPqD/kP+/hvPWFaa5Twfng4N?= =?us-ascii?Q?TuDVcWHyaQ45meGIrNtJe3ik1wuBFCmAHFM+JwbPU9Zj0M5PSlgJvNgkvOX8?= =?us-ascii?Q?geOn+ggqHRusjdPjk7zDH2OgjYhKz5jRGnYfz75F6dYlggM+vFg7uFOC9BlL?= =?us-ascii?Q?GvsTu7JsBaxersF/sD0KGbqtqOjneldXRjMrcgJ5oPIl56yWcEUvGoY40uAZ?= =?us-ascii?Q?gLsG3JqBiskzI7cXgai01QatHLF/xkJ3uT0biaEQqyR+VEXkGe3LWtfw+TvU?= =?us-ascii?Q?U+xQc3lZx8QS6ZXaVfA2Oh+N5oVjARi2qurWlZMPxviL+T/GxATalaAd34v+?= =?us-ascii?Q?1tFy7JnZ4al4M6pMVcfx2buuXwYItEuIXqNEHFup6ThZZZidIeONV7l+Rtdp?= =?us-ascii?Q?sLfl7VustAKZPg/CeN42AuAWgzhwiiB+hJKiSbj5o3XD7sqHEFPdIk+xJA/l?= =?us-ascii?Q?h96pKoAyTQqx8AdqZadB3BV3sFwFTzD/XjVL+5FpLIFGXeD4rtElDVm6g30h?= =?us-ascii?Q?uRonfuls7cF1Zp0jBnMQlvdKmpnHgcds610l6Vecwnm+HdjYKpXBQgyvbqDN?= =?us-ascii?Q?G/7C79ltlvphfF8TYa5M0w=3D?= X-Microsoft-Antispam-Message-Info: lgR2j6bqNBPUS6SlBiDYAtbT7KsrHdaUBFZVjMEs49Ta9bTA7LKDNXwls+4AUHXu6qzsbUnS0yivnFJoCQgrBcvrV9RepTwyxWH7l08dTpSd6HYvi+T/fhX7P6TL2DI/UuCQZH6c/sKQM6ZXm6+AWTgZZ2TNMngAkmf97F8RIYKH7ftSanbiD1B1CLxqxZlA X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0097; 6:ZKyNmusUa044uNijyui/q5OtfE0oxtn23vf2OBRwQcX6W4OyvYodMT0tLHd6T9Y2rMTRtAcOR2zTufHT7xhCCITlEwkfRrTjXlYcdiL1x/uHI1mQafndjavv847gcjyj8iydgf75huycCBjN7nbpQ6id1noa7ldhgCMK9SU9G4hrxip9bHd8sMNqnuzuFFcgnjQojQGDMTO2JnHmOZyoxkz9OKCLa4q2f6rl6TAtVEIaJWmshNA5aaHE+qROhp4sJGMvbnDxMNttfFIyVuqw903pvem0RluELoW4AEmbnQujJxmuWHN4k4wnixVH7rMwJLfHKa27obKiWjUVmGAMiV3b9SlqlmC1NLskAbUAZqBA4MaMFTlEZmE0ywW6v4er5B5Hzvc5rfOD2CBTh3/NgEuAFO+S+upCeCrD82Wiy+AJBQeq7zh6oi9+t+tJ37wjU/quaL9xw3bxY5GrcqAjhQ==; 5:+ZN5dxuiPYNq2pxKOuE5BX6x2uZn2KrPFdaeyJlWIL+JFVWMa+H+hqn3syWA+DrEVBCgWJCfKoVp+0ypJjRdTxBJ0pUPqJr4nvSXIivsN/Bj0F8AaKHlJt0kYFoI82gF3c9TJtLzxTuV6hkj60R6P48SgZS3d42lWfb/YxedfsU=; 24:a4eLrs9869pwmbndLpkYLYWNt4NKMHIxysV2925TbWS8PuNQW+HPiM0EnHIlIRdry332FrKydCMIkJzElBv5tQ6HmoxcGJoXJUoBFNlTHaQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0097; 7:d+Aqv447K4qCMyU4/GkBCnLAhQseYNkAE1c59AfKUhZjJTajlPlGV6bzGSsL923MxyWI/AEe+v/x9wBP0vRSGmGg0H/qjou3UJMbPcXLpdkcBc0r9iB2JxrFv/xLifjLEQc4zTO2rJ8OAW5NZVTqt9Q6UT2kN8OT07t1nnrkgQuhSsnOCxT1v1MaSnHTBD78ZOGTVN5SYSDqhkrklhbbluOiocObAPlGR9mHaruw/ahQl1/ll4KIs8Cp/MsQZlpF X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2018 08:44:56.0777 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2cfad5c8-3d7b-4b74-a1e5-08d58fd1304c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR08MB0097 X-IsSubscribed: yes From: Alan Hayward 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 version. Alan. 2018-03-21 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 986625e685..8ab77e365f 100644 --- a/gdb/common/tdesc.h +++ b/gdb/common/tdesc.h @@ -303,9 +303,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 1f30a32431..69bde2ae42 100644 --- a/gdb/gdbserver/tdesc.c +++ b/gdb/gdbserver/tdesc.c @@ -131,6 +131,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) @@ -140,6 +148,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) { @@ -164,13 +180,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. */