/* Copyright (C) 2009 Red Hat, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see . */ #ifndef _H_PLATFORM_UTILS #define _H_PLATFORM_UTILS #include #include #include #include #include #ifdef __i386__ #define mb() __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory") #else #define mb() __asm__ __volatile__ ("lock; addl $0,0(%%rsp)" : : : "memory") #endif typedef int SOCKET; #define INVALID_SOCKET -1 #define SOCKET_ERROR -1 #define closesocket(sock) ::close(sock) #define SHUTDOWN_ERR EPIPE #define INTERRUPTED_ERR EINTR #define WOULDBLOCK_ERR EAGAIN #define sock_error() errno #define sock_err_message(err) strerror(err) #endif