1 /* 2 * src/utils.h Utilities 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation version 2.1 7 * of the License. 8 * 9 * Copyright (c) 2003-2009 Thomas Graf <tgraf@suug.ch> 10 */ 11 12 #ifndef __NETLINK_CLI_UTILS_H_ 13 #define __NETLINK_CLI_UTILS_H_ 14 15 #include <stdio.h> 16 #include <string.h> 17 #include <stdlib.h> 18 #include <stdarg.h> 19 #include <limits.h> 20 #include <inttypes.h> 21 #include <errno.h> 22 #include <stdint.h> 23 #include <ctype.h> 24 #include <getopt.h> 25 #include <dlfcn.h> 26 #include <sys/types.h> 27 #include <sys/socket.h> 28 29 #include <netlink/netlink.h> 30 #include <netlink/utils.h> 31 #include <netlink/addr.h> 32 #include <netlink/list.h> 33 #include <netlink/route/rtnl.h> 34 #include <netlink/route/link.h> 35 #include <netlink/route/addr.h> 36 #include <netlink/route/neighbour.h> 37 #include <netlink/route/neightbl.h> 38 #include <netlink/route/route.h> 39 #include <netlink/route/rule.h> 40 #include <netlink/route/qdisc.h> 41 #include <netlink/route/class.h> 42 #include <netlink/route/classifier.h> 43 #include <netlink/route/cls/ematch.h> 44 #include <netlink/fib_lookup/lookup.h> 45 #include <netlink/fib_lookup/request.h> 46 #include <netlink/genl/genl.h> 47 #include <netlink/genl/ctrl.h> 48 #include <netlink/genl/mngt.h> 49 #include <netlink/netfilter/ct.h> 50 51 #ifdef __cplusplus 52 extern "C" { 53 #endif 54 55 #ifndef __init 56 #define __init __attribute__((constructor)) 57 #endif 58 59 #ifndef __exit 60 #define __exit __attribute__((destructor)) 61 #endif 62 63 extern uint32_t nl_cli_parse_u32(const char *); 64 extern void nl_cli_print_version(void); 65 extern void nl_cli_fatal(int, const char *, ...); 66 extern struct nl_addr * nl_cli_addr_parse(const char *, int); 67 extern int nl_cli_connect(struct nl_sock *, int); 68 extern struct nl_sock * nl_cli_alloc_socket(void); 69 extern int nl_cli_parse_dumptype(const char *); 70 extern int nl_cli_confirm(struct nl_object *, 71 struct nl_dump_params *, int); 72 73 extern struct nl_cache *nl_cli_alloc_cache(struct nl_sock *, const char *, 74 int (*ac)(struct nl_sock *, struct nl_cache **)); 75 76 extern void nl_cli_load_module(const char *, const char *); 77 78 #ifdef __cplusplus 79 } 80 #endif 81 82 #endif 83