extern bool fw3_pr_debug;
-void warn_elem(struct uci_element *e, const char *format, ...);
-void warn(const char *format, ...);
-void error(const char *format, ...);
-void info(const char *format, ...);
+struct fw3_address;
+
+void warn_elem(struct uci_element *e, const char *format, ...)
+ __attribute__ ((format (printf, 2, 3)));
+void warn(const char *format, ...)
+ __attribute__ ((format (printf, 1, 2)));
+void error(const char *format, ...)
+ __attribute__ ((format (printf, 1, 2)));
+void info(const char *format, ...)
+ __attribute__ ((format (printf, 1, 2)));
#define warn_section(t, r, e, fmt, ...) \
#define fw3_command_pipe(...) __fw3_command_pipe(__VA_ARGS__, NULL)
void fw3_command_close(void);
-void fw3_pr(const char *fmt, ...);
+void fw3_pr(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
bool fw3_has_table(bool ipv6, const char *table);
bool fw3_lock(void);
void fw3_unlock(void);
+bool fw3_lock_path(int *fw3_lock_fd, const char *path);
+void fw3_unlock_path(int *fw3_lock_fd, const char *path);
void fw3_write_statefile(void *state);
const char * fw3_protoname(void *proto);
+bool fw3_check_loopback_dev(const char *name);
+
+bool fw3_check_loopback_addr(struct fw3_address *addr);
#endif