public inbox for cygwin-patches@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin-patches@cygwin.com
Subject: Re: winsup/cygwin/sys/termios.h bit rates extension
Date: Tue, 31 Jan 2023 10:23:30 +0100	[thread overview]
Message-ID: <Y9jeErJ8hncUdoQb@calimero.vinschen.de> (raw)
In-Reply-To: <3a9a7529-a8ee-6681-8838-37025e3fd809@Shaw.ca>

On Jan 29 22:57, Brian Inglis wrote:
> FreeBSD, NetBSD, and Linux all bumped their serial bit rates to support
> 500k(+500k)4000k, extending the rates to 3500k and 4000k, dropping 128k and
> 256k, renumbering the extended baud rate indices under Linux, effectively
> changing the ABI for any previously compiled serial application.
> 
> See:
> https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/include/sys/termios.h;hb=HEAD#l189
> 
> Patch would be like:
> diff a/winsup/cygwin/include/sys/termios.h b/winsup/cygwin/include/sys/termios.h
> --- a/winsup/cygwin/include/sys/termios.h
> +++ b/winsup/cygwin/include/sys/termios.h
> @@ -190,19 +190,19
>  #define CBAUDEX  0x0100f
>  #define B57600	  0x01001
>  #define B115200  0x01002
> -#define B128000  0x01003
> -#define B230400  0x01004
> +#define B230400  0x01003
> -#define B256000  0x01005
> -#define B460800  0x01006
> +#define B460800  0x01004
> -#define B500000  0x01007
> +#define B500000  0x01005
> -#define B576000  0x01008
> +#define B576000  0x01006
> -#define B921600  0x01009
> +#define B921600  0x01007
> -#define B1000000 0x0100a
> +#define B1000000 0x01008
> -#define B1152000 0x0100b
> +#define B1152000 0x01009
> -#define B1500000 0x0100c
> +#define B1500000 0x0100a
> -#define B2000000 0x0100d
> +#define B2000000 0x0100b
> -#define B2500000 0x0100e
> +#define B2500000 0x0100c
> -#define B3000000 0x0100f
> +#define B3000000 0x0100d
> +#define B3500000 0x0100e
> +#define B4000000 0x0100f
> 
>  #define CRTSXOFF 0x04000
>  #define CRTSCTS  0x08000
> 
> Is this acceptable, not really any issue for Cygwin, or an issue, and some
> compatibility code would be required to do an internal upgrade, and return
> an error for unsupported speeds, or should we add another bit to extend
> CBAUD/CBAUDEX to 0x0101f, and use higher indices 0x01010/0x01011?

We'd need a compat layer, depending on the version of Cygwin
the executable has been created under (see include/sys/cygwin.h).

Just extending CBAUD/CBAUDEX. isn't an option because all bits
in cflags are taken, afaics.

However, afaics our CBAUDEX is defined incorrectly.  The BSDs define it
as LINUX_CBAUDEX, because it's apparently not a BSD idea.  And per
Linux, it should only contain the mask bit which defines extended
speeds, so

  #define CBAUD    0x0100f
  #define CBAUDEX  0x01000

would be the right (i. e., Linux-compatible).


Corinna

      reply	other threads:[~2023-01-31  9:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-30  5:57 Brian Inglis
2023-01-31  9:23 ` Corinna Vinschen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y9jeErJ8hncUdoQb@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin-patches@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).