X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Flpp%2Flpp_net.c;h=15ce82d7bf73e306ca6f87b2af23fc5ac6570de9;hb=4f25f9ca1fd1d53303f277a140a1aa657782aeba;hp=f0ae59af9638ac9b33897f6af46cb52223602a2e;hpb=85f517eca982e6a4e1d1848eb67634ae33b70de9;p=libfirm diff --git a/ir/lpp/lpp_net.c b/ir/lpp/lpp_net.c index f0ae59af9..15ce82d7b 100644 --- a/ir/lpp/lpp_net.c +++ b/ir/lpp/lpp_net.c @@ -1,13 +1,28 @@ -/** - * @file lpp_net.c - * @date 19.07.2005 - * @author Sebastian Hack +/* + * Copyright (C) 2005-2011 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. * - * A client for an lpp solving server. + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. * - * Copyright (C) 2005 Universitaet Karlsruhe - * Released under the GPL + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + +/** + * @file + * @brief A client for an lpp solving server. + * @author Sebastian Hack */ +#include "config.h" #ifdef _WIN32 #include @@ -44,6 +59,7 @@ #include "lpp_net.h" #include "lpp_t.h" #include "lpp_comm.h" +#include "xmalloc.h" #ifdef _WIN32 static int winsock_init(void) @@ -94,7 +110,7 @@ static int connect_tcp(const char *host, uint16_t port) sin.sin_port = htons(port); if ((phe = gethostbyname(host))) - memcpy(&sin.sin_addr, phe->h_addr, phe->h_length); + memcpy(&sin.sin_addr, phe->h_addr_list[0], phe->h_length); else if((sin.sin_addr.s_addr = inet_addr(host)) == INADDR_NONE) { lpp_print_err("cannot get host entry for %s", host); return -1; @@ -121,7 +137,7 @@ char **lpp_get_solvers(const char *host) lpp_writel(comm, LPP_CMD_SOLVERS); lpp_flush(comm); n = lpp_readl(comm); - res = malloc((n + 1) * sizeof(res[0])); + res = XMALLOCN(char*, n+1); res[n] = NULL; if(n > 0) { @@ -172,20 +188,15 @@ void lpp_solve_net(lpp_t *lpp, const char *host, const char *solver) lpp_writes(comm, solver); lpp_flush(comm); -#if 0 - ERR_CHECK_RETURN_VOID(lpp_ack(fd, sizeof(buf), buf), == 0, - ("could not set solver: %s", solver)); -#endif - t_send = ir_timer_new(); t_recv = ir_timer_new(); - ir_timer_push(t_send); + ir_timer_start(t_send); lpp_writel(comm, LPP_CMD_PROBLEM); lpp_serialize(comm, lpp, 1); lpp_serialize_values(comm, lpp, lpp_value_start); lpp_flush(comm); - ir_timer_pop(); + ir_timer_stop(t_send); lpp->send_time = ir_timer_elapsed_usec(t_send); ready = 0; @@ -196,7 +207,7 @@ void lpp_solve_net(lpp_t *lpp, const char *host, const char *solver) ir_timer_push(t_recv); lpp_deserialize_stats(comm, lpp); lpp_deserialize_values(comm, lpp, lpp_value_solution); - ir_timer_pop(); + ir_timer_stop(t_recv); lpp->recv_time = ir_timer_elapsed_usec(t_recv); ready = 1; break;