xref: /minix3/minix/net/lwip/addr.h (revision ef8d499e2d2af900e9b2ab297171d7b088652482)
1*ef8d499eSDavid van Moolenbroek #ifndef MINIX_NET_LWIP_ADDR_H
2*ef8d499eSDavid van Moolenbroek #define MINIX_NET_LWIP_ADDR_H
3*ef8d499eSDavid van Moolenbroek 
4*ef8d499eSDavid van Moolenbroek int addr_is_unspec(const struct sockaddr * addr, socklen_t addr_len);
5*ef8d499eSDavid van Moolenbroek 
6*ef8d499eSDavid van Moolenbroek int addr_is_valid_multicast(const ip_addr_t * ipaddr);
7*ef8d499eSDavid van Moolenbroek 
8*ef8d499eSDavid van Moolenbroek int addr_get_inet(const struct sockaddr * addr, socklen_t addr_len,
9*ef8d499eSDavid van Moolenbroek 	uint8_t type, ip_addr_t * ipaddr, int kame, uint16_t * port);
10*ef8d499eSDavid van Moolenbroek void addr_put_inet(struct sockaddr * addr, socklen_t * addr_len,
11*ef8d499eSDavid van Moolenbroek 	const ip_addr_t * ipaddr, int kame, uint16_t port);
12*ef8d499eSDavid van Moolenbroek 
13*ef8d499eSDavid van Moolenbroek int addr_get_link(const struct sockaddr * addr, socklen_t addr_len,
14*ef8d499eSDavid van Moolenbroek 	char * name, size_t name_max, uint8_t * hwaddr, size_t hwaddr_len);
15*ef8d499eSDavid van Moolenbroek void addr_put_link(struct sockaddr * addr, socklen_t * addr_len,
16*ef8d499eSDavid van Moolenbroek 	uint32_t ifindex, uint32_t type, const char * name,
17*ef8d499eSDavid van Moolenbroek 	const uint8_t * hwaddr, size_t hwaddr_len);
18*ef8d499eSDavid van Moolenbroek 
19*ef8d499eSDavid van Moolenbroek int addr_get_netmask(const struct sockaddr * addr, socklen_t addr_len,
20*ef8d499eSDavid van Moolenbroek 	uint8_t type, unsigned int * prefix, ip_addr_t * ipaddr);
21*ef8d499eSDavid van Moolenbroek void addr_make_netmask(uint8_t * addr, socklen_t addr_len,
22*ef8d499eSDavid van Moolenbroek 	unsigned int prefix);
23*ef8d499eSDavid van Moolenbroek void addr_put_netmask(struct sockaddr * addr, socklen_t * addr_len,
24*ef8d499eSDavid van Moolenbroek 	uint8_t type, unsigned int prefix);
25*ef8d499eSDavid van Moolenbroek 
26*ef8d499eSDavid van Moolenbroek void addr_normalize(ip_addr_t * dst, const ip_addr_t * src,
27*ef8d499eSDavid van Moolenbroek 	unsigned int prefix);
28*ef8d499eSDavid van Moolenbroek unsigned int addr_get_common_bits(const ip_addr_t * addr1,
29*ef8d499eSDavid van Moolenbroek 	const ip_addr_t * addr2, unsigned int max);
30*ef8d499eSDavid van Moolenbroek 
31*ef8d499eSDavid van Moolenbroek void addr_make_v4mapped_v6(ip_addr_t * dst, const ip4_addr_t * src);
32*ef8d499eSDavid van Moolenbroek 
33*ef8d499eSDavid van Moolenbroek #endif /* !MINIX_NET_LWIP_ADDR_H */
34