remote_bitbang: fix native windows build
authorSpencer Oliver <spen@spen-soft.co.uk>
Thu, 17 May 2012 10:54:04 +0000 (11:54 +0100)
committerSpencer Oliver <spen@spen-soft.co.uk>
Sat, 19 May 2012 20:27:56 +0000 (20:27 +0000)
Change-Id: Ied29ade0346c4595ffc1dafa788e2d5a595e0de3
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/648
Tested-by: jenkins
Reviewed-by: Xiaofan <xiaofanc@gmail.com>
src/helper/replacements.h
src/jtag/drivers/remote_bitbang.c

index ceb2258..bdd3ae7 100644 (file)
@@ -139,6 +139,15 @@ static inline unsigned usleep(unsigned int usecs)
 #include <windows.h>
 #include <time.h>
 
+#include <helper/types.h>
+
+/* Windows does not declare sockaddr_un */
+#define UNIX_PATH_LEN 108
+struct sockaddr_un {
+       uint16_t sun_family;
+       char sun_path[UNIX_PATH_LEN];
+};
+
 /* win32 systems do not support ETIMEDOUT */
 
 #ifndef ETIMEDOUT
index 941a07f..73d9cfc 100644 (file)
 #include "config.h"
 #endif
 
-#include <sys/socket.h>
+#ifndef _WIN32
 #include <sys/un.h>
 #include <netdb.h>
+#endif
 #include <jtag/interface.h>
 #include "bitbang.h"
 
-/* from unix man page and sys/un.h: */
-#define UNIX_PATH_MAX 108
+#ifndef UNIX_PATH_LEN
+#define UNIX_PATH_LEN 108
+#endif
 
 /* arbitrary limit on host name length: */
 #define REMOTE_BITBANG_HOST_MAX 255
@@ -199,8 +201,8 @@ static int remote_bitbang_init_unix(void)
 
        struct sockaddr_un addr;
        addr.sun_family = AF_UNIX;
-       strncpy(addr.sun_path, remote_bitbang_host, UNIX_PATH_MAX);
-       addr.sun_path[UNIX_PATH_MAX-1] = '\0';
+       strncpy(addr.sun_path, remote_bitbang_host, UNIX_PATH_LEN);
+       addr.sun_path[UNIX_PATH_LEN-1] = '\0';
 
        if (connect(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0) {
                LOG_ERROR("connect: %s", strerror(errno));