From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id 62C9E3858D35 for ; Thu, 10 Nov 2022 09:07:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 62C9E3858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32a.google.com with SMTP id 5so712503wmo.1 for ; Thu, 10 Nov 2022 01:07:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=SjwRUlwAQQvY7cUCGHetxWoOFh3V7kPgmKkuT+jn+Uo=; b=eGlJzSMLwmGgJm+BKc5ox50S2lUtVxtq5RAAFOBKlIkvFd7cpLOskM4qrXmeT0/zgF U1wbBX443Zc9BaPN5aV+u1G4KAtF83MHJLSaTgGM5muaXzx9XHFvF74cDXLmxdlzPJgm Vb6grQ2XiXrddUtKqH+QJ03cjtls/7X+lxrjrOEBeWXEQWOka4brPWzZE1QO21t48biH GbKcK91TGOjlVbjK6WrH61cBWJdhvK+c6T0jucnkhFq2WxZFVaaPYHdYE6L/OknlZ8md 2ohvB6A+BCUmpvZqxUkXADhhcEjgY3FT6VYmGkrt/mgCVB2ysq1dE+AwfXRfnUcb6coa Ob5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SjwRUlwAQQvY7cUCGHetxWoOFh3V7kPgmKkuT+jn+Uo=; b=j7zq2P0IvvO/g6FTu5YWmxqv1ZBNm6Z5it6zX5ytvV5qznKp2AETOCbM4r7gyOelLL WfK5V1+T8v5jiEScJKoQoxyHquwjwUsl3qIoFW1s5PbAh3xwI4Pyzh5i/eujVaG679sj t2qp6N7iXndcmy4fS5mMatEZLtYKtuTxBGVVoqVVHmdWW2gn/uP1yiDgJvzpGnwGlN01 BmMj/PBx/9nrqFws5cdnDFwURbDZHHQjaZxbMgnZw37jj9O8KW8+hCI4UXq678evF/qC iHoA5pnkLqkKpEHSGGRisWOdhDUT0jauXcBgYHcTny1xbyoy+IVJUsFHRKKaWDFqep5G ct7Q== X-Gm-Message-State: ACrzQf0d+vaKFng5QGBRYSzfaYDq87pSqlhIFrbO6eB0llWfAvPw4DXG JboPXCioePcltTts61NjtejzF9E2zKevtsuCEY4ivjQZBSU= X-Google-Smtp-Source: AMsMyM4g8fpsD4WfpUgq3YXj5ee8P4I84p15SKNuGDk5ZRSk/YZTXAF69HK1lUFiJDf9neAEIeguAcUx2FnVsNLUjrY= X-Received: by 2002:a05:600c:3655:b0:3cf:7082:dc18 with SMTP id y21-20020a05600c365500b003cf7082dc18mr38515409wmq.36.1668071231061; Thu, 10 Nov 2022 01:07:11 -0800 (PST) MIME-Version: 1.0 From: "Carlo B." Date: Thu, 10 Nov 2022 10:07:01 +0100 Message-ID: Subject: PATCH: TIOCMBIS/TIOCMBIC not working when using usbser.sys To: The Cygwin Mailing List Content-Type: multipart/mixed; boundary="00000000000030283805ed1a1953" X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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: --00000000000030283805ed1a1953 Content-Type: text/plain; charset="UTF-8" Hello, into winsup/cygwin/fhandler/serial.cc, the function fhandler_serial::switch_modem_lines() is called when TIOCMBIS/TIOCMBIC are used into an ioctl() call. This function uses EscapeCommFunction() for setting and resetting RTS and DTR signals of a serial port. Unfortunately, this function does not work on USB CDC devices. This is not a true bug of a CYGWIN but an issue of the usbser.sys driver from Microsoft, from Windows 2000 to the latest Windows 11. Both 32bit and 64bit versions of the operating system are affected. Actually, I tested EscapeCommFunction() also when using a real UART, based on the traditional 16550 driver and it works fine. Using thirdy party CDC drivers, like the one provided by FTDI for their USB bridge chips, probably also works. However, it is also possible to drive the RTS/DTR signals by writing their state with SetCommState(), which proved to be working fine all types of connection. Here, I attached a patch that I made for fixing this issue. Anyways, in my opinion this is also a better solution for handling these signals since RTS/DTR can be set at the same time rather than having two separate calls with a visible delay between them. I was wondering if this fix could be imported into the core of CYGWIN and if it could be possible to include it also into the v3.3.x branch, since I have seen that 32bit support has been removed from Master branch recently. Thank you very much for your time. Sincerely, Carlo Bramini. --00000000000030283805ed1a1953 Content-Type: application/octet-stream; name="winsup_cygwin_fhandler_serial.cc.patch" Content-Disposition: attachment; filename="winsup_cygwin_fhandler_serial.cc.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_laauiw440 ZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIvc2VyaWFsLmNjIGIvd2luc3VwL2N5 Z3dpbi9maGFuZGxlci9zZXJpYWwuY2MKaW5kZXggMTc0YTU3YTQzLi41OGE4ZGY2NzcgMTAwNjQ0 Ci0tLSBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIvc2VyaWFsLmNjCisrKyBiL3dpbnN1cC9jeWd3 aW4vZmhhbmRsZXIvc2VyaWFsLmNjCkBAIC0zOTEsNTAgKzM5MSwzOSBAQCBmaGFuZGxlcl9zZXJp YWw6OnRjZmxvdyAoaW50IGFjdGlvbikKIGludAogZmhhbmRsZXJfc2VyaWFsOjpzd2l0Y2hfbW9k ZW1fbGluZXMgKGludCBzZXQsIGludCBjbHIpCiB7Ci0gIGludCByZXMgPSAwOwotCi0gIGlmIChz ZXQgJiBUSU9DTV9SVFMpCi0gICAgewotICAgICAgaWYgKEVzY2FwZUNvbW1GdW5jdGlvbiAoZ2V0 X2hhbmRsZSAoKSwgU0VUUlRTKSkKLQlydHMgPSBUSU9DTV9SVFM7Ci0gICAgICBlbHNlCi0Jewot CSAgX19zZXRlcnJubyAoKTsKLQkgIHJlcyA9IC0xOwotCX0KLSAgICB9Ci0gIGVsc2UgaWYgKGNs ciAmIFRJT0NNX1JUUykKLSAgICB7Ci0gICAgICBpZiAoRXNjYXBlQ29tbUZ1bmN0aW9uIChnZXRf aGFuZGxlICgpLCBDTFJSVFMpKQotCXJ0cyA9IDA7Ci0gICAgICBlbHNlCi0JewotCSAgX19zZXRl cnJubyAoKTsKLQkgIHJlcyA9IC0xOwotCX0KLSAgICB9Ci0gIGlmIChzZXQgJiBUSU9DTV9EVFIp CisgIGlmICgoc2V0ICYgKFRJT0NNX1JUUyB8IFRJT0NNX0RUUikpIHx8IChjbHIgJiAoVElPQ01f UlRTIHwgVElPQ01fRFRSKSkpCiAgICAgewotICAgICAgaWYgKEVzY2FwZUNvbW1GdW5jdGlvbiAo Z2V0X2hhbmRsZSAoKSwgU0VURFRSKSkKLQlydHMgPSBUSU9DTV9EVFI7CisgICAgICBEQ0IgZGNi OworCisgICAgICBtZW1zZXQoJmRjYiwwLHNpemVvZihkY2IpKTsKKyAgICAgIGRjYi5EQ0JsZW5n dGggPSBzaXplb2YoZGNiKTsKKworICAgICAgaWYgKCFHZXRDb21tU3RhdGUoZ2V0X2hhbmRsZSgp LCAmZGNiKSkKKyAgICAgICAgeworICAgICAgICAgIF9fc2V0ZXJybm8gKCk7CisgICAgICAgICAg cmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgIGlmIChzZXQgJiBUSU9DTV9SVFMpCisgICAg ICAgIGRjYi5mUnRzQ29udHJvbCA9IFJUU19DT05UUk9MX0VOQUJMRTsKICAgICAgIGVsc2UKLQl7 Ci0JICBfX3NldGVycm5vICgpOwotCSAgcmVzID0gLTE7Ci0JfQotICAgIH0KLSAgZWxzZSBpZiAo Y2xyICYgVElPQ01fRFRSKQotICAgIHsKLSAgICAgIGlmIChFc2NhcGVDb21tRnVuY3Rpb24gKGdl dF9oYW5kbGUgKCksIENMUkRUUikpCi0JcnRzID0gMDsKKyAgICAgIGlmIChjbHIgJiBUSU9DTV9S VFMpCisgICAgICAgIGRjYi5mUnRzQ29udHJvbCA9IFJUU19DT05UUk9MX0RJU0FCTEU7CisKKyAg ICAgIGlmIChzZXQgJiBUSU9DTV9EVFIpCisgICAgICAgIGRjYi5mUnRzQ29udHJvbCA9IERUUl9D T05UUk9MX0VOQUJMRTsKICAgICAgIGVsc2UKLQl7Ci0JICBfX3NldGVycm5vICgpOwotCSAgcmVz ID0gLTE7Ci0JfQorICAgICAgaWYgKGNsciAmIFRJT0NNX0RUUikKKyAgICAgICAgZGNiLmZSdHND b250cm9sID0gRFRSX0NPTlRST0xfRElTQUJMRTsKKworICAgICAgaWYgKCFTZXRDb21tU3RhdGUo Z2V0X2hhbmRsZSgpLCAmZGNiKSkKKyAgICAgICAgeworICAgICAgICAgIF9fc2V0ZXJybm8gKCk7 CisgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CiAgICAgfQogCi0gIHJldHVybiByZXM7 CisgIHJldHVybiAwOwogfQogCiAvKiBpb2N0bDogKi8K --00000000000030283805ed1a1953--