diff options
-rw-r--r-- | src/helper/replacements.h | 9 | ||||
-rw-r--r-- | src/jtag/drivers/remote_bitbang.c | 12 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/helper/replacements.h b/src/helper/replacements.h index ceb22584..bdd3ae7c 100644 --- a/src/helper/replacements.h +++ b/src/helper/replacements.h @@ -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 diff --git a/src/jtag/drivers/remote_bitbang.c b/src/jtag/drivers/remote_bitbang.c index 941a07f1..73d9cfcc 100644 --- a/src/jtag/drivers/remote_bitbang.c +++ b/src/jtag/drivers/remote_bitbang.c @@ -22,14 +22,16 @@ #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)); |