diff options
author | Darren Tucker <dtucker@zip.com.au> | 2003-08-13 20:48:07 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2003-08-13 20:48:07 +1000 |
commit | f38ea77c03a5473ec43fe07ec24cfb1ca7f27034 (patch) | |
tree | 9f7f70786068993c2cbe450f110863b841c6b454 /openbsd-compat/bsd-misc.c | |
parent | 1c52ee3e6f2653a474c8a31aafa5a7e595dd8081 (diff) |
- (dtucker) [configure.ac openbsd-compat/bsd-misc.c openbsd-compat/bsd-misc.h]
Add a tcsendbreak function for platforms that don't have one, based on the
one from OpenBSD.
Any more of these and I'll split them out into bsd-termio.[ch].
Diffstat (limited to 'openbsd-compat/bsd-misc.c')
-rw-r--r-- | openbsd-compat/bsd-misc.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c index da8f7704..d4c79372 100644 --- a/openbsd-compat/bsd-misc.c +++ b/openbsd-compat/bsd-misc.c @@ -25,7 +25,7 @@ #include "includes.h" #include "xmalloc.h" -RCSID("$Id: bsd-misc.c,v 1.16 2003/08/02 14:36:16 dtucker Exp $"); +RCSID("$Id: bsd-misc.c,v 1.17 2003/08/13 10:48:07 dtucker Exp $"); /* * NB. duplicate __progname in case it is an alias for argv[0] @@ -180,3 +180,23 @@ tcgetpgrp(int fd) } #endif /* HAVE_TCGETPGRP */ +#ifndef HAVE_TCSENDBREAK +int +tcsendbreak(int fd, int duration) +{ +# if defined(TIOCSBRK) && defined(TIOCCBRK) + struct timeval sleepytime; + + sleepytime.tv_sec = 0; + sleepytime.tv_usec = 400000; + if (ioctl(fd, TIOCSBRK, 0) == -1) + return (-1); + (void)select(0, 0, 0, 0, &sleepytime); + if (ioctl(fd, TIOCCBRK, 0) == -1) + return (-1); + return (0); +# else + return -1; +# endif +} +#endif /* HAVE_TCSENDBREAK */ |