1
0
mirror of https://github.com/UzixLS/picocom.git synced 2025-07-18 23:11:18 +03:00
Files
picocom/custbaud.c
Nick Patavalis ee23af0cb9 Disable custom baudrate support at runtime (Linux)
If picocom is compiled *with* custom-baudrate support (USE_CUSTOM_BAUD)
for Linux, then it uses a new set of ioctl's (TCGETS2 vs TCGETS, etc) to
access the serial ports. This patch allows the custom baudrate support
to be disabled at runtime (without recompiling), and picocom to switch
to using the old ioctl's.

To disable custom baudrate support (and switch back to the "old" ioctls)
simply define the environment variable NO_CUSTOM_BAUD, before starting
picocom.

This applies only to Linux and, obviously, only when picocom has been
compiled with custom baudrate support (USE_CUSTOM_BAUD).
2018-02-20 10:29:45 +02:00

63 lines
1.7 KiB
C

/* vi: set sw=4 ts=4:
*
* custbaud.c
*
* by Nick Patavalis (npat@efault.net)
*
* 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
*/
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include "custbaud.h"
#ifndef USE_CUSTOM_BAUD
int use_custom_baud() { return 0; }
int cfsetispeed_custom(struct termios *tios, int speed) { errno = EINVAL; return -1; }
int cfsetospeed_custom(struct termios *tios, int speed) { errno = EINVAL; return -1; }
int cfgetispeed_custom(const struct termios *tios) { errno = EINVAL; return -1; }
int cfgetospeed_custom(const struct termios *tios) { errno = EINVAL; return -1; }
#else /* USE_CUSTOM_BAUD */
int
use_custom_baud()
{
#ifdef __linux__
static int use = -1;
if ( use < 0 )
use = getenv("NO_CUSTOM_BAUD") ? 0 : 1;
return use;
#else
return 1;
#endif
}
#endif /* of ndef USE_CUSTOM_BAUD */
/**************************************************************************/
/*
* Local Variables:
* mode:c
* tab-width: 4
* c-basic-offset: 4
* End:
*/