00001
00002 #ifndef QEMU_SOCKET_H
00003 #define QEMU_SOCKET_H
00004
00005 #ifdef _WIN32
00006 #define WIN32_LEAN_AND_MEAN
00007 #define WINVER 0x0501
00008 #include <windows.h>
00009 #include <winsock2.h>
00010 #include <ws2tcpip.h>
00011
00012 #define socket_error() WSAGetLastError()
00013 #undef EINTR
00014 #define EWOULDBLOCK WSAEWOULDBLOCK
00015 #define EINTR WSAEINTR
00016 #define EINPROGRESS WSAEINPROGRESS
00017
00018 int inet_aton(const char *cp, struct in_addr *ia);
00019
00020 #else
00021
00022 #include <sys/socket.h>
00023 #include <netinet/in.h>
00024 #include <netinet/tcp.h>
00025 #include <arpa/inet.h>
00026 #include <netdb.h>
00027 #include <sys/un.h>
00028
00029 #define socket_error() errno
00030 #define closesocket(s) close(s)
00031
00032 #endif
00033
00034
00035 void socket_set_nonblock(int fd);
00036 int send_all(int fd, const void *buf, int len1);
00037
00038
00039 int inet_listen(const char *str, char *ostr, int olen,
00040 int socktype, int port_offset);
00041 int inet_connect(const char *str, int socktype);
00042
00043 int unix_listen(const char *path, char *ostr, int olen);
00044 int unix_connect(const char *path);
00045
00046
00047 int parse_host_port(struct sockaddr_in *saddr, const char *str);
00048 int parse_host_src_port(struct sockaddr_in *haddr,
00049 struct sockaddr_in *saddr,
00050 const char *str);
00051
00052 #endif