Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/inet/addr.h

    r26de91a r1c7ba2d  
    3737
    3838#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;
    5539
    5640/** Node address */
    5741typedef struct {
    58         /** IP version */
    59         ip_ver_t version;
    60         union {
    61                 addr32_t addr;
    62                 addr128_t addr6;
    63         };
     42        uint32_t ipv4;
    6443} inet_addr_t;
    6544
    6645/** Network address */
    6746typedef struct {
    68         /** IP version */
    69         ip_ver_t version;
    70        
    7147        /** 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;
    7951} inet_naddr_t;
    8052
    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 
     53extern int inet_naddr_parse(const char *, inet_naddr_t *);
    11654extern 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 *);
     55extern int inet_naddr_format(inet_naddr_t *, char **);
     56extern int inet_addr_format(inet_addr_t *, char **);
    14057
    14158#endif
Note: See TracChangeset for help on using the changeset viewer.