diff options
Diffstat (limited to 'sdk/dev/flowctrl.c')
-rw-r--r-- | sdk/dev/flowctrl.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/sdk/dev/flowctrl.c b/sdk/dev/flowctrl.c new file mode 100644 index 0000000..7977b1c --- /dev/null +++ b/sdk/dev/flowctrl.c @@ -0,0 +1,47 @@ +/* + * Serial line flow control option settings. + * $Id$ + * Copyright (c) 1997 by Tycho Softworks. + * For conditions of distribution and reuse see product license. + */ + +#include <dev/tty.h> +#ifndef TERMIOS_H_MISSING +#include <termios.h> +#endif + +#ifndef CRTSCTS +#ifdef CTSFLOW +#define CRTSCTS CTSFLOW | CRTSFL +#endif +#endif + +int setflowctrl(stty_t stty, FLOWCONTROL flow) +{ +#ifndef TERMIOS_H_MISSING + + struct termios *tios = stty; + tios->c_cflag &= ~CRTSCTS; + tios->c_iflag &= ~(IXON | IXOFF | IXANY); + + switch(flow) + { + case FC_HARD: + tios->c_cflag |= CRTSCTS; + break; + case FC_SOFT: + tios->c_iflag |= (IXON | IXOFF | IXANY); + break; + case FC_FULL: + tios->c_cflag |= CRTSCTS; + tios->c_iflag |= (IXON | IXOFF | IXANY); + break; + } +#endif + return 0; +} + + + + + |