Tomato 1.24
[tomato.git] / release / src / router / shared / shared.h
blobb648ee5cbebfa849f8d8d98928ce8c2e7b179f93
1 #ifndef __SHARED_H__
2 #define __SHARED_H__
4 #include <tomato_profile.h>
6 #include <netinet/in.h>
7 #include <stdint.h>
8 #include <errno.h>
10 #define Y2K 946684800UL // seconds since 1970
12 #define ASIZE(array) (sizeof(array) / sizeof(array[0]))
14 //version.c
15 extern const char *tomato_version;
16 extern const char *tomato_buildtime;
19 // misc.c
20 #define WP_DISABLED 0 // order must be synced with def in misc.c
21 #define WP_STATIC 1
22 #define WP_DHCP 2
23 #define WP_L2TP 3
24 #define WP_PPPOE 4
25 #define WP_PPTP 5
27 enum {
28 ACT_IDLE,
29 ACT_TFTP_UPGRADE_UNUSED,
30 ACT_WEB_UPGRADE,
31 ACT_WEBS_UPGRADE_UNUSED,
32 ACT_SW_RESTORE,
33 ACT_HW_RESTORE,
34 ACT_ERASE_NVRAM,
35 ACT_NVRAM_COMMIT,
36 ACT_REBOOT,
37 ACT_UNKNOWN
40 typedef struct {
41 int count;
42 struct in_addr dns[3];
43 } dns_list_t;
45 extern int get_wan_proto(void);
46 extern int using_dhcpc(void);
47 extern void notice_set(const char *path, const char *format, ...);
48 extern int check_wanup(void);
49 extern const dns_list_t *get_dns(void);
50 extern void set_action(int a);
51 extern int check_action(void);
52 extern int wait_action_idle(int n);
53 extern int wl_client(void);
54 extern const char *get_wanip(void);
55 extern long get_uptime(void);
56 extern int get_radio(void);
57 extern void set_radio(int on);
58 extern int nvram_get_int(const char *key);
59 // extern long nvram_xget_long(const char *name, long min, long max, long def);
60 extern int nvram_get_file(const char *key, const char *fname, int max);
61 extern int nvram_set_file(const char *key, const char *fname, int max);
62 extern int nvram_contains_word(const char *key, const char *word);
63 extern int nvram_is_empty(const char *key);
64 extern void nvram_commit_x(void);
65 extern int connect_timeout(int fd, const struct sockaddr *addr, socklen_t len, int timeout);
68 // id.c
69 enum {
70 MODEL_UNKNOWN,
71 MODEL_WRT54G,
72 MODEL_WRTSL54GS,
73 MODEL_WHRG54S,
74 MODEL_WHRHPG54,
75 MODEL_WR850GV1,
76 MODEL_WR850GV2,
77 MODEL_WZRG54,
78 MODEL_WL500GP,
79 MODEL_WL500GPv2,
80 MODEL_WL500GE,
81 MODEL_WL520GU,
82 MODEL_WBRG54,
83 MODEL_WBR2G54,
84 MODEL_WX6615GT,
85 MODEL_WZRHPG54,
86 MODEL_WZRRSG54,
87 MODEL_WZRRSG54HP,
88 MODEL_WVRG54NF,
89 MODEL_WHR2A54G54,
90 MODEL_WHR3AG54,
91 MODEL_RT390W,
92 MODEL_MN700,
93 MODEL_WRH54G,
94 MODEL_WHRG125,
95 MODEL_WZRG108,
96 MODEL_WTR54GS,
97 MODEL_WR100
99 #if TOMATO_N
101 MODEL_WZRG300N,
102 MODEL_WRT300N
103 #endif
106 enum {
107 HW_BCM4702,
108 HW_BCM4712,
109 HW_BCM5325E,
110 HW_BCM4704_BCM5325F,
111 HW_BCM5352E,
112 HW_BCM5354G,
113 HW_BCM4712_BCM5325E,
114 HW_BCM4704_BCM5325F_EWC,
115 HW_BCM4705L_BCM5325E_EWC,
116 HW_BCM5350,
117 HW_UNKNOWN
120 #define SUP_SES (1 << 0)
121 #define SUP_BRAU (1 << 1)
122 #define SUP_AOSS_LED (1 << 2)
123 #define SUP_WHAM_LED (1 << 3)
124 #define SUP_HPAMP (1 << 4)
125 #define SUP_NONVE (1 << 5)
126 #define SUP_80211N (1 << 6)
128 extern int check_hw_type(void);
129 // extern int get_hardware(void) __attribute__ ((weak, alias ("check_hw_type")));
130 extern int get_model(void);
131 extern int supports(unsigned long attr);
135 // process.c
136 extern char *psname(int pid, char *buffer, int maxlen);
137 extern int pidof(const char *name);
138 extern int killall(const char *name, int sig);
141 // files.c
142 #define FW_CREATE 0
143 #define FW_APPEND 1
144 #define FW_NEWLINE 2
146 extern unsigned long f_size(const char *path);
147 extern int f_exists(const char *file);
148 extern int f_read(const char *file, void *buffer, int max); // returns bytes read
149 extern int f_write(const char *file, const void *buffer, int len, unsigned flags, unsigned cmode); //
150 extern int f_read_string(const char *file, char *buffer, int max); // returns bytes read, not including term; max includes term
151 extern int f_write_string(const char *file, const char *buffer, unsigned flags, unsigned cmode); //
152 extern int f_read_alloc(const char *path, char **buffer, int max);
153 extern int f_read_alloc_string(const char *path, char **buffer, int max);
154 extern int f_wait_exists(const char *name, int max);
155 extern int f_wait_notexists(const char *name, int max);
158 // led.c
159 #define LED_WLAN 0
160 #define LED_DIAG 1
161 #define LED_WHITE 2
162 #define LED_AMBER 3
163 #define LED_DMZ 4
164 #define LED_AOSS 5
165 #define LED_BRIDGE 6
166 #define LED_MYSTERY 7 // (unmarked LED between wireless and bridge on WHR-G54S)
167 #define LED_COUNT 8
169 #define LED_OFF 0
170 #define LED_ON 1
171 #define LED_BLINK 2
172 #define LED_PROBE 3
174 extern const char *led_names[];
176 extern void gpio_write(uint32_t bit, int en);
177 extern uint32_t gpio_read(void);
178 extern int nvget_gpio(const char *name, int *gpio, int *inv);
179 extern int led(int which, int mode);
182 // base64.c
183 extern int base64_encode(unsigned char *in, char *out, int inlen); // returns amount of out buffer used
184 extern int base64_decode(const char *in, unsigned char *out, int inlen); // returns amount of out buffer used
185 extern int base64_encoded_len(int len);
186 extern int base64_decoded_len(int len); // maximum possible, not actual
189 // strings.c
190 extern const char *find_word(const char *buffer, const char *word);
191 extern int remove_word(char *buffer, const char *word);
193 #endif