Browse Source

Merge pull request #234 from kanoi/master

fpgautils.c - must initialise c_cflag before using it
nfactor-troky
Con Kolivas 12 years ago
parent
commit
cc557b3f8d
  1. 29
      fpgautils.c

29
fpgautils.c

@ -181,28 +181,33 @@ serial_open(const char*devpath, unsigned long baud, signed short timeout, bool p @@ -181,28 +181,33 @@ serial_open(const char*devpath, unsigned long baud, signed short timeout, bool p
if (unlikely(fdDev == -1))
return -1;
struct termios pattr;
tcgetattr(fdDev, &pattr);
pattr.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);
pattr.c_oflag &= ~OPOST;
pattr.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
pattr.c_cflag &= ~(CSIZE | PARENB);
pattr.c_cflag |= CS8;
struct termios my_termios;
tcgetattr(fdDev, &my_termios);
switch (baud) {
case 0: break;
case 115200: pattr.c_cflag = B115200; break;
case 115200: my_termios.c_cflag = B115200; break;
default:
applog(LOG_WARNING, "Unrecognized baud rate: %lu", baud);
}
pattr.c_cflag |= CREAD | CLOCAL;
my_termios.c_cflag |= CS8;
my_termios.c_cflag |= CREAD;
my_termios.c_cflag |= CLOCAL;
my_termios.c_cflag &= ~(CSIZE | PARENB);
my_termios.c_iflag &= ~(IGNBRK | BRKINT | PARMRK |
ISTRIP | INLCR | IGNCR | ICRNL | IXON);
my_termios.c_oflag &= ~OPOST;
my_termios.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
if (timeout >= 0) {
pattr.c_cc[VTIME] = (cc_t)timeout;
pattr.c_cc[VMIN] = 0;
my_termios.c_cc[VTIME] = (cc_t)timeout;
my_termios.c_cc[VMIN] = 0;
}
tcsetattr(fdDev, TCSANOW, &pattr);
tcsetattr(fdDev, TCSANOW, &my_termios);
if (purge)
tcflush(fdDev, TCIOFLUSH);
return fdDev;

Loading…
Cancel
Save