diff -r 2d1d51615e0e src/dev/tcp_iface.cc --- a/src/dev/tcp_iface.cc Tue Nov 03 12:17:58 2015 -0600 +++ b/src/dev/tcp_iface.cc Wed Nov 04 14:38:02 2015 +0000 @@ -28,60 +28,64 @@ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Authors: Gabor Dozsa */ /* @file * TCP stream socket based interface class implementation for multi gem5 runs. */ #include "dev/tcp_iface.hh" #include #include #include #include #include #include #include #include "base/types.hh" #include "debug/MultiEthernet.hh" +#if defined(__FreeBSD__) +#include +#endif + // MSG_NOSIGNAL does not exists on OS X #if defined(__APPLE__) || defined(__MACH__) #ifndef MSG_NOSIGNAL #define MSG_NOSIGNAL SO_NOSIGPIPE #endif #endif using namespace std; vector TCPIface::sockRegistry; TCPIface::TCPIface(string server_name, unsigned server_port, unsigned multi_rank, Tick sync_start, Tick sync_repeat, EventManager *em) : MultiIface(multi_rank, sync_start, sync_repeat, em) { struct addrinfo addr_hint, *addr_results; int ret; string port_str = to_string(server_port); sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); panic_if(sock < 0, "socket() failed: %s", strerror(errno)); bzero(&addr_hint, sizeof(addr_hint)); addr_hint.ai_family = AF_INET; addr_hint.ai_socktype = SOCK_STREAM; addr_hint.ai_protocol = IPPROTO_TCP; ret = getaddrinfo(server_name.c_str(), port_str.c_str(),