4 * File: libc_internal.h
6 * Copyright (C) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
23 #ifndef PURPLE_WIN32_LIBC_INTERNAL
24 #define PURPLE_WIN32_LIBC_INTERNAL
30 int wpurple_socket(int domain
, int style
, int protocol
);
31 int wpurple_connect(int socket
, struct sockaddr
*addr
, u_long length
);
32 int wpurple_getsockopt(int socket
, int level
, int optname
, void *optval
, socklen_t
*optlenptr
);
33 int wpurple_setsockopt(int socket
, int level
, int optname
, const void *optval
, socklen_t optlen
);
34 int wpurple_getsockname (int socket
, struct sockaddr
*addr
, socklen_t
*lenptr
);
35 int wpurple_bind(int socket
, struct sockaddr
*addr
, socklen_t length
);
36 int wpurple_listen(int socket
, unsigned int n
);
37 int wpurple_sendto(int socket
, const void *buf
, size_t len
, int flags
, const struct sockaddr
*to
, socklen_t tolen
);
38 int wpurple_recv(int fd
, void *buf
, size_t len
, int flags
);
39 int wpurple_send(int fd
, const void *buf
, unsigned int size
, int flags
);
42 int wpurple_inet_aton(const char *name
, struct in_addr
*addr
);
44 wpurple_inet_ntop (int af
, const void *src
, char *dst
, socklen_t cnt
);
45 int wpurple_inet_pton(int af
, const char *src
, void *dst
);
48 struct hostent
* wpurple_gethostbyname(const char *name
);
51 char* wpurple_strerror( int errornum
);
54 int wpurple_fcntl(int socket
, int command
, ...);
57 #define O_NONBLOCK 04000
60 #define SIOCGIFCONF 0x8912 /* get iface list */
61 int wpurple_ioctl(int fd
, int command
, void* opt
);
68 char ifrn_name
[6]; /* Interface name, e.g. "en0". */
73 struct sockaddr ifru_addr
;
77 # define ifr_name ifr_ifrn.ifrn_name /* interface name */
78 # define ifr_addr ifr_ifru.ifru_addr /* address */
79 # define ifr_data ifr_ifru.ifru_data /* for use by interface */
83 int ifc_len
; /* Size of buffer. */
87 struct ifreq
*ifcu_req
;
90 # define ifc_buf ifc_ifcu.ifcu_buf /* Buffer address. */
91 # define ifc_req ifc_ifcu.ifcu_req /* Array of structures. */
94 #if __MINGW32_MAJOR_VERSION < 3 || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 10)
100 # include <sys/time.h>
102 int wpurple_gettimeofday(struct timeval
*p
, struct timezone
*z
);
105 struct tm
*wpurple_localtime_r(const time_t *time
, struct tm
*resultp
);
109 int wpurple_read(int fd
, void *buf
, unsigned int size
);
110 int wpurple_write(int fd
, const void *buf
, unsigned int size
);
111 int wpurple_close(int fd
);
112 int wpurple_gethostname(char *name
, size_t size
);
116 #endif /* PURPLE_WIN32_LIBC_INTERNAL */