4 #include <tomato_profile.h>
5 #include <tomato_config.h>
7 #include <netinet/in.h>
12 #include <mntent.h> // !!TB
15 #define Y2K 946684800UL // seconds since 1970
17 #define ASIZE(array) (sizeof(array) / sizeof(array[0]))
20 extern const char *tomato_version
;
21 extern const char *tomato_buildtime
;
25 #define WP_DISABLED 0 // order must be synced with def in misc.c
34 ACT_TFTP_UPGRADE_UNUSED
,
36 ACT_WEBS_UPGRADE_UNUSED
,
53 extern int get_wan_proto(void);
54 extern int using_dhcpc(void);
55 extern void notice_set(const char *path
, const char *format
, ...);
56 extern int check_wanup(void);
57 extern const dns_list_t
*get_dns(void);
58 extern void set_action(int a
);
59 extern int check_action(void);
60 extern int wait_action_idle(int n
);
61 extern int wl_client(void);
62 extern const char *get_wanip(void);
63 extern long get_uptime(void);
64 extern int get_radio(void);
65 extern void set_radio(int on
);
66 extern int nvram_get_int(const char *key
);
67 // extern long nvram_xget_long(const char *name, long min, long max, long def);
68 extern int nvram_get_file(const char *key
, const char *fname
, int max
);
69 extern int nvram_set_file(const char *key
, const char *fname
, int max
);
70 extern int nvram_contains_word(const char *key
, const char *word
);
71 extern int nvram_is_empty(const char *key
);
72 extern void nvram_commit_x(void);
73 extern int connect_timeout(int fd
, const struct sockaddr
*addr
, socklen_t len
, int timeout
);
76 extern int file_lock(char *tag
);
77 extern void file_unlock(int lockfd
);
79 #define file_lock(args...) (-1)
80 #define file_unlock(args...) do { } while(0)
84 extern char *detect_fs_type(char *device
);
85 extern struct mntent
*findmntents(char *file
, int swp
,
86 int (*func
)(struct mntent
*mnt
, uint flags
), uint flags
);
87 extern int find_label_or_uuid(char *dev_name
, char *label
, char *uuid
);
88 extern void add_remove_usbhost(char *host
, int add
);
90 #define DEV_DISCS_ROOT "/dev/discs"
92 /* Flags used in exec_for_host calls
94 #define EFH_1ST_HOST 0x00000001 /* func is called for the 1st time for this host */
95 #define EFH_1ST_DISC 0x00000002 /* func is called for the 1st time for this disc */
96 #define EFH_HUNKNOWN 0x00000004 /* host is unknown */
97 #define EFH_USER 0x00000008 /* process is user-initiated - either via Web GUI or a script */
98 #define EFH_SHUTDN 0x00000010 /* exec_for_host is called at shutdown - system is stopping */
100 typedef int (*host_exec
)(char *dev_name
, int host_num
, int disc_num
, int part_num
, uint flags
);
101 extern int exec_for_host(int host
, int when_to_update
, uint flags
, host_exec func
);
152 HW_BCM4704_BCM5325F_EWC
,
153 HW_BCM4705L_BCM5325E_EWC
,
158 #define SUP_SES (1 << 0)
159 #define SUP_BRAU (1 << 1)
160 #define SUP_AOSS_LED (1 << 2)
161 #define SUP_WHAM_LED (1 << 3)
162 #define SUP_HPAMP (1 << 4)
163 #define SUP_NONVE (1 << 5)
164 #define SUP_80211N (1 << 6)
166 extern int check_hw_type(void);
167 // extern int get_hardware(void) __attribute__ ((weak, alias ("check_hw_type")));
168 extern int get_model(void);
169 extern int supports(unsigned long attr
);
174 extern char *psname(int pid
, char *buffer
, int maxlen
);
175 extern int pidof(const char *name
);
176 extern int killall(const char *name
, int sig
);
184 extern unsigned long f_size(const char *path
);
185 extern int f_exists(const char *file
);
186 extern int f_read(const char *file
, void *buffer
, int max
); // returns bytes read
187 extern int f_write(const char *file
, const void *buffer
, int len
, unsigned flags
, unsigned cmode
); //
188 extern int f_read_string(const char *file
, char *buffer
, int max
); // returns bytes read, not including term; max includes term
189 extern int f_write_string(const char *file
, const char *buffer
, unsigned flags
, unsigned cmode
); //
190 extern int f_read_alloc(const char *path
, char **buffer
, int max
);
191 extern int f_read_alloc_string(const char *path
, char **buffer
, int max
);
192 extern int f_wait_exists(const char *name
, int max
);
193 extern int f_wait_notexists(const char *name
, int max
);
204 #define LED_MYSTERY 7 // (unmarked LED between wireless and bridge on WHR-G54S)
212 extern const char *led_names
[];
214 extern void gpio_write(uint32_t bit
, int en
);
215 extern uint32_t gpio_read(void);
216 extern int nvget_gpio(const char *name
, int *gpio
, int *inv
);
217 extern int led(int which
, int mode
);
221 extern int base64_encode(unsigned char *in
, char *out
, int inlen
); // returns amount of out buffer used
222 extern int base64_decode(const char *in
, unsigned char *out
, int inlen
); // returns amount of out buffer used
223 extern int base64_encoded_len(int len
);
224 extern int base64_decoded_len(int len
); // maximum possible, not actual
228 extern const char *find_word(const char *buffer
, const char *word
);
229 extern int remove_word(char *buffer
, const char *word
);