X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fdrivers%2Fjtag_vpi.c;h=35c70312d6d507b13e352dbbd54d1526f59580f5;hp=1a42b3a05f41b910603424cd703143f98c4f8011;hb=eb8dfd5ca8af6f2d784f6b1d30c96b40c52ae0ce;hpb=9542cb7c3d9f4b66d2df3d8412a73d008077ab86 diff --git a/src/jtag/drivers/jtag_vpi.c b/src/jtag/drivers/jtag_vpi.c index 1a42b3a05f..35c70312d6 100644 --- a/src/jtag/drivers/jtag_vpi.c +++ b/src/jtag/drivers/jtag_vpi.c @@ -29,6 +29,10 @@ #include #endif +#ifndef _WIN32 +#include +#endif + #define NO_TAP_SHIFT 0 #define TAP_SHIFT 1 @@ -368,6 +372,8 @@ static int jtag_vpi_execute_queue(void) static int jtag_vpi_init(void) { + int flag = 1; + sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) { LOG_ERROR("Could not create socket"); @@ -395,6 +401,13 @@ static int jtag_vpi_init(void) return ERROR_COMMAND_CLOSE_CONNECTION; } + if (serv_addr.sin_addr.s_addr == htonl(INADDR_LOOPBACK)) { + /* This increases performance drematically for local + * connections, which is the most likely arrangement + * for a VPI connection. */ + setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)); + } + LOG_INFO("Connection to %s : %u succeed", server_address, server_port); return ERROR_OK;