*
* 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;
};
#ifdef B460800
{B460800, 460800/256 + 0x8000U},
#endif
-#ifdef B500000
- {B500000, 500000/256 + 0x8000U},
-#endif
-#ifdef B576000
- {B576000, 576000/256 + 0x8000U},
-#endif
#ifdef B921600
{B921600, 921600/256 + 0x8000U},
#endif
-#ifdef B1000000
- {B1000000, 1000000/256 + 0x8000U},
-#endif
-#ifdef B1152000
- {B1152000, 1152000/256 + 0x8000U},
-#endif
-#ifdef B1500000
- {B1500000, 1500000/256 + 0x8000U},
-#endif
-#ifdef B2000000
- {B2000000, 2000000/256 + 0x8000U},
-#endif
-#ifdef B2500000
- {B2500000, 2500000/256 + 0x8000U},
-#endif
-#ifdef B3000000
- {B3000000, 3000000/256 + 0x8000U},
-#endif
-#ifdef B3500000
- {B3500000, 3500000/256 + 0x8000U},
-#endif
-#ifdef B4000000
- {B4000000, 4000000/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;
}