Changes in uspace/lib/c/include/inet/addr.h [26de91a:1c7ba2d] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/include/inet/addr.h
r26de91a r1c7ba2d 37 37 38 38 #include <stdint.h> 39 #include <net/in.h>40 #include <net/in6.h>41 #include <net/socket.h>42 43 typedef uint32_t addr32_t;44 typedef uint8_t addr48_t[6];45 typedef uint8_t addr128_t[16];46 47 typedef enum {48 /** Any IP protocol version */49 ip_any,50 /** IPv4 */51 ip_v4,52 /** IPv6 */53 ip_v654 } ip_ver_t;55 39 56 40 /** Node address */ 57 41 typedef struct { 58 /** IP version */ 59 ip_ver_t version; 60 union { 61 addr32_t addr; 62 addr128_t addr6; 63 }; 42 uint32_t ipv4; 64 43 } inet_addr_t; 65 44 66 45 /** Network address */ 67 46 typedef struct { 68 /** IP version */69 ip_ver_t version;70 71 47 /** Address */ 72 union { 73 addr32_t addr; 74 addr128_t addr6; 75 }; 76 77 /** Number of valid bits */ 78 uint8_t prefix; 48 uint32_t ipv4; 49 /** Number of valid bits in @c ipv4 */ 50 int bits; 79 51 } inet_naddr_t; 80 52 81 extern const addr32_t addr32_broadcast_all_hosts; 82 extern const addr48_t addr48_broadcast; 83 84 extern void addr48(const addr48_t, addr48_t); 85 extern void addr128(const addr128_t, addr128_t); 86 87 extern int addr48_compare(const addr48_t, const addr48_t); 88 extern int addr128_compare(const addr128_t, const addr128_t); 89 90 extern void addr48_solicited_node(const addr128_t, addr48_t); 91 92 extern void host2addr128_t_be(const addr128_t, addr128_t); 93 extern void addr128_t_be2host(const addr128_t, addr128_t); 94 95 extern void inet_addr(inet_addr_t *, uint8_t, uint8_t, uint8_t, uint8_t); 96 extern void inet_naddr(inet_naddr_t *, uint8_t, uint8_t, uint8_t, uint8_t, 97 uint8_t); 98 99 extern void inet_addr6(inet_addr_t *, uint16_t, uint16_t, uint16_t, uint16_t, 100 uint16_t, uint16_t, uint16_t, uint16_t); 101 extern void inet_naddr6(inet_naddr_t *, uint16_t, uint16_t, uint16_t, uint16_t, 102 uint16_t, uint16_t, uint16_t, uint16_t, uint8_t); 103 104 extern void inet_naddr_addr(const inet_naddr_t *, inet_addr_t *); 105 extern void inet_addr_naddr(const inet_addr_t *, uint8_t, inet_naddr_t *); 106 107 extern void inet_addr_any(inet_addr_t *); 108 extern void inet_naddr_any(inet_naddr_t *); 109 110 extern int inet_addr_compare(const inet_addr_t *, const inet_addr_t *); 111 extern int inet_addr_is_any(const inet_addr_t *); 112 113 extern int inet_naddr_compare(const inet_naddr_t *, const inet_addr_t *); 114 extern int inet_naddr_compare_mask(const inet_naddr_t *, const inet_addr_t *); 115 53 extern int inet_naddr_parse(const char *, inet_naddr_t *); 116 54 extern int inet_addr_parse(const char *, inet_addr_t *); 117 extern int inet_naddr_parse(const char *, inet_naddr_t *); 118 119 extern int inet_addr_format(const inet_addr_t *, char **); 120 extern int inet_naddr_format(const inet_naddr_t *, char **); 121 122 extern ip_ver_t inet_addr_get(const inet_addr_t *, addr32_t *, addr128_t *); 123 extern ip_ver_t inet_naddr_get(const inet_naddr_t *, addr32_t *, addr128_t *, 124 uint8_t *); 125 126 extern void inet_addr_set(addr32_t, inet_addr_t *); 127 extern void inet_naddr_set(addr32_t, uint8_t, inet_naddr_t *); 128 extern void inet_sockaddr_in_addr(const sockaddr_in_t *, inet_addr_t *); 129 130 extern void inet_addr_set6(addr128_t, inet_addr_t *); 131 extern void inet_naddr_set6(addr128_t, uint8_t, inet_naddr_t *); 132 extern void inet_sockaddr_in6_addr(const sockaddr_in6_t *, inet_addr_t *); 133 134 extern uint16_t inet_addr_sockaddr_in(const inet_addr_t *, sockaddr_in_t *, 135 sockaddr_in6_t *); 136 137 extern ip_ver_t ipver_from_af(int af); 138 extern int inet_addr_sockaddr(const inet_addr_t *, uint16_t, sockaddr_t **, 139 socklen_t *); 55 extern int inet_naddr_format(inet_naddr_t *, char **); 56 extern int inet_addr_format(inet_addr_t *, char **); 140 57 141 58 #endif
Note:
See TracChangeset
for help on using the changeset viewer.