Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Doubt about CRTSCTS preprocessor macro definition in termbits.h file

93 views
Skip to first unread message

Ramya Desai

unread,
Nov 9, 2010, 2:30:02 AM11/9/10
to
Dear All,

I did not understand the CRTSCTS preprocessor macro which is defined
in termbits.h file.

http://lxr.linux.no/linux+v2.6.36/include/asm-generic/termbits.h

As per the typedefs defined in the beginning of the file, the c_cflag
is unsigned int member in the struct termios structure. The CRTSCTS is
defined in the file as a 48 bit value.

#define CRTSCTS 020000000000 /* flow control */

I saw the following snippet in one of the serial applications.

struct termios newtio;
newtio.c_cflag = B9600 | CRTSCTS | CS8 | CLOCAL | CREAD;

My question is, the c_cflag is a 32 bit value member and the CRTSCTS
is a 48 bit value. How CRTSCTS is accommodates into c_cflag variable?
Please let me know, if my interpretation is wrong.

Thanks in advance.

Regards,
Ramya.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Milton Miller

unread,
Nov 9, 2010, 12:00:03 PM11/9/10
to

On Tue Nov 09 2010 around 02:27:38 EST, Ramya Desai wrote:
> I did not understand the CRTSCTS preprocessor macro which is defined
> in termbits.h file.
..

> As per the typedefs defined in the beginning of the file, the c_cflag
> is unsigned int member in the struct termios structure. The CRTSCTS is
> defined in the file as a 48 bit value.
>
> #define CRTSCTS 020000000000 /* flow control */

That is not a 48 bit value.

>
> I saw the following snippet in one of the serial applications.
>
> struct termios newtio;
> newtio.c_cflag = B9600 | CRTSCTS | CS8 | CLOCAL | CREAD;
>
> My question is, the c_cflag is a 32 bit value member and the CRTSCTS
> is a 48 bit value. How CRTSCTS is accommodates into c_cflag variable?
> Please let me know, if my interpretation is wrong.
>
> Thanks in advance.

Hint: constants in C may be expressed in base 16, 10, or 8.

milton

Andreas Mohr

unread,
Nov 9, 2010, 1:00:03 PM11/9/10
to
Hi,

> My question is, the c_cflag is a 32 bit value member and the CRTSCTS
> is a 48 bit value. How CRTSCTS is accommodates into c_cflag variable?

One word: octal ;)

HTH & TFR (well... Thanks For Review),

Andreas Mohr

0 new messages