Changes in uspace/lib/c/include/inet/addr.h [1c7ba2d:26de91a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/include/inet/addr.h
r1c7ba2d r26de91a 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_v6 54 } ip_ver_t; 39 55 40 56 /** Node address */ 41 57 typedef struct { 42 uint32_t ipv4; 58 /** IP version */ 59 ip_ver_t version; 60 union { 61 addr32_t addr; 62 addr128_t addr6; 63 }; 43 64 } inet_addr_t; 44 65 45 66 /** Network address */ 46 67 typedef struct { 68 /** IP version */ 69 ip_ver_t version; 70 47 71 /** Address */ 48 uint32_t ipv4; 49 /** Number of valid bits in @c ipv4 */ 50 int bits; 72 union { 73 addr32_t addr; 74 addr128_t addr6; 75 }; 76 77 /** Number of valid bits */ 78 uint8_t prefix; 51 79 } inet_naddr_t; 52 80 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 116 extern int inet_addr_parse(const char *, inet_addr_t *); 53 117 extern int inet_naddr_parse(const char *, inet_naddr_t *); 54 extern int inet_addr_parse(const char *, inet_addr_t *); 55 extern int inet_naddr_format(inet_naddr_t *, char **); 56 extern int inet_addr_format(inet_addr_t *, char **); 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 *); 57 140 58 141 #endif
Note:
See TracChangeset
for help on using the changeset viewer.