PS2SDK
PS2 Homebrew Libraries
ps2ip.h
Go to the documentation of this file.
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Copyright (c) 2003 Marcus R. Brown <mrbrown@0xd6.org>
7 # Licenced under Academic Free License version 2.0
8 # Review ps2sdk README & LICENSE files for further details.
9 */
10 
16 #ifndef __PS2IP_H__
17 #define __PS2IP_H__
18 
19 #include <types.h>
20 #include <irx.h>
21 
22 #include <tcpip.h>
23 
24 #include <sys/time.h>
25 
26 /* From include/lwip/sockets.h: */
27 
28 extern int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
29 extern int lwip_bind(int s, struct sockaddr *name, socklen_t namelen);
30 extern int lwip_close(int s);
31 extern int lwip_connect(int s, struct sockaddr *name, socklen_t namelen);
32 extern int lwip_listen(int s, int backlog);
33 extern int lwip_recv(int s, void *mem, int len, unsigned int flags);
34 extern int lwip_recvfrom(int s, void *mem, int len, unsigned int flags,
35  struct sockaddr *from, socklen_t *fromlen);
36 extern int lwip_send(int s, void *dataptr, int size, unsigned int flags);
37 extern int lwip_sendto(int s, void *dataptr, int size, unsigned int flags,
38  struct sockaddr *to, socklen_t tolen);
39 extern int lwip_socket(int domain, int type, int protocol);
40 extern int lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
41  struct timeval *timeout);
42 extern int lwip_ioctl(int s, long cmd, void *argp);
43 extern int lwip_getpeername (int s, struct sockaddr *name, socklen_t *namelen);
44 extern int lwip_getsockname (int s, struct sockaddr *name, socklen_t *namelen);
45 extern int lwip_getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen);
46 extern int lwip_setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen);
47 
48 extern int ps2ip_setconfig(const t_ip_info* ip_info);
49 extern int ps2ip_getconfig(char* netif_name,t_ip_info* ip_info);
50 extern void ps2ip_input(struct pbuf *p, struct netif *inp);
51 
52 extern int lwip_shutdown(int s, int how);
53 extern int lwip_fcntl(int s, int cmd, int val);
54 
55 /* From include/netif/etharp.h: */
56 extern err_t etharp_output(struct netif *netif, struct pbuf *q, const ip_addr_t *ipaddr);
57 
58 /* From include/lwip/tcpip.h: */
59 extern err_t tcpip_input(struct pbuf *p, struct netif *inp);
60 
62 typedef void (*tcpip_callback_fn)(void *ctx);
63 
64 extern err_t tcpip_callback(tcpip_callback_fn function, void *ctx);
65 
66 /* From include/lwip/netif.h: */
67 extern struct netif *netif_add(struct netif *netif,
68 #if LWIP_IPV4
69  const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw,
70 #endif /* LWIP_IPV4 */
72 
73 /* Returns a network interface given its name. The name is of the form
74  "et0", where the first two letters are the "name" field in the
75  netif structure, and the digit is in the num field in the same
76  structure. */
77 extern struct netif* netif_find(const char *name);
78 extern void netif_set_default(struct netif *netif);
79 extern void netif_set_ipaddr(struct netif *netif, const ip4_addr_t *ipaddr);
80 extern void netif_set_netmask(struct netif *netif, const ip4_addr_t *netmask);
81 extern void netif_set_gw(struct netif *netif, const ip4_addr_t *gw);
82 extern void netif_set_up(struct netif *netif);
83 extern void netif_set_down(struct netif *netif);
84 
85 extern void netif_set_link_up(struct netif *netif);
86 extern void netif_set_link_down(struct netif *netif);
87 
88 /* From include/lwip/pbuf.h: */
89 extern struct pbuf* pbuf_alloc(pbuf_layer l, u16 size, pbuf_type type);
90 extern void pbuf_realloc(struct pbuf *p, u16 size);
91 extern u8 pbuf_header(struct pbuf *p, s16 header_size);
92 extern void pbuf_ref(struct pbuf *p);
93 extern u8 pbuf_free(struct pbuf *p);
94 extern u8 pbuf_clen(struct pbuf *p);
95 extern void pbuf_chain(struct pbuf *h, struct pbuf *t);
96 extern struct pbuf* pbuf_dechain(struct pbuf *p);
97 extern struct pbuf* pbuf_take(struct pbuf *f);
98 extern struct pbuf* pbuf_coalesce(struct pbuf *p, pbuf_layer layer);
99 
100 /* From include/lwip/inet.h: */
101 /* directly map this to the lwip internal functions */
102 #define inet_addr(cp) ipaddr_addr(cp)
103 #define inet_aton(cp, addr) ip4addr_aton(cp, (ip4_addr_t*)addr)
104 #define inet_ntoa(addr) ip4addr_ntoa((const ip4_addr_t*)&(addr))
105 #define inet_ntoa_r(addr, buf, buflen) ip4addr_ntoa_r((const ip4_addr_t*)&(addr), buf, buflen)
106 
107 extern u32 ipaddr_addr(const char *cp);
108 extern int ip4addr_aton(const char *cp, ip4_addr_t *addr);
110 extern char *ip4addr_ntoa(const ip4_addr_t *addr);
111 extern char *ip4addr_ntoa_r(const ip4_addr_t *addr, char *buf, int buflen);
112 
113 #ifdef PS2IP_DNS
114 /* From include/lwip/netdb.h: */
115 extern struct hostent *lwip_gethostbyname(const char *name);
116 extern int lwip_gethostbyname_r(const char *name, struct hostent *ret, char *buf,
117  size_t buflen, struct hostent **result, int *h_errnop);
118 extern void lwip_freeaddrinfo(struct addrinfo *ai);
119 extern int lwip_getaddrinfo(const char *nodename,
120  const char *servname,
121  const struct addrinfo *hints,
122  struct addrinfo **res);
123 
124 /* From include/lwip/dns.h: */
125 extern void dns_setserver(u8 numdns, const ip_addr_t *dnsserver);
126 extern const ip_addr_t* dns_getserver(u8 numdns);
127 #endif
128 
129 /* Compatibility macros. */
130 
131 #define accept lwip_accept
132 #define bind lwip_bind
133 #define disconnect lwip_close
134 #define closesocket lwip_close
135 #define shutdown lwip_shutdown
136 #define connect lwip_connect
137 #define listen lwip_listen
138 #define recv lwip_recv
139 #define recvfrom lwip_recvfrom
140 #define send lwip_send
141 #define sendto lwip_sendto
142 #define socket lwip_socket
143 #define select lwip_select
144 #define ioctlsocket lwip_ioctl
145 #define fcntlsocket lwip_fcntl
146 #define gethostbyname lwip_gethostbyname
147 #define gethostbyname_r lwip_gethostbyname_r
148 #define freeaddrinfo lwip_freeaddrinfo
149 #define getaddrinfo lwip_getaddrinfo
150 
151 // ntba2
152 #define getsockname lwip_getsockname
153 #define getpeername lwip_getpeername
154 #define getsockopt lwip_getsockopt
155 #define setsockopt lwip_setsockopt
156 
157 #define ipaddr4_aton(...) ip4addr_aton(__VA_ARGS__)
158 
159 #define ps2ip_IMPORTS_start DECLARE_IMPORT_TABLE(ps2ip, 2, 6)
160 #define ps2ip_IMPORTS_end END_IMPORT_TABLE
161 
162 #define I_lwip_accept DECLARE_IMPORT(4, lwip_accept)
163 #define I_lwip_bind DECLARE_IMPORT(5, lwip_bind)
164 #define I_lwip_close DECLARE_IMPORT(6, lwip_close)
165 #define I_lwip_connect DECLARE_IMPORT(7, lwip_connect)
166 #define I_lwip_listen DECLARE_IMPORT(8, lwip_listen)
167 #define I_lwip_recv DECLARE_IMPORT(9, lwip_recv)
168 #define I_lwip_recvfrom DECLARE_IMPORT(10, lwip_recvfrom)
169 #define I_lwip_send DECLARE_IMPORT(11, lwip_send)
170 #define I_lwip_sendto DECLARE_IMPORT(12, lwip_sendto)
171 #define I_lwip_socket DECLARE_IMPORT(13, lwip_socket)
172 #define I_lwip_select DECLARE_IMPORT(14, lwip_select)
173 #define I_lwip_ioctl DECLARE_IMPORT(15, lwip_ioctl)
174 #define I_lwip_getpeername DECLARE_IMPORT(16, lwip_getpeername)
175 #define I_lwip_getsockname DECLARE_IMPORT(17, lwip_getsockname)
176 #define I_lwip_getsockopt DECLARE_IMPORT(18, lwip_getsockopt)
177 #define I_lwip_setsockopt DECLARE_IMPORT(19, lwip_setsockopt)
178 #define I_ps2ip_setconfig DECLARE_IMPORT(20, ps2ip_setconfig)
179 #define I_ps2ip_getconfig DECLARE_IMPORT(21, ps2ip_getconfig)
180 #define I_ps2ip_input DECLARE_IMPORT(22, ps2ip_input)
181 #define I_lwip_shutdown DECLARE_IMPORT(46, lwip_shutdown)
182 #define I_lwip_fcntl DECLARE_IMPORT(47, lwip_fcntl)
183 #define I_etharp_output DECLARE_IMPORT(23, etharp_output)
184 #define I_tcpip_input DECLARE_IMPORT(25, tcpip_input)
185 #define I_tcpip_callback DECLARE_IMPORT(56, tcpip_callback)
186 #define I_netif_add DECLARE_IMPORT(26, netif_add)
187 #define I_netif_find DECLARE_IMPORT(27, netif_find)
188 #define I_netif_set_default DECLARE_IMPORT(28, netif_set_default)
189 #define I_netif_set_ipaddr DECLARE_IMPORT(29, netif_set_ipaddr)
190 #define I_netif_set_netmask DECLARE_IMPORT(30, netif_set_netmask)
191 #define I_netif_set_gw DECLARE_IMPORT(31, netif_set_gw)
192 #define I_netif_set_up DECLARE_IMPORT(32, netif_set_up)
193 #define I_netif_set_down DECLARE_IMPORT(33, netif_set_down)
194 #define I_netif_set_link_up DECLARE_IMPORT(54, netif_set_link_up)
195 #define I_netif_set_link_down DECLARE_IMPORT(55, netif_set_link_down)
196 #define I_pbuf_alloc DECLARE_IMPORT(34, pbuf_alloc)
197 #define I_pbuf_realloc DECLARE_IMPORT(35, pbuf_realloc)
198 #define I_pbuf_header DECLARE_IMPORT(36, pbuf_header)
199 #define I_pbuf_ref DECLARE_IMPORT(37, pbuf_ref)
200 #define I_pbuf_free DECLARE_IMPORT(38, pbuf_free)
201 #define I_pbuf_clen DECLARE_IMPORT(39, pbuf_clen)
202 #define I_pbuf_chain DECLARE_IMPORT(40, pbuf_chain)
203 #define I_pbuf_dechain DECLARE_IMPORT(41, pbuf_dechain)
204 #define I_pbuf_take DECLARE_IMPORT(42, pbuf_take)
205 #define I_pbuf_coalesce DECLARE_IMPORT(57, pbuf_coalesce)
206 #define I_ipaddr_addr DECLARE_IMPORT(24, ipaddr_addr)
207 #define I_ip4addr_aton DECLARE_IMPORT(43, ip4addr_aton)
208 #define I_ip4addr_ntoa DECLARE_IMPORT(44, ip4addr_ntoa)
209 #define I_ip4addr_ntoa_r DECLARE_IMPORT(45, ip4addr_ntoa_r)
210 #define I_lwip_gethostbyname DECLARE_IMPORT(48, lwip_gethostbyname)
211 #define I_lwip_gethostbyname_r DECLARE_IMPORT(49, lwip_gethostbyname_r)
212 #define I_lwip_freeaddrinfo DECLARE_IMPORT(50, lwip_freeaddrinfo)
213 #define I_lwip_getaddrinfo DECLARE_IMPORT(51, lwip_getaddrinfo)
214 #define I_dns_setserver DECLARE_IMPORT(52, dns_setserver)
215 #define I_dns_getserver DECLARE_IMPORT(53, dns_getserver)
216 
217 #define I_inet_addr I_ipaddr_addr
218 #define I_ipaddr4_aton I_ip4addr_aton
219 #define I_inet_aton I_ip4addr_aton
220 #define I_inet_ntoa I_ip4addr_ntoa
221 #define I_inet_ntoa_r I_ip4addr_ntoa_r
222 
223 #endif /* __PS2IP_H__ */
tcpip.h
netif_find
struct netif * netif_find(const char *name)
pbuf_layer
pbuf_layer
Definition: tcpip.h:174
netif_input_fn
err_t(* netif_input_fn)(struct pbuf *p, struct netif *inp)
Definition: tcpip.h:1199
t_ip_info
Definition: tcpip.h:1990
netif_init_fn
err_t(* netif_init_fn)(struct netif *netif)
Definition: tcpip.h:1192
netif::name
char name[2]
Definition: tcpip.h:1345
pbuf::flags
u8 flags
Definition: tcpip.h:253
irx.h
netif::input
netif_input_fn input
Definition: tcpip.h:1282
addrinfo
Definition: tcpip.h:1952
time.h
ip4_addr
Definition: tcpip.h:266
tcpip_callback_fn
void(* tcpip_callback_fn)(void *ctx)
Definition: ps2ip.h:62
pbuf::type
u8 type
Definition: tcpip.h:250
netif
Definition: tcpip.h:1262
hostent
Definition: tcpip.h:1940
timeval
Definition: time.h:29
ip4addr_ntoa
char * ip4addr_ntoa(const ip4_addr_t *addr)
netif::state
void * state
Definition: tcpip.h:1317
pbuf
Definition: tcpip.h:229
pbuf::len
u16 len
Definition: tcpip.h:247
pbuf_type
pbuf_type
Definition: tcpip.h:203
fd_set
Definition: tcpip.h:1838
sockaddr
Definition: tcpip.h:1562