1 1.13 sevan /* $NetBSD: util.h,v 1.13 2019/06/30 11:38:16 sevan Exp $ */ 2 1.13 sevan 3 1.1 dyoung #ifndef _IFCONFIG_UTIL_H 4 1.1 dyoung #define _IFCONFIG_UTIL_H 5 1.1 dyoung 6 1.6 dyoung #include <netinet/in.h> 7 1.8 dyoung #include <sys/types.h> 8 1.8 dyoung #include <sys/socket.h> 9 1.8 dyoung #include <ifaddrs.h> 10 1.6 dyoung 11 1.1 dyoung #include "parse.h" 12 1.1 dyoung 13 1.1 dyoung struct afswtch { 14 1.1 dyoung const char *af_name; 15 1.1 dyoung short af_af; 16 1.2 dyoung void (*af_status)(prop_dictionary_t, prop_dictionary_t, bool); 17 1.3 dyoung void (*af_addr_commit)(prop_dictionary_t, prop_dictionary_t); 18 1.11 roy bool (*af_addr_tentative)(struct ifaddrs *); 19 1.12 roy bool (*af_addr_tentative_or_detached)(struct ifaddrs *); 20 1.6 dyoung SIMPLEQ_ENTRY(afswtch) af_next; 21 1.1 dyoung }; 22 1.1 dyoung 23 1.7 dyoung void print_link_addresses(prop_dictionary_t, bool); 24 1.9 dyoung const char *get_string(const char *, const char *, u_int8_t *, int *, bool); 25 1.1 dyoung const struct afswtch *lookup_af_byname(const char *); 26 1.1 dyoung const struct afswtch *lookup_af_bynum(int); 27 1.1 dyoung void print_string(const u_int8_t *, int); 28 1.1 dyoung int getsock(int); 29 1.1 dyoung struct paddr_prefix *prefixlen_to_mask(int, int); 30 1.4 dyoung int direct_ioctl(prop_dictionary_t, unsigned long, void *); 31 1.4 dyoung int indirect_ioctl(prop_dictionary_t, unsigned long, void *); 32 1.8 dyoung bool ifa_any_preferences(const char *, struct ifaddrs *, int); 33 1.8 dyoung void ifa_print_preference(const char *, const struct sockaddr *); 34 1.8 dyoung int16_t ifa_get_preference(const char *, const struct sockaddr *); 35 1.1 dyoung 36 1.1 dyoung #endif /* _IFCONFIG_UTIL_H */ 37