*
* Copyright (C) 2003 Manuel Novoa III <mjn3@codepoet.org>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
-#include <termios.h>
#include "libbb.h"
struct speed_map {
+#if defined __FreeBSD__
+ /* On FreeBSD, B<num> constants don't fit into a short */
+ unsigned speed;
+#else
unsigned short speed;
+#endif
unsigned short value;
};
{B2400, 2400},
{B4800, 4800},
{B9600, 9600},
-#ifdef B19200
+#ifdef B19200
{B19200, 19200},
#elif defined(EXTA)
{EXTA, 19200},
#endif
-#ifdef B38400
+#ifdef B38400
{B38400, 38400/256 + 0x8000U},
#elif defined(EXTB)
{EXTB, 38400/256 + 0x8000U},
#ifdef B460800
{B460800, 460800/256 + 0x8000U},
#endif
+#ifdef B921600
+ {B921600, 921600/256 + 0x8000U},
+#endif
};
-enum { NUM_SPEEDS = (sizeof(speeds) / sizeof(struct speed_map)) };
+enum { NUM_SPEEDS = ARRAY_SIZE(speeds) };
-unsigned long bb_baud_to_value(speed_t speed)
+unsigned FAST_FUNC tty_baud_to_value(speed_t speed)
{
int i = 0;
return 0;
}
-speed_t bb_value_to_baud(unsigned long value)
+speed_t FAST_FUNC tty_value_to_baud(unsigned int value)
{
int i = 0;
do {
- if (value == bb_baud_to_value(speeds[i].speed)) {
+ if (value == tty_baud_to_value(speeds[i].speed)) {
return speeds[i].speed;
}
} while (++i < NUM_SPEEDS);
unsigned long v;
speed_t s;
- for (v = 0 ; v < 500000 ; v++) {
- s = bb_value_to_baud(v);
+ for (v = 0 ; v < 1000000; v++) {
+ s = tty_value_to_baud(v);
if (s == (speed_t) -1) {
continue;
}
printf("-------------------------------\n");
- for (s = 0 ; s < 010017+1 ; s++) {
- v = bb_baud_to_value(s);
+ for (s = 0 ; s < 010017+1; s++) {
+ v = tty_baud_to_value(s);
if (!v) {
continue;
}