File:  [Qemu by Fabrice Bellard] / qemu / qemu_socket.h
Revision 1.1.1.4 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 16:51:03 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu0105, qemu0104, qemu0103, qemu0102, qemu0101, qemu0100, HEAD
qemu 0.10.0

    1: /* headers to use the BSD sockets */
    2: #ifndef QEMU_SOCKET_H
    3: #define QEMU_SOCKET_H
    4: 
    5: #ifdef _WIN32
    6: #define WIN32_LEAN_AND_MEAN
    7: #define WINVER 0x0501  /* needed for ipv6 bits */
    8: #include <windows.h>
    9: #include <winsock2.h>
   10: #include <ws2tcpip.h>
   11: 
   12: #define socket_error() WSAGetLastError()
   13: #undef EINTR
   14: #define EWOULDBLOCK WSAEWOULDBLOCK
   15: #define EINTR       WSAEINTR
   16: #define EINPROGRESS WSAEINPROGRESS
   17: 
   18: int inet_aton(const char *cp, struct in_addr *ia);
   19: 
   20: #else
   21: 
   22: #include <sys/socket.h>
   23: #include <netinet/in.h>
   24: #include <netinet/tcp.h>
   25: #include <arpa/inet.h>
   26: #include <netdb.h>
   27: #include <sys/un.h>
   28: 
   29: #define socket_error() errno
   30: #define closesocket(s) close(s)
   31: 
   32: #endif /* !_WIN32 */
   33: 
   34: /* misc helpers */
   35: void socket_set_nonblock(int fd);
   36: int send_all(int fd, const void *buf, int len1);
   37: 
   38: /* New, ipv6-ready socket helper functions, see qemu-sockets.c */
   39: int inet_listen(const char *str, char *ostr, int olen,
   40:                 int socktype, int port_offset);
   41: int inet_connect(const char *str, int socktype);
   42: 
   43: int unix_listen(const char *path, char *ostr, int olen);
   44: int unix_connect(const char *path);
   45: 
   46: /* Old, ipv4 only bits.  Don't use for new code. */
   47: int parse_host_port(struct sockaddr_in *saddr, const char *str);
   48: int parse_host_src_port(struct sockaddr_in *haddr,
   49:                         struct sockaddr_in *saddr,
   50:                         const char *str);
   51: 
   52: #endif /* QEMU_SOCKET_H */

unix.superglobalmegacorp.com