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