view libserial-posix/setbaud.c @ 698:9ecbf1bf2e1b

fc-iram: added '+' to getopt magic string like in fc-xram Both fc-iram and fc-xram now support secondary program invokation. If the user needs to pass some options to the secondary program, we don't want fc-iram or fc-xram to claim these options as its own, thus we need to stop getopt() from reordering arguments. This fix was already implemented in fc-xram a long time ago, but the issue was overlooked when secondary program invokation ability was added to fc-iram.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 31 Mar 2020 03:23:26 +0000
parents fd7b447b99e3
children
line wrap: on
line source

/*
 * This module implements the termios/ioctl setting of the baud rate.
 */

#include <sys/types.h>
#include <sys/ioctl.h>
#include <termios.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "baudrate.h"

extern int target_fd;

struct baudrate *current_baud_rate;

set_serial_baudrate(br)
	struct baudrate *br;
{
	struct termios target_termios;

	target_termios.c_iflag = IGNBRK;
	target_termios.c_oflag = 0;
	target_termios.c_cflag = CLOCAL|HUPCL|CREAD|CS8;
	target_termios.c_lflag = 0;
	target_termios.c_cc[VMIN] = 1;
	target_termios.c_cc[VTIME] = 0;
	cfsetispeed(&target_termios, br->termios_code);
	cfsetospeed(&target_termios, br->termios_code);
	if (tcsetattr(target_fd, TCSAFLUSH, &target_termios) < 0) {
		perror("tcsetattr");
		exit(1);
	}
	current_baud_rate = br;
	return 0;
}