-static int libcfs_lo_str2addr(const char *str, int nob, __u32 *addr);
-static void libcfs_ip_addr2str(__u32 addr, char *str, size_t size);
-static int libcfs_ip_str2addr(const char *str, int nob, __u32 *addr);
-static bool cfs_ip_is_contiguous(struct list_head *nidlist);
-static void cfs_ip_min_max(struct list_head *nidlist, __u32 *min, __u32 *max);
-static void libcfs_decnum_addr2str(__u32 addr, char *str, size_t size);
-static void libcfs_hexnum_addr2str(__u32 addr, char *str, size_t size);
-static int libcfs_num_str2addr(const char *str, int nob, __u32 *addr);
-static int libcfs_num_parse(char *str, int len, struct list_head *list);
-static int libcfs_num_match(__u32 addr, struct list_head *list);
-static int libcfs_num_addr_range_print(char *buffer, int count,
- struct list_head *list);
-static int libcfs_ip_addr_range_print(char *buffer, int count,
- struct list_head *list);
-static bool cfs_num_is_contiguous(struct list_head *nidlist);
-static void cfs_num_min_max(struct list_head *nidlist, __u32 *min, __u32 *max);
-
-static struct netstrfns libcfs_netstrfns[] = {
- {/* .nf_type */ LOLND,
- /* .nf_name */ "lo",
- /* .nf_modname */ "klolnd",
- /* .nf_addr2str */ libcfs_decnum_addr2str,
- /* .nf_str2addr */ libcfs_lo_str2addr,
- /* .nf_parse_addr*/ libcfs_num_parse,
- /* .nf_print_addrlist*/ libcfs_num_addr_range_print,
- /* .nf_match_addr*/ libcfs_num_match,
- /* .nf_is_contiguous */ cfs_num_is_contiguous,
- /* .nf_min_max */ cfs_num_min_max},
- {/* .nf_type */ SOCKLND,
- /* .nf_name */ "tcp",
- /* .nf_modname */ "ksocklnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- {/* .nf_type */ O2IBLND,
- /* .nf_name */ "o2ib",
- /* .nf_modname */ "ko2iblnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- {/* .nf_type */ CIBLND,
- /* .nf_name */ "cib",
- /* .nf_modname */ "kciblnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- {/* .nf_type */ OPENIBLND,
- /* .nf_name */ "openib",
- /* .nf_modname */ "kopeniblnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- {/* .nf_type */ IIBLND,
- /* .nf_name */ "iib",
- /* .nf_modname */ "kiiblnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- {/* .nf_type */ VIBLND,
- /* .nf_name */ "vib",
- /* .nf_modname */ "kviblnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- {/* .nf_type */ RALND,
- /* .nf_name */ "ra",
- /* .nf_modname */ "kralnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- {/* .nf_type */ QSWLND,
- /* .nf_name */ "elan",
- /* .nf_modname */ "kqswlnd",
- /* .nf_addr2str */ libcfs_decnum_addr2str,
- /* .nf_str2addr */ libcfs_num_str2addr,
- /* .nf_parse_addrlist*/ libcfs_num_parse,
- /* .nf_print_addrlist*/ libcfs_num_addr_range_print,
- /* .nf_match_addr*/ libcfs_num_match,
- /* .nf_is_contiguous */ cfs_num_is_contiguous,
- /* .nf_min_max */ cfs_num_min_max},
- {/* .nf_type */ GMLND,
- /* .nf_name */ "gm",
- /* .nf_modname */ "kgmlnd",
- /* .nf_addr2str */ libcfs_hexnum_addr2str,
- /* .nf_str2addr */ libcfs_num_str2addr,
- /* .nf_parse_addrlist*/ libcfs_num_parse,
- /* .nf_print_addrlist*/ libcfs_num_addr_range_print,
- /* .nf_match_addr*/ libcfs_num_match,
- /* .nf_is_contiguous */ cfs_num_is_contiguous,
- /* .nf_min_max */ cfs_num_min_max},
- {/* .nf_type */ MXLND,
- /* .nf_name */ "mx",
- /* .nf_modname */ "kmxlnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- {/* .nf_type */ PTLLND,
- /* .nf_name */ "ptl",
- /* .nf_modname */ "kptllnd",
- /* .nf_addr2str */ libcfs_decnum_addr2str,
- /* .nf_str2addr */ libcfs_num_str2addr,
- /* .nf_parse_addrlist*/ libcfs_num_parse,
- /* .nf_print_addrlist*/ libcfs_num_addr_range_print,
- /* .nf_match_addr*/ libcfs_num_match,
- /* .nf_is_contiguous */ cfs_num_is_contiguous,
- /* .nf_min_max */ cfs_num_min_max},
- {/* .nf_type */ GNILND,
- /* .nf_name */ "gni",
- /* .nf_modname */ "kgnilnd",
- /* .nf_addr2str */ libcfs_decnum_addr2str,
- /* .nf_str2addr */ libcfs_num_str2addr,
- /* .nf_parse_addrlist*/ libcfs_num_parse,
- /* .nf_print_addrlist*/ libcfs_num_addr_range_print,
- /* .nf_match_addr*/ libcfs_num_match,
- /* .nf_is_contiguous */ cfs_num_is_contiguous,
- /* .nf_min_max */ cfs_num_min_max},
- {/* .nf_type */ GNIIPLND,
- /* .nf_name */ "gip",
- /* .nf_modname */ "kgnilnd",
- /* .nf_addr2str */ libcfs_ip_addr2str,
- /* .nf_str2addr */ libcfs_ip_str2addr,
- /* .nf_parse_addrlist*/ cfs_ip_addr_parse,
- /* .nf_print_addrlist*/ libcfs_ip_addr_range_print,
- /* .nf_match_addr*/ cfs_ip_addr_match,
- /* .nf_is_contiguous */ cfs_ip_is_contiguous,
- /* .nf_min_max */ cfs_ip_min_max},
- /* placeholder for net0 alias. It MUST BE THE LAST ENTRY */
- {/* .nf_type */ -1},
-};
-
-static const size_t libcfs_nnetstrfns =
- sizeof(libcfs_netstrfns)/sizeof(libcfs_netstrfns[0]);
-