diff options
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 da8f77046..d4c793724 100644 --- a/openbsd-compat/bsd-misc.c +++ b/openbsd-compat/bsd-misc.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | #include "xmalloc.h" | 26 | #include "xmalloc.h" |
27 | 27 | ||
28 | RCSID("$Id: bsd-misc.c,v 1.16 2003/08/02 14:36:16 dtucker Exp $"); | 28 | RCSID("$Id: bsd-misc.c,v 1.17 2003/08/13 10:48:07 dtucker Exp $"); |
29 | 29 | ||
30 | /* | 30 | /* |
31 | * NB. duplicate __progname in case it is an alias for argv[0] | 31 | * NB. duplicate __progname in case it is an alias for argv[0] |
@@ -180,3 +180,23 @@ tcgetpgrp(int fd) | |||
180 | } | 180 | } |
181 | #endif /* HAVE_TCGETPGRP */ | 181 | #endif /* HAVE_TCGETPGRP */ |
182 | 182 | ||
183 | #ifndef HAVE_TCSENDBREAK | ||
184 | int | ||
185 | tcsendbreak(int fd, int duration) | ||
186 | { | ||
187 | # if defined(TIOCSBRK) && defined(TIOCCBRK) | ||
188 | struct timeval sleepytime; | ||
189 | |||
190 | sleepytime.tv_sec = 0; | ||
191 | sleepytime.tv_usec = 400000; | ||
192 | if (ioctl(fd, TIOCSBRK, 0) == -1) | ||
193 | return (-1); | ||
194 | (void)select(0, 0, 0, 0, &sleepytime); | ||
195 | if (ioctl(fd, TIOCCBRK, 0) == -1) | ||
196 | return (-1); | ||
197 | return (0); | ||
198 | # else | ||
199 | return -1; | ||
200 | # endif | ||
201 | } | ||
202 | #endif /* HAVE_TCSENDBREAK */ | ||