From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2138.outbound.protection.outlook.com [40.107.249.138]) by sourceware.org (Postfix) with ESMTPS id 1F56F3865C12 for ; Thu, 15 Feb 2024 15:28:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1F56F3865C12 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=xmos.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xmos.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1F56F3865C12 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.249.138 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708010928; cv=pass; b=HuVxzMZSowipjb34GBpMpFIBZj7VIi+GXOgccctNN6ZYddySM0UIPpnn+l8kUzkw2YfFvqi1P1setC5g/A6+DVfYkcOatNb9yNKgmjn8pYIKyrjB2v61ZvgfXA9q0qZ/QIDjbABVbKCCq1k2YbdvcIJ0J4tFuBxZsljGTZfD4FI= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708010928; c=relaxed/simple; bh=B1zeJQ7nEJzsgOQo6LbefpEnQjSJiyRdFaotge4p+Oc=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=I93wf7UNIujjikSENXG3SF5PmpjWgwbzK8qBmfeXKtrnSdwv18XjnuLEd368sDjn7bZJlpchS7BlBKZKvaZ90EeoHQ9FnOfIGmYzC5Q1tgpCssVfNoEJXNeV6cjH41f1RstcJRnJiKxle8Qns3YBa32UcSdwB5g9mOfkjylRjV4= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fxBYF8EhmLnbaSbf/klMq/So5KH9sY8lHK1WrV+dXj7284g4cZqPwMf2G6ddPrcBW6S6QklCWamyZc1nx7MQHrlItHmqIhtSCsFgVENfFd6ja/jLvXHgdnpcmBxdrj467R70vrq6EM+0YO89UqU3fu75WvTefdUGWDywvNSmUaRzVN2+Z1Lgp4Q4VIOgZ++2KwxbBfFe/SPbrFQnZSU/cPXoen6ipX8dokb5AIpYG5jkldShoi3GQcmu+war0/xAvMJe5NSzzYH75oWkLGFWwe6l13d71dufhskIizMzdOehN/aBIVqwFCWSUnAa45pJ/LYX3JASij9WyVpyRywAGg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+9FLeGSQ+qZJNi3cYdvNWaAYXc3JL0Ql6vnnPogJ054=; b=mTbnj09C9xd28kK091M8gpzPmnoxuSerN3HXgfaW2WKAUzOEj9zEkJ43eX58El2LeKCqUOBC+EesdNxFbA4l0sQ+QyB6jV9gwlEHS7Vsa3fQ6XQRSL0CKlruLmD1i6vGl9sOubVpbfqOaWkxBACWUQg+40uk4jJlY1QNnKsggceOtrHEDK/qhhHMcSB1FXnC0Fe3mW/0LiLbppOtGf7bmOpHe4H49IUBX6KrgxIShf1a+603lbLksEL/5e2ZP+aE6bu2kW6SWqm6SUHTghArx3MNCi6eGCqo+hDoL36jh1ntgeSDJS7F4wJGKFCttoyFAXXhJnB92ZLVL5Lt+K3+Jg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=xmos.com; dmarc=pass action=none header.from=xmos.com; dkim=pass header.d=xmos.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xmos1.onmicrosoft.com; s=selector2-xmos1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+9FLeGSQ+qZJNi3cYdvNWaAYXc3JL0Ql6vnnPogJ054=; b=jGtAlLPY+5iKhLykjW2iO5q6pUEFGZsLD6AFhR6rHzyDjEAMKKSYnny3iIOu7/3zVqnGwhRZGTB4Lvq7al5zDQCtlCQUhkR7z4w49IPArSNaUgN+SIhroQT4jMSp2gI0456j3djw2kPqfEc+sLlncNBK2emJ5yj74RLVFeaalBE= Received: from PAXPR09MB5583.eurprd09.prod.outlook.com (2603:10a6:102:280::6) by VI1PR09MB6710.eurprd09.prod.outlook.com (2603:10a6:800:1da::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.26; Thu, 15 Feb 2024 15:28:42 +0000 Received: from PAXPR09MB5583.eurprd09.prod.outlook.com ([fe80::c02f:8801:968a:1a99]) by PAXPR09MB5583.eurprd09.prod.outlook.com ([fe80::c02f:8801:968a:1a99%5]) with mapi id 15.20.7292.027; Thu, 15 Feb 2024 15:28:42 +0000 From: Ciaran Woodward To: "gdb@sourceware.org" Subject: Mechanism for RSP's qXfer:write to indicate the end-of-file has been reached Thread-Topic: Mechanism for RSP's qXfer:write to indicate the end-of-file has been reached Thread-Index: AdpgI2UFjx5Y5v8ZQUmQ62ZJUdlEUQ== Date: Thu, 15 Feb 2024 15:28:42 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=xmos.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAXPR09MB5583:EE_|VI1PR09MB6710:EE_ x-ms-office365-filtering-correlation-id: 2d6f124b-5ab7-4ad5-c492-08dc2e3aca8b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xtcGD3AEM/9QPqZ/im+9p5o3BFMDpphbX77Jjin2tEnod3pKl9VLHq7NU5GNKWPB5r5XomjHzpQVF9BhREN6q2x61lTp84wtBuT46aKti5q+dcVxbfa3alVUEyHImh9vupKd3nWq10m5mwymdYjLW0Zt25I+GnR9m/uEuwQyn2DZ8t4OfXC4jAwUCsH1b/zn91gIgXVrCuCDZCaAUYyYq93pBkyc/aUKBgahu1aCyQ2nhtkjBNDLxfiAJHI1yslz3j0uSNN1u6IT9rRdy9rV08GkEEokzLX0qdw/v2IddESkiC4XmPl81+fTF/laWEp8XqEuQl6x8Bafx8BhoKuuMcTy2BPv0tHnN9gybDaJkIKTlkE6jTaauDO/yhSk2H0NoaFkEGWXq5VhNUTSTkKZV/5u//pEkrL4fUrYz2iPwRg/7Ffl9Clnnm4huhnWqP9blwzIt0k22GswLDjgZFTyWgIXES+LodcdeHF+R6fPgPVPw/YQ1WEuREnKPpDvG/X78TNaPcag12dBrH2qiJEbrQzJccQw1pn5OlxlwC344PCZL/TBuqwWYGXu5+yJBY0+6FRTfm8UtdMwcSKB8do80BGnqwqObfNLG3UIW2lSop8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR09MB5583.eurprd09.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(396003)(39830400003)(136003)(346002)(366004)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(33656002)(86362001)(83380400001)(122000001)(55016003)(38100700002)(38070700009)(2906002)(5660300002)(66946007)(64756008)(52536014)(66556008)(66476007)(8936002)(66446008)(41300700001)(7696005)(6916009)(76116006)(8676002)(26005)(6506007)(71200400001)(478600001)(316002)(9686003)(966005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?6CJvTwGpBDWoHF8TftjDSPKChOVfy4i8/UbrIs0pyHLexW8EBa3+UEKrPQ68?= =?us-ascii?Q?p7wxZJw8yYiLnF4YzGgKOAnz/5n0HWMetZT8nFGN2HzZ1eXfQMbeYrWV2cVG?= =?us-ascii?Q?lricJVrgcem93HbGhl7lHQC6kU8hKbXcym+c5nfiphDYSwktNOQvyWSzocJ8?= =?us-ascii?Q?/2Z8UQ83QC7ziC6hNh8kwoW8rW90Pw2JEFH+1xOBJJ9kiiljfrn7SWYVxOqm?= =?us-ascii?Q?3Gmw/awgfqeY53v+MZmaj1RRqGAizkouQSFRYEDCmxtNy0+pmfn56M6Ezla3?= =?us-ascii?Q?CTQ2ZY7+GxQN3mxhBfsvbWesGesBCILOWceiBHzlKtAeMMBXaxvEwQJvAkfO?= =?us-ascii?Q?gXJw5wp57TfEVHgQdPE/+3aZK0OOuhPLzWOA1J305ICRYYfsMujLF/ROh/qx?= =?us-ascii?Q?2TLn+cccdXpk11UyUQiHV5iuvP8Z/BLFX10MWxINqdMmVMOQNri4Ya16noWT?= =?us-ascii?Q?CIlc1A2qCLjdNFThgRat8e3MPE2WwIHHAM6Za3GqGcz3cCq59ybeMiu3G16g?= =?us-ascii?Q?qCoylFswqL4M0BOdviT5o2r/pmf7acKjWQHRZ7CaB1SXkHQprxpPnn5qUBzn?= =?us-ascii?Q?Innq9tcPuTApTl/u6Yiz6eavICdvR7JX2SCPzNfjbwDdpgnEwkDR6YkdWU6z?= =?us-ascii?Q?7aCa+YJJq2BRdd6aVDrFh6nQbTabyVMWlmZo3RSCAUkIxA2PK6Abm9sMJCA0?= =?us-ascii?Q?PJNHzOfq9iFrB7nDb1chuxkoQJtiU4sHT9UAdN8PsNDWRWs8l8pW50xhRWx5?= =?us-ascii?Q?s83LR24daEYOeE8YyoTRqLvlUriXGKKINlJV3ys/pWAfkbkDxhBfQ2FC5MdU?= =?us-ascii?Q?OR3UU1rq88f+cR+xAHKCbwUkvFA+ZX/6WN0r+qAFjIGH9xszc4TOYRChJbFe?= =?us-ascii?Q?gU9lePks4QiuRqRGaK6DPBXMwlkEgB3QHUV6lm6+hXNmn23om7oryqejADBL?= =?us-ascii?Q?Rk6lS8OWft3uXiotx/KWb3502XbmQHZ/ix5AscO0Lr8TlC2uHlTZHZV8Eufg?= =?us-ascii?Q?mD5Clk8rb+XmfdpjmuaZaGSG7rTb5bL/tjzQMrtTi2Rj+tyHK84u/pYjB2Qi?= =?us-ascii?Q?V3AH/LGZfZSy31p9gou+yY4MSg9rMDZ8wpupCsiDx8MJA3tNyNlMWI0sW6bo?= =?us-ascii?Q?gtH9bNZ0M5eW36ZEYL4wIzIpKon6FdZ9U9fPDZ8SkyPlm8hwGy055Nl1ror8?= =?us-ascii?Q?b+Ibe3XccSaJSp4VXlw9d6KPT6J8ku0aERf46Z1i/hWcV11npYLuIVSDqetA?= =?us-ascii?Q?b4ea1s6Vr4MREdc8QcUmcOVWB+LfaSbqrwdqGcij3gDatLH1oUckmqDqo4Rd?= =?us-ascii?Q?Dplww/5x/Vv9v+Br/b78L/phnse91fDLm4mYWc07/c7fcgG8ga0eJ9xGUqED?= =?us-ascii?Q?rWHnQNt+EJROY4/NcrSaBBfHcU8tif4iuoiZdi9kGhYLFZBSpTKGJnY3l768?= =?us-ascii?Q?q2JbCc1bjGmSTHnucbRr0RWtXAKI3rD72HUykIxfzsTv6qLSLhOTuGEuNW+N?= =?us-ascii?Q?En5wCpp0M+RmGdAmCTDOrmJ+Wep5oif47Sp99qC8WHnjb2EUNOrOOAXw+/Vw?= =?us-ascii?Q?oDDeUSi4Gz0x4tYAGLRyKVjxc8C5lW2iGaZ2jRUA?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: xmos.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAXPR09MB5583.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2d6f124b-5ab7-4ad5-c492-08dc2e3aca8b X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Feb 2024 15:28:42.0449 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 975ecfb1-4080-42d2-a01d-4a4d0707a539 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +U55uVGoxZljM5jlI1eCWmvJbehkdcHyW8L3Zy3DKzDc8958mmgrYoHLA+dKlkwMqNquvmqfIyZwDdKLtA0n7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB6710 X-Spam-Status: No, score=-5.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi, I'm currently implementing a custom gdb RSP server (stub). While implementing the qXfer packet, I notice that while qXfer:read (server= to client) has a mechanism to detect EOF (the 'l' response), qXfer:write (client to server= ) does not. https://sourceware.org/gdb/current/onlinedocs/gdb.html/General-Query-Packet= s.html#qXfer-write It seems like currently it is possible from the RSP server side to make an = 'educated guess' of when a qXfer:write sequence is complete, by sending a response which ind= icates one-fewer than the full length has been written, then treating a received follow-up p= acket of length one as being the 'end'. However, it isn't really explicit. I think it might be neater to change the RSP slightly to more explicitly in= dicate a completed qXfer:write operation, so that the server knows when the object h= as been fully written. I see a few options which I believe to be backwards-compatible, and I lean = towards the first. Just wondering if anyone else had any thoughts before I try and put a patch= together. 1. GDB should send a qXfer packet with an empty data field to indicate end = of file. 2. GDB should send a qXfer:written (new) packet to indicate end of file 3. Change nothing, leave RSP server implementations to implement a process = like above if it cares about knowing the end of a file. The qXfer:write packet is a pretty niche packet at the moment. I think this= is only an issue in practice if an RSP server has a particularly small max packet size, or for future/cu= stom qXfer:write objects which are larger. Thanks, Ciaran