diff options
Diffstat (limited to 'include/busybox.h')
-rw-r--r-- | include/busybox.h | 193 |
1 files changed, 13 insertions, 180 deletions
diff --git a/include/busybox.h b/include/busybox.h index 194fd8220..9414234c7 100644 --- a/include/busybox.h +++ b/include/busybox.h | |||
@@ -44,31 +44,6 @@ typedef unsigned int socklen_t; | |||
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | 46 | ||
47 | /* Some useful definitions */ | ||
48 | #define FALSE ((int) 0) | ||
49 | #define TRUE ((int) 1) | ||
50 | #define SKIP ((int) 2) | ||
51 | |||
52 | /* for mtab.c */ | ||
53 | #define MTAB_GETMOUNTPT '1' | ||
54 | #define MTAB_GETDEVICE '2' | ||
55 | |||
56 | #define BUF_SIZE 8192 | ||
57 | #define EXPAND_ALLOC 1024 | ||
58 | |||
59 | static inline int is_decimal(ch) { return ((ch >= '0') && (ch <= '9')); } | ||
60 | static inline int is_octal(ch) { return ((ch >= '0') && (ch <= '7')); } | ||
61 | |||
62 | /* Macros for min/max. */ | ||
63 | #ifndef MIN | ||
64 | #define MIN(a,b) (((a)<(b))?(a):(b)) | ||
65 | #endif | ||
66 | |||
67 | #ifndef MAX | ||
68 | #define MAX(a,b) (((a)>(b))?(a):(b)) | ||
69 | #endif | ||
70 | |||
71 | |||
72 | enum Location { | 47 | enum Location { |
73 | _BB_DIR_ROOT = 0, | 48 | _BB_DIR_ROOT = 0, |
74 | _BB_DIR_BIN, | 49 | _BB_DIR_BIN, |
@@ -97,146 +72,14 @@ extern const struct BB_applet applets[]; | |||
97 | 72 | ||
98 | extern const char *applet_name; | 73 | extern const char *applet_name; |
99 | 74 | ||
100 | extern void show_usage(void) __attribute__ ((noreturn)); | 75 | #ifdef BB_FEATURE_BUFFERS_GO_ON_STACK |
101 | extern void error_msg(const char *s, ...); | 76 | #define RESERVE_BB_BUFFER(buffer,len) char buffer[len] |
102 | extern void error_msg_and_die(const char *s, ...) __attribute__ ((noreturn)); | 77 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char buffer[len] |
103 | extern void perror_msg(const char *s, ...); | 78 | #else |
104 | extern void perror_msg_and_die(const char *s, ...) __attribute__ ((noreturn)); | 79 | #define RESERVE_BB_BUFFER(buffer,len) char *buffer=xmalloc(len) |
105 | 80 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len) | |
106 | const char *mode_string(int mode); | ||
107 | const char *time_string(time_t timeVal); | ||
108 | int is_directory(const char *name, const int followLinks, struct stat *statBuf); | ||
109 | int isDevice(const char *name); | ||
110 | |||
111 | typedef struct ino_dev_hash_bucket_struct { | ||
112 | struct ino_dev_hash_bucket_struct *next; | ||
113 | ino_t ino; | ||
114 | dev_t dev; | ||
115 | char name[1]; | ||
116 | } ino_dev_hashtable_bucket_t; | ||
117 | int is_in_ino_dev_hashtable(const struct stat *statbuf, char **name); | ||
118 | void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name); | ||
119 | void reset_ino_dev_hashtable(void); | ||
120 | |||
121 | int copy_file(const char *srcName, const char *destName, | ||
122 | int setModes, int followLinks, int forceFlag); | ||
123 | int copy_file_chunk(int srcFd, int dstFd, size_t remaining); | ||
124 | char *buildName(const char *dirName, const char *fileName); | ||
125 | int makeString(int argc, const char **argv, char *buf, int bufLen); | ||
126 | char *getChunk(int size); | ||
127 | char *chunkstrdup(const char *str); | ||
128 | void freeChunks(void); | ||
129 | ssize_t safe_read(int fd, void *buf, size_t count); | ||
130 | int full_write(int fd, const char *buf, int len); | ||
131 | int full_read(int fd, char *buf, int len); | ||
132 | int recursive_action(const char *fileName, int recurse, int followLinks, int depthFirst, | ||
133 | int (*fileAction) (const char *fileName, struct stat* statbuf, void* userData), | ||
134 | int (*dirAction) (const char *fileName, struct stat* statbuf, void* userData), | ||
135 | void* userData); | ||
136 | |||
137 | extern int create_path (const char *name, int mode); | ||
138 | extern int parse_mode( const char* s, mode_t* theMode); | ||
139 | |||
140 | extern int get_kernel_revision(void); | ||
141 | |||
142 | extern int get_console_fd(char* tty_name); | ||
143 | extern struct mntent *find_mount_point(const char *name, const char *table); | ||
144 | extern void write_mtab(char* blockDevice, char* directory, | ||
145 | char* filesystemType, long flags, char* string_flags); | ||
146 | extern void erase_mtab(const char * name); | ||
147 | extern void mtab_read(void); | ||
148 | extern char *mtab_first(void **iter); | ||
149 | extern char *mtab_next(void **iter); | ||
150 | extern char *mtab_getinfo(const char *match, const char which); | ||
151 | extern int check_wildcard_match(const char* text, const char* pattern); | ||
152 | extern long atoi_w_units (const char *cp); | ||
153 | extern pid_t* find_pid_by_name( char* pidName); | ||
154 | extern int find_real_root_device_name(char* name); | ||
155 | extern char *get_line_from_file(FILE *file); | ||
156 | extern void print_file(FILE *file); | ||
157 | extern int print_file_by_name(char *filename); | ||
158 | extern char process_escape_sequence(char **ptr); | ||
159 | extern char *get_last_path_component(char *path); | ||
160 | extern FILE *wfopen(const char *path, const char *mode); | ||
161 | extern FILE *xfopen(const char *path, const char *mode); | ||
162 | extern void chomp(char *s); | ||
163 | extern void trim(char *s); | ||
164 | extern struct BB_applet *find_applet_by_name(const char *name); | ||
165 | void run_applet_by_name(const char *name, int argc, char **argv); | ||
166 | |||
167 | #ifndef DMALLOC | ||
168 | extern void *xmalloc (size_t size); | ||
169 | extern void *xrealloc(void *old, size_t size); | ||
170 | extern void *xcalloc(size_t nmemb, size_t size); | ||
171 | extern char *xstrdup (const char *s); | ||
172 | #endif | ||
173 | extern char *xstrndup (const char *s, int n); | ||
174 | extern char * safe_strncpy(char *dst, const char *src, size_t size); | ||
175 | |||
176 | struct suffix_mult { | ||
177 | char *suffix; | ||
178 | int mult; | ||
179 | }; | ||
180 | |||
181 | extern unsigned long parse_number(const char *numstr, | ||
182 | const struct suffix_mult *suffixes); | ||
183 | |||
184 | |||
185 | /* These parse entries in /etc/passwd and /etc/group. This is desirable | ||
186 | * for BusyBox since we want to avoid using the glibc NSS stuff, which | ||
187 | * increases target size and is often not needed embedded systems. */ | ||
188 | extern long my_getpwnam(const char *name); | ||
189 | extern long my_getgrnam(const char *name); | ||
190 | extern void my_getpwuid(char *name, long uid); | ||
191 | extern void my_getgrgid(char *group, long gid); | ||
192 | extern long my_getpwnamegid(const char *name); | ||
193 | |||
194 | extern int device_open(char *device, int mode); | ||
195 | |||
196 | #if defined BB_FEATURE_MOUNT_LOOP | ||
197 | extern int del_loop(const char *device); | ||
198 | extern int set_loop(const char *device, const char *file, int offset, int *loopro); | ||
199 | extern char *find_unused_loop_device (void); | ||
200 | #endif | ||
201 | |||
202 | |||
203 | #if (__GLIBC__ < 2) && (defined BB_SYSLOGD || defined BB_INIT) | ||
204 | extern int vdprintf(int d, const char *format, va_list ap); | ||
205 | #endif | ||
206 | |||
207 | #if defined BB_NFSMOUNT | ||
208 | int nfsmount(const char *spec, const char *node, int *flags, | ||
209 | char **extra_opts, char **mount_opts, int running_bg); | ||
210 | #endif | ||
211 | |||
212 | #ifndef RB_POWER_OFF | ||
213 | /* Stop system and switch power off if possible. */ | ||
214 | #define RB_POWER_OFF 0x4321fedc | ||
215 | #endif | ||
216 | |||
217 | #if defined(BB_KLOGD) || defined(BB_LOGGER) | ||
218 | void syslog_msg_with_name(const char *name, int facility, int pri, const char *msg); | ||
219 | void syslog_msg(int facility, int pri, const char *msg); | ||
220 | #endif | 81 | #endif |
221 | 82 | ||
222 | /* Include our own copy of struct sysinfo to avoid binary compatability | ||
223 | * problems with Linux 2.4, which changed things. Grumble, grumble. */ | ||
224 | struct sysinfo { | ||
225 | long uptime; /* Seconds since boot */ | ||
226 | unsigned long loads[3]; /* 1, 5, and 15 minute load averages */ | ||
227 | unsigned long totalram; /* Total usable main memory size */ | ||
228 | unsigned long freeram; /* Available memory size */ | ||
229 | unsigned long sharedram; /* Amount of shared memory */ | ||
230 | unsigned long bufferram; /* Memory used by buffers */ | ||
231 | unsigned long totalswap; /* Total swap space size */ | ||
232 | unsigned long freeswap; /* swap space still available */ | ||
233 | unsigned short procs; /* Number of current processes */ | ||
234 | unsigned long totalhigh; /* Total high memory size */ | ||
235 | unsigned long freehigh; /* Available high memory size */ | ||
236 | unsigned int mem_unit; /* Memory unit size in bytes */ | ||
237 | char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ | ||
238 | }; | ||
239 | extern int sysinfo (struct sysinfo* info); | ||
240 | 83 | ||
241 | /* Bit map related macros -- libc5 doens't provide these... sigh. */ | 84 | /* Bit map related macros -- libc5 doens't provide these... sigh. */ |
242 | #ifndef setbit | 85 | #ifndef setbit |
@@ -247,25 +90,15 @@ extern int sysinfo (struct sysinfo* info); | |||
247 | #define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) | 90 | #define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) |
248 | #endif | 91 | #endif |
249 | 92 | ||
250 | #ifdef BB_FEATURE_HUMAN_READABLE | 93 | #ifndef RB_POWER_OFF |
251 | const char *make_human_readable_str(unsigned long val, unsigned long hr); | 94 | /* Stop system and switch power off if possible. */ |
95 | #define RB_POWER_OFF 0x4321fedc | ||
252 | #endif | 96 | #endif |
253 | enum { | ||
254 | KILOBYTE = 1024, | ||
255 | MEGABYTE = (KILOBYTE*1024), | ||
256 | GIGABYTE = (MEGABYTE*1024) | ||
257 | }; | ||
258 | 97 | ||
259 | #ifdef BB_FEATURE_BUFFERS_GO_ON_STACK | ||
260 | #define RESERVE_BB_BUFFER(buffer,len) char buffer[len] | ||
261 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char buffer[len] | ||
262 | #else | ||
263 | #define RESERVE_BB_BUFFER(buffer,len) char *buffer=xmalloc(len) | ||
264 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len) | ||
265 | #endif | ||
266 | 98 | ||
267 | #if defined(BB_FEATURE_RM_INTERACTIVE) && defined(BB_RM) | 99 | /* Pull in the utility routines from libbb */ |
268 | int ask_confirmation(void); | 100 | #include "libbb/libbb.h" |
269 | #endif | 101 | |
102 | |||
270 | 103 | ||
271 | #endif /* _BB_INTERNAL_H_ */ | 104 | #endif /* _BB_INTERNAL_H_ */ |