1 /* vi: set sw=4 ts=4: */
3 * Busybox main internal header file
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 #include <sys/types.h>
33 #define FALSE ((int) 0)
37 #define TRUE ((int) 1)
40 extern void error_msg(const char *s
, ...) __attribute__ ((format (printf
, 1, 2)));
41 extern void error_msg_and_die(const char *s
, ...) __attribute__ ((noreturn
, format (printf
, 1, 2)));
42 extern void perror_msg(const char *s
, ...);
43 extern void perror_msg_and_die(const char *s
, ...) __attribute__ ((noreturn
));
44 extern void archive_xread_all(int fd
, char *buf
, size_t count
);
46 /* These two are used internally -- you shouldn't need to use them */
47 extern void verror_msg(const char *s
, va_list p
);
48 extern void vperror_msg(const char *s
, va_list p
);
50 const char *mode_string(int mode
);
51 const char *time_string(time_t timeVal
);
53 int copy_file(const char *source
, const char *dest
, int flags
);
54 int copy_file_chunk(FILE *src_file
, FILE *dst_file
, unsigned long long chunksize
);
55 ssize_t
safe_read(int fd
, void *buf
, size_t count
);
56 ssize_t
full_read(int fd
, char *buf
, int len
);
58 extern int parse_mode( const char* s
, mode_t
* theMode
);
60 extern FILE *wfopen(const char *path
, const char *mode
);
61 extern FILE *xfopen(const char *path
, const char *mode
);
63 extern void *xmalloc (size_t size
);
64 extern void *xrealloc(void *old
, size_t size
);
65 extern void *xcalloc(size_t nmemb
, size_t size
);
66 extern char *xstrdup (const char *s
);
67 extern char *xstrndup (const char *s
, int n
);
68 extern char *safe_strncpy(char *dst
, const char *src
, size_t size
);
70 char *xreadlink(const char *path
);
71 char *concat_path_file(const char *path
, const char *filename
);
72 char *last_char_is(const char *s
, int c
);
74 typedef struct file_headers_s
{
85 enum extract_functions_e
{
86 extract_verbose_list
= 1,
88 extract_one_to_buffer
= 4,
89 extract_to_stream
= 8,
90 extract_all_to_fs
= 16,
91 extract_preserve_date
= 32,
92 extract_data_tar_gz
= 64,
93 extract_control_tar_gz
= 128,
94 extract_unzip_only
= 256,
95 extract_unconditional
= 512,
96 extract_create_leading_dirs
= 1024,
98 extract_exclude_list
= 4096
101 char *deb_extract(const char *package_filename
, FILE *out_stream
,
102 const int extract_function
, const char *prefix
,
103 const char *filename
, int *err
);
105 extern int unzip(FILE *l_in_file
, FILE *l_out_file
);
106 extern int gz_close(int gunzip_pid
);
107 extern FILE *gz_open(FILE *compressed_file
, int *pid
);
109 int make_directory (const char *path
, long mode
, int flags
);
112 FILEUTILS_PRESERVE_STATUS
= 1,
113 FILEUTILS_PRESERVE_SYMLINKS
= 2,
118 extern const char *applet_name
;
119 extern const char * const memory_exhausted
;
121 #endif /* __LIBBB_H__ */