From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id t2QuMreQYGB0JwAAWB0awg (envelope-from ) for ; Sun, 28 Mar 2021 10:20:39 -0400 Received: by simark.ca (Postfix, from userid 112) id BDD701E939; Sun, 28 Mar 2021 10:20:39 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_SIGNED, MAILING_LIST_MULTI,RDNS_DYNAMIC,T_DKIM_INVALID,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id E28DC1E783 for ; Sun, 28 Mar 2021 10:20:37 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5829A385703C; Sun, 28 Mar 2021 14:20:37 +0000 (GMT) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2124.outbound.protection.outlook.com [40.107.93.124]) by sourceware.org (Postfix) with ESMTPS id 4E663385703C for ; Sun, 28 Mar 2021 14:20:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 4E663385703C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=wavecomp.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=fshahbazker@wavecomp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HDgKZYuMjt73tKlLl4QBsrAhS7A+CpZs3S/U+oATZmaqpD0+3wYmgiUp4R4Nd5Wu3JyiphwbVKu0U4To8KWccLifV0Ld7iksjqaOxTmD6g1coTKjgSDHETCgXUkhKGqsv3vOTnnGF80wGB8I9xnGwHMCzUlwNIqhl516yN0+6//pN1ZQtJpNn5ZuoKVSUO3lJtpJFssWbuFRWqOsm1O1mBFQ1ZB0+3f+3cNveXf7nzVP46i3Dy4k5jXMg3Q6MNE1DYWimXMVpiTCgP9cUmIkaE/x5P5B54XRwPpvT/kXmB9EE7rKtYthrlv6TB9GRu9fn1uFtbgwQVEyeVArurZq/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DIUUqgB8h7ilxHWCWtW0MIeA4EiG/63+fiNFl/q3kU8=; b=lvHDvA6xVrb+6I5LjyHEXNJx+0E0NKSCKpRm6nnrtyrmEEZ0SwYrmve5qpqKU7ryY7ugoMYjowEW0wckvAvJPgoALqrszOR1yA5SIwnpcSD6f1wZYLyO9qD1vD4biCdSlsBrn0HG7bGABnPBDFoI3b4xM7OTO6ng3aaPb8mbR/WrpFNDNWvVcC9ky7CWlC8kKB1sD6BZooeWvHje/I8xnJM47+Adnyimor+xn6u/u/mrXW7TR6CLdfbH+axj8/VgziRrrAg2D9zt8lhub8ojAvkRqz724k/buUApolRPuH1opVs7kwHFnhZQa+OUSvtNfhr0Z2l0BV78yJ0nl+jAEQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wavecomp.com; dmarc=pass action=none header.from=wavecomp.com; dkim=pass header.d=wavecomp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wavecomp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DIUUqgB8h7ilxHWCWtW0MIeA4EiG/63+fiNFl/q3kU8=; b=F2q987sIdV9yXnV8MGRi943tUx1EWT/X/3JMpgqIu1H57QCBgUJBtG0li7PwLfuMPCkhDZ5TdxxmvavNBkhzTTLgJAtX4Lb9Pwzc4EaQGsnecI0wa9QPZStcg44hiXMdFY7WT8MZIqouUiUStL3+rAQ/HNoGQct/daSJ2OeGMMw= Received: from MW3PR22MB2299.namprd22.prod.outlook.com (2603:10b6:303:47::10) by CO6PR22MB2433.namprd22.prod.outlook.com (2603:10b6:303:b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.26; Sun, 28 Mar 2021 14:20:31 +0000 Received: from MW3PR22MB2299.namprd22.prod.outlook.com ([fe80::c17a:9a15:2dbd:2411]) by MW3PR22MB2299.namprd22.prod.outlook.com ([fe80::c17a:9a15:2dbd:2411%8]) with mapi id 15.20.3977.033; Sun, 28 Mar 2021 14:20:31 +0000 From: Faraz Shahbazker To: "gdb-patches@sourceware.org" , Andrew Burgess , Mike Frysinger Subject: Re: [PATCH] sim: mips: Add handlers to simulator monitor for unlink, lseek and stat Thread-Topic: [PATCH] sim: mips: Add handlers to simulator monitor for unlink, lseek and stat Thread-Index: AQHXI7U5L4VRDk6XyU+USoCRPa8BXKqZc0fd Date: Sun, 28 Mar 2021 14:20:31 +0000 Message-ID: References: <20210328093206.15977-1-fshahbazker@wavecomp.com> In-Reply-To: <20210328093206.15977-1-fshahbazker@wavecomp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=wavecomp.com; x-originating-ip: [2402:3a80:6b3:d906:41cc:1243:8726:6355] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9b7799bf-64fb-46be-235e-08d8f1f4a504 x-ms-traffictypediagnostic: CO6PR22MB2433: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +qHWkhGF+qZqgRAFIrtnfKwyIntXy+qQKwP9l7MPvTKx8KJX5tFuX2b0qBsWuONXuOte/GmU0VyeAtSGbFzzvy8jG+A/+pj6y3bFd38kXXvQK5emOjaUm1nFXh8Xm9cCuhvhMvX6iUSmUwticT4Vh9yYEfo2ww+orzPPNErBmNh54ItoyvgnWuPeJZmye/FhvC2PhxJf9m4Pr21/8fABekqgSupUnjYCKYm/bftrJmfESqQTJqUX+JFgeiKfGKRWLPOAf7Raz/+jKIz4iO1Wtt8HqCIquFQChJtEvWetQQfJSnQ6MkwI5oSUorUfgPG10oe2FY75cOPlZy8eJHjKmtN0dJxY5RgP5AnchW7kwYEkRO3wICbNfCRApZHs8+vJ6Q6pBUxu3TlRXj4LGtrQ46gzPEM1q8UBUvmPln5zHQuDK5o1V2YVfcOYfbmiuL1/NNo4bbSI2g7JB5x1sRs4dF5s/Y+wxMkaFUEWN1nON4FUNPS6dnkoJZcsuKKPRJX4yp2nfEaDmOCTDKIJl/cXTMgZbIr3b6Ve9IuZtFq/cqVsBkGNddbwI3bkvkRXzXWeBA7nDHC/t+MDdKlfUnMAOFKfrY3o+87SEykx3w/eAiEtkLo9fe3g70odW138d4wu1K3JNpKsKRCZ/NMfkvYa6g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW3PR22MB2299.namprd22.prod.outlook.com; PTR:; CAT:NONE; SFS:(39830400003)(376002)(366004)(346002)(136003)(396003)(186003)(55016002)(83380400001)(53546011)(86362001)(2906002)(9686003)(91956017)(6506007)(7696005)(110136005)(66476007)(66556008)(64756008)(66446008)(316002)(4326008)(52536014)(5660300002)(8936002)(33656002)(107886003)(38100700001)(76116006)(8676002)(478600001)(66946007)(19627405001)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?Rf7UXZ6/1/gjst3SRaOagZ4BTb+bsifRI35ga4p1rEQd3RG9s4VjVzsDIY1n?= =?us-ascii?Q?yvqkKMh6BgxFPKr8UJ3p68xwrKWOgul7umWLukH423/0wcVZrncCroJoa3S+?= =?us-ascii?Q?gvsfs7X1VU87l9ql9bIM6mH0DOhTBMWhJFCftuT2QFSFya+w5ZokPtTDLvr5?= =?us-ascii?Q?+p6gJTg+RJgMGJHebr5QRIYM4hLgVUQ8FjvH1F/E7wWOhpwaTojOZ8m6k2mK?= =?us-ascii?Q?/6LPo0OpAspho15z+7dGcjvO2WWkjqBaxEJBGq9tEC5vALgRpr/Dwsp2Krp1?= =?us-ascii?Q?LH4kroP8+RZH7FruzuXiKi1671oUjG3jv0Xdb04WrUorSgJ/jbNF1MT81018?= =?us-ascii?Q?GuzktkqKMGCe+pVc3XjbT5nrbgA5BDJF8AWFyRpnu9cswFkjNp2bXmB5rONn?= =?us-ascii?Q?W4yhVcyEfyyeDiVQE176KFdgeF4KEi3oWdFyhzf0M9Fg0q1vHlCBO9r5bmuE?= =?us-ascii?Q?B67HlUG+y0ySsC7JMj+CS8zdL+T+/q+hwy8mKt4LMxTz2oSHgHAUt/beIZhU?= =?us-ascii?Q?cK6G1UTpKDGE5Qu816VPl0R25TDVq/Q72rOFN75UQxkrRV7tTKB8K6O7GSTl?= =?us-ascii?Q?JUD72nZlY975YgyDGqosl6slLo8KSnYkE8EZ8iCtdvCPa6BVaxvltPLAQsiF?= =?us-ascii?Q?oxoOebcXR00BlLUcua8WrRHMgDo46soCfXp7n67+jl/6u1r1uDpSu7T5+f1W?= =?us-ascii?Q?H/Uhph9+n1aosu4Uhivj2FdqevZmCrfu7jsIfTD2NVgFhx8pliXcv8yOtsBN?= =?us-ascii?Q?xjtwdUKF9kFgPzfjoGCp/cEORufuGfeOCf9s//UfFaa+vt2nMNA3WjebDf3x?= =?us-ascii?Q?hlYJhCCk8Dlt9HmC2I1TBzj3Rk22flw3jed6AI3mvx1b3+xDenv8QVHiYjqX?= =?us-ascii?Q?4R8530E7kQi9ESrIZeue9o9K82DxvfSqMnkCM6jhHVngbdXNIYJ+N3mRjeU8?= =?us-ascii?Q?L+IL5ZXPidb2rW59T+bRGG3Flog9kbfcQr9EqX9Ch1EyvNcMthG48nKvvlRE?= =?us-ascii?Q?/IVV96nG9ghrjy8Kn1jxyBsqYW2dSULIXKj47LUKnQ08UchiPm/BiD24WJrF?= =?us-ascii?Q?hqA3+zmD5TzwdgH6FEhBe08D6NqG1pc1RpdJHJAMpJoLjCHzAMK090fGl/AF?= =?us-ascii?Q?nvwlt0B1A9eLRrRopGK+jmKjiMtnw4Ta9Yj3hXO89T2uDYDPFzDdK/1JwaPQ?= =?us-ascii?Q?OfAViNNtQ5bk+YeW1sGFQ6Rdn+cBKYpnp9hGnBVrPsd/Hav6KThS86ehxPNX?= =?us-ascii?Q?65dUe8HjG+4ViLkdJt7GI/TFTBrn9dcCr+6wg44IxC/GDeh3DbhIS9F5egPd?= =?us-ascii?Q?ACvOj9V6LgtG9OGS22Ke9H81SvGhrjXbsopOjCm8YnyGc8ilLzenjIWijMNM?= =?us-ascii?Q?40qeX44=3D?= MIME-Version: 1.0 X-OriginatorOrg: wavecomp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW3PR22MB2299.namprd22.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b7799bf-64fb-46be-235e-08d8f1f4a504 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Mar 2021 14:20:31.3730 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 463607d3-1db3-40a0-8a29-970c56230104 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zT6Tt0urIgAGy7RpDmXFVrMiSNY53eJF3QtACdi5hQBrZwdd6nAf/ZLSoWUZkUXZezcRF57ecbUtTKeqo0JdgT3TsBRFOLTAP+9cl2J1bag= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR22MB2433 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Chao-ying Fu Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" Tagging global maintainers. ________________________________ From: Faraz Shahbazker Sent: Sunday, March 28, 2021 2:32 AM To: gdb-patches@sourceware.org Cc: Faraz Shahbazker ; Chao-ying Fu Subject: [PATCH] sim: mips: Add handlers to simulator monitor for unlink, l= seek and stat sim/mips/ChangeLog * interp.c (sim_monitor): Add switch entries for unlink (13), lseek (14), and stat (15). Derived from patch authored by Steve Ellcey --- sim/mips/ChangeLog | 6 +++++ sim/mips/interp.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++= +++- 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog index 12347a7..88dd7dc 100644 --- a/sim/mips/ChangeLog +++ b/sim/mips/ChangeLog @@ -1,3 +1,9 @@ +2021-03-28 Steve Ellcey + Faraz Shahbazker + + * interp.c (sim_monitor): Add switch entries for unlink (13), + lseek (14), and stat (15). + 2021-02-28 Mike Frysinger * configure: Regenerate. diff --git a/sim/mips/interp.c b/sim/mips/interp.c index fd93a12..13e9129 100644 --- a/sim/mips/interp.c +++ b/sim/mips/interp.c @@ -40,6 +40,7 @@ code on the hardware. #include #include #include +#include #include #include #include @@ -1167,7 +1168,7 @@ sim_monitor (SIM_DESC sd, /* The following callback functions are available, however the monitor we are simulating does not make use of them: get_errno, - isatty, lseek, rename, system, time and unlink */ + isatty, rename, system and time. */ switch (reason) { @@ -1241,6 +1242,71 @@ sim_monitor (SIM_DESC sd, break; } + case 13: /* int unlink(const char *path) */ + { + char *path =3D fetch_str (sd, A0); + V0 =3D sim_io_unlink (sd, path); + free (path); + break; + } + + case 14: /* int lseek(int fd, int offset, int whence) */ + { + V0 =3D sim_io_lseek (sd, A0, A1, A2); + break; + } + +/* We may need to swap stat data around before passing it on to the + program being run. */ +#define copy16(x) (BigEndianMem ? bswap_16 (x) : (x)) +#define copy32(x) (BigEndianMem ? bswap_32 (x) : (x)) +#define copy64(x) (BigEndianMem ? bswap_64 (x) : (x)) + + case 15: /* int stat(const char *path, struct stat *buf); */ + { + /* We need to put the data into the type of stat structure + that MIPS uses and make sure it has the correct endianness. + We are assuming that the host and MIPS agree on what the bits + in st_mode mean. That appears to be true for x86 linux and + MIPS. */ + struct stat host_stat; + struct __attribute__ ((__packed__)) mips_stat { + short st_dev; + unsigned short st_ino; + unsigned int st_mode; + unsigned short st_nlink; + unsigned short st_uid; + unsigned short st_gid; + short st_rdev; + union { + int b32; + long b64; + } st_size; + } mips_stat; + char *buf; + char *path =3D fetch_str (sd, A0); + bfd *prog_bfd =3D STATE_PROG_BFD (sd); + int is_elf32bit =3D (elf_elfheader(prog_bfd)->e_ident[EI_CLASS] =3D= =3D + ELFCLASS32); + buf =3D (char *) A1; + V0 =3D sim_io_stat (sd, path, &host_stat); + free (path); + mips_stat.st_dev =3D copy16 ((short) host_stat.st_dev); + mips_stat.st_ino =3D copy16 ((unsigned short) host_stat.st_ino); + mips_stat.st_mode =3D copy32 ((int) host_stat.st_mode); + mips_stat.st_nlink =3D copy16 ((unsigned short) host_stat.st_nlink)= ; + mips_stat.st_uid =3D copy16 ((unsigned short) host_stat.st_uid); + mips_stat.st_gid =3D copy16 ((unsigned short) host_stat.st_gid); + mips_stat.st_rdev =3D copy16 ((short) host_stat.st_rdev); + if (is_elf32bit) + mips_stat.st_size.b32 =3D copy32 ((int) host_stat.st_size); + else + mips_stat.st_size.b64 =3D copy64 ((long) host_stat.st_size); + sim_write (sd, A1, (char *) &mips_stat, + sizeof(mips_stat) - (is_elf32bit? 4 : 0)); + break; + } + case 17: /* void _exit() */ { sim_io_eprintf (sd, "sim_monitor(17): _exit(int reason) to be code= d\n"); -- 2.9.5