• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/netifd/netifd.h

  1 /*
  2  * netifd - network interface daemon
  3  * Copyright (C) 2012 Felix Fietkau <nbd@openwrt.org>
  4  *
  5  * This program is free software; you can redistribute it and/or modify
  6  * it under the terms of the GNU General Public License version 2
  7  * as published by the Free Software Foundation
  8  *
  9  * This program is distributed in the hope that it will be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 12  * GNU General Public License for more details.
 13  */
 14 #ifndef __NETIFD_H
 15 #define __NETIFD_H
 16 
 17 #include <sys/socket.h>
 18 #include <net/if.h>
 19 
 20 #include <stdbool.h>
 21 #include <stdio.h>
 22 
 23 #include <libubox/uloop.h>
 24 #include <libubox/ustream.h>
 25 #include <libubox/utils.h>
 26 
 27 #include <libubus.h>
 28 
 29 #include "utils.h"
 30 
 31 #ifdef DUMMY_MODE
 32 #define DEFAULT_MAIN_PATH       "./examples"
 33 #define DEFAULT_CONFIG_PATH     "./config"
 34 #define DEFAULT_HOTPLUG_PATH    "./examples/hotplug-cmd"
 35 #define DEFAULT_RESOLV_CONF     "./tmp/resolv.conf"
 36 #else
 37 #define DEFAULT_MAIN_PATH       "/lib/netifd"
 38 #define DEFAULT_CONFIG_PATH     NULL /* use the default set in libuci */
 39 #define DEFAULT_HOTPLUG_PATH    "/sbin/hotplug-call"
 40 #define DEFAULT_RESOLV_CONF     "/tmp/resolv.conf.auto"
 41 #endif
 42 
 43 extern const char *resolv_conf;
 44 extern char *hotplug_cmd_path;
 45 extern unsigned int debug_mask;
 46 
 47 enum {
 48         L_CRIT,
 49         L_WARNING,
 50         L_NOTICE,
 51         L_INFO,
 52         L_DEBUG
 53 };
 54 
 55 enum {
 56         DEBUG_SYSTEM    = 0,
 57         DEBUG_DEVICE    = 1,
 58         DEBUG_INTERFACE = 2,
 59         DEBUG_WIRELESS  = 3,
 60 };
 61 
 62 #ifdef DEBUG
 63 #define DPRINTF(format, ...) fprintf(stderr, "%s(%d): " format, __func__, __LINE__, ## __VA_ARGS__)
 64 #define D(level, format, ...) do { \
 65                 if (debug_mask & (1 << (DEBUG_ ## level))) \
 66                                 DPRINTF(format, ##__VA_ARGS__); \
 67         } while (0)
 68 #else
 69 #define DPRINTF(format, ...) no_debug(0, format, ## __VA_ARGS__)
 70 #define D(level, format, ...) no_debug(DEBUG_ ## level, format, ## __VA_ARGS__)
 71 #endif
 72 
 73 #define LOG_BUF_SIZE    256
 74 
 75 static inline void no_debug(int level, const char *fmt, ...)
 76 {
 77 }
 78 
 79 struct netifd_process {
 80         struct list_head list;
 81         struct uloop_process uloop;
 82         void (*cb)(struct netifd_process *, int ret);
 83         int dir_fd;
 84 
 85         struct ustream_fd log;
 86         const char *log_prefix;
 87         bool log_overflow;
 88 };
 89 
 90 void netifd_log_message(int priority, const char *format, ...);
 91 
 92 int netifd_start_process(const char **argv, char **env, struct netifd_process *proc);
 93 void netifd_kill_process(struct netifd_process *proc);
 94 
 95 struct device;
 96 struct interface;
 97 
 98 extern const char *main_path;
 99 extern const char *config_path;
100 void netifd_restart(void);
101 int netifd_reload(void);
102 
103 #endif
104 

This page was automatically generated by LXR 0.3.1.  •  OpenWrt