about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--bits/termios.h19
-rw-r--r--sysdeps/generic/bits/termios.h19
-rw-r--r--sysdeps/generic/tcsetattr.c17
-rw-r--r--termios/cfsetspeed.c35
4 files changed, 84 insertions, 6 deletions
diff --git a/bits/termios.h b/bits/termios.h
index 4c970e0b3b..43bb1ce52d 100644
--- a/bits/termios.h
+++ b/bits/termios.h
@@ -1,5 +1,5 @@
 /* termios type and macro definitions.  4.4 BSD/generic GNU version.
-   Copyright (C) 1993,94,96,97,99 Free Software Foundation, Inc.
+   Copyright (C) 1993,94,96,97,99,2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -212,10 +212,25 @@ struct termios
 #define	B9600	9600		/* 9600 baud.  */
 #define	B19200	19200		/* 19200 baud.  */
 #define	B38400	38400		/* 38400 baud.  */
-#ifdef	__USE_BSD
+#ifdef	__USE_MISC
 # define EXTA	19200
 # define EXTB	38400
 #endif
+#define	B57600	57600
+#define	B115200	115200
+#define	B230400	230400
+#define	B460800	460800
+#define	B500000	500000
+#define	B576000	576000
+#define	B921600	921600
+#define	B1000000 1000000
+#define	B1152000 1152000
+#define	B1500000 1500000
+#define	B2000000 2000000
+#define	B2500000 2500000
+#define	B3000000 3000000
+#define	B3500000 3500000
+#define	B4000000 4000000
 };
 
 #define _IOT_termios /* Hurd ioctl type field.  */ \
diff --git a/sysdeps/generic/bits/termios.h b/sysdeps/generic/bits/termios.h
index 4c970e0b3b..43bb1ce52d 100644
--- a/sysdeps/generic/bits/termios.h
+++ b/sysdeps/generic/bits/termios.h
@@ -1,5 +1,5 @@
 /* termios type and macro definitions.  4.4 BSD/generic GNU version.
-   Copyright (C) 1993,94,96,97,99 Free Software Foundation, Inc.
+   Copyright (C) 1993,94,96,97,99,2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -212,10 +212,25 @@ struct termios
 #define	B9600	9600		/* 9600 baud.  */
 #define	B19200	19200		/* 19200 baud.  */
 #define	B38400	38400		/* 38400 baud.  */
-#ifdef	__USE_BSD
+#ifdef	__USE_MISC
 # define EXTA	19200
 # define EXTB	38400
 #endif
+#define	B57600	57600
+#define	B115200	115200
+#define	B230400	230400
+#define	B460800	460800
+#define	B500000	500000
+#define	B576000	576000
+#define	B921600	921600
+#define	B1000000 1000000
+#define	B1152000 1152000
+#define	B1500000 1500000
+#define	B2000000 2000000
+#define	B2500000 2500000
+#define	B3000000 3000000
+#define	B3500000 3500000
+#define	B4000000 4000000
 };
 
 #define _IOT_termios /* Hurd ioctl type field.  */ \
diff --git a/sysdeps/generic/tcsetattr.c b/sysdeps/generic/tcsetattr.c
index 205995d94c..fc16d84aca 100644
--- a/sysdeps/generic/tcsetattr.c
+++ b/sysdeps/generic/tcsetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,95,96,2000,01 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -82,6 +82,21 @@ bad_speed (speed_t speed)
     case B9600:
     case B19200:
     case B38400:
+    case B57600:
+    case B115200:
+    case B230400:
+    case B460800:
+    case B500000:
+    case B576000:
+    case B921600:
+    case B1000000:
+    case B1152000:
+    case B1500000:
+    case B2000000:
+    case B2500000:
+    case B3000000:
+    case B3500000:
+    case B4000000:
       return 0;
     default:
       return 1;
diff --git a/termios/cfsetspeed.c b/termios/cfsetspeed.c
index 98e52cc7be..436c54bc56 100644
--- a/termios/cfsetspeed.c
+++ b/termios/cfsetspeed.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1993, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1992,93,96,97,98,2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -100,6 +100,39 @@ static const struct speed_struct speeds[] =
 #ifdef B460800
     { 460800, B460800 },
 #endif
+#ifdef B500000
+    { 500000, B500000 },
+#endif
+#ifdef B576000
+    { 576000, B576000 },
+#endif
+#ifdef B921600
+    { 921600, B921600 },
+#endif
+#ifdef B1000000
+    { 1000000, B1000000 },
+#endif
+#ifdef B1152000
+    { 1152000, B1152000 },
+#endif
+#ifdef B1500000
+    { 1500000, B1500000 },
+#endif
+#ifdef B2000000
+    { 2000000, B2000000 },
+#endif
+#ifdef B2500000
+    { 2500000, B2500000 },
+#endif
+#ifdef B3000000
+    { 3000000, B3000000 },
+#endif
+#ifdef B3500000
+    { 3500000, B3500000 },
+#endif
+#ifdef B4000000
+    { 4000000, B4000000 },
+#endif
   };