[PATCH 1/2] Add usleep() implementation for systems that lack it
Paul Fertser
fercerpav at gmail.com
Mon Dec 20 10:50:03 UTC 2010
This is needed e.g. on Debian which ships a really ancient version of
mingw runtime.
---
common/wincompat.c | 17 +++++++++++++++++
configure.in | 1 +
include/common.h | 4 ++++
3 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/common/wincompat.c b/common/wincompat.c
index 3873d2c..a9fbabc 100644
--- a/common/wincompat.c
+++ b/common/wincompat.c
@@ -26,6 +26,23 @@ extern int errno;
const char * EventLogName = NULL;
+#ifndef HAVE_USLEEP
+/* Verbatim from
+ http://cygwin.com/cgi-bin/cvsweb.cgi/~checkout~/src/winsup/mingw/mingwex/usleep.c?rev=1.2&cvsroot=src */
+int __cdecl usleep(unsigned int useconds)
+{
+ if(useconds == 0)
+ return 0;
+
+ if(useconds >= 1000000)
+ return EINVAL;
+
+ Sleep((useconds + 999) / 1000);
+
+ return 0;
+}
+#endif /* !HAVE_USLEEP */
+
int sktconnect(int fh, struct sockaddr * name, int len)
{
int ret = connect(fh,name,len);
diff --git a/configure.in b/configure.in
index 528ffcd..6bc263e 100644
--- a/configure.in
+++ b/configure.in
@@ -89,6 +89,7 @@ AC_CHECK_FUNCS(flock lockf fcvt fcvtl)
AC_CHECK_FUNCS(cfsetispeed tcsendbreak)
AC_CHECK_FUNCS(seteuid setsid getpassphrase)
AC_CHECK_FUNCS(on_exit strptime setlogmask)
+AC_CHECK_FUNCS(usleep)
AC_CHECK_DECLS(LOG_UPTO, [], [], [#include <syslog.h>])
dnl the following may add stuff to LIBOBJS (is this still needed?)
diff --git a/include/common.h b/include/common.h
index dbeec9a..2fde7a5 100644
--- a/include/common.h
+++ b/include/common.h
@@ -182,4 +182,8 @@ extern int optind;
#endif /* WIN32*/
+#ifndef HAVE_USLEEP
+int __cdecl usleep(unsigned int useconds);
+#endif /* HAVE_USLEEP */
+
#endif /* NUT_COMMON_H */
--
1.5.6.5
--/9DWx/yDrRhgMJTb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="0002-Automatically-find-the-appropriate-windows-specific.patch"
More information about the Nut-upsdev
mailing list