aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-06-27 02:52:20 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-06-27 02:52:20 +0000
commitdefc1ea34074e7882724c460260d307cdf981a70 (patch)
treefca9b9a5fe243f9c0c76b84824ea2ff92ea8e589 /archival
parent26bc57d8b26425f23f4be974cce7bf35c95c9a1a (diff)
downloadbusybox-w32-defc1ea34074e7882724c460260d307cdf981a70.tar.gz
busybox-w32-defc1ea34074e7882724c460260d307cdf981a70.tar.bz2
busybox-w32-defc1ea34074e7882724c460260d307cdf981a70.zip
*: introduce and use FAST_FUNC: regparm on i386, otherwise no-on
text data bss dec hex filename 808035 611 6868 815514 c719a busybox_old 804472 611 6868 811951 c63af busybox_unstripped
Diffstat (limited to 'archival')
-rw-r--r--archival/ar.c2
-rw-r--r--archival/bbunzip.c2
-rw-r--r--archival/dpkg.c2
-rw-r--r--archival/libunarchive/archive_xread_all_eof.c2
-rw-r--r--archival/libunarchive/data_align.c2
-rw-r--r--archival/libunarchive/data_extract_all.c2
-rw-r--r--archival/libunarchive/data_extract_to_buffer.c2
-rw-r--r--archival/libunarchive/data_extract_to_stdout.c2
-rw-r--r--archival/libunarchive/data_skip.c2
-rw-r--r--archival/libunarchive/decompress_bunzip2.c8
-rw-r--r--archival/libunarchive/decompress_uncompress.c2
-rw-r--r--archival/libunarchive/decompress_unlzma.c2
-rw-r--r--archival/libunarchive/decompress_unzip.c4
-rw-r--r--archival/libunarchive/filter_accept_all.c2
-rw-r--r--archival/libunarchive/filter_accept_list.c2
-rw-r--r--archival/libunarchive/filter_accept_list_reassign.c2
-rw-r--r--archival/libunarchive/filter_accept_reject_list.c2
-rw-r--r--archival/libunarchive/find_list_entry.c4
-rw-r--r--archival/libunarchive/get_header_ar.c2
-rw-r--r--archival/libunarchive/get_header_cpio.c2
-rw-r--r--archival/libunarchive/get_header_tar.c4
-rw-r--r--archival/libunarchive/get_header_tar_bz2.c2
-rw-r--r--archival/libunarchive/get_header_tar_gz.c2
-rw-r--r--archival/libunarchive/get_header_tar_lzma.c2
-rw-r--r--archival/libunarchive/header_list.c2
-rw-r--r--archival/libunarchive/header_skip.c2
-rw-r--r--archival/libunarchive/header_verbose_list.c2
-rw-r--r--archival/libunarchive/init_handle.c2
-rw-r--r--archival/libunarchive/open_transformer.c4
-rw-r--r--archival/libunarchive/seek_by_jump.c2
-rw-r--r--archival/libunarchive/seek_by_read.c2
-rw-r--r--archival/libunarchive/unpack_ar_archive.c2
-rw-r--r--archival/rpm.c2
-rw-r--r--archival/tar.c6
34 files changed, 43 insertions, 43 deletions
diff --git a/archival/ar.c b/archival/ar.c
index 0a95e5c85..ddc12095c 100644
--- a/archival/ar.c
+++ b/archival/ar.c
@@ -16,7 +16,7 @@
16#include "libbb.h" 16#include "libbb.h"
17#include "unarchive.h" 17#include "unarchive.h"
18 18
19static void header_verbose_list_ar(const file_header_t *file_header) 19static void FAST_FUNC header_verbose_list_ar(const file_header_t *file_header)
20{ 20{
21 const char *mode = bb_mode_string(file_header->mode); 21 const char *mode = bb_mode_string(file_header->mode);
22 char *mtime; 22 char *mtime;
diff --git a/archival/bbunzip.c b/archival/bbunzip.c
index 09a4eb9eb..b2e816145 100644
--- a/archival/bbunzip.c
+++ b/archival/bbunzip.c
@@ -28,7 +28,7 @@ int open_to_or_warn(int to_fd, const char *filename, int flags, int mode)
28 return 0; 28 return 0;
29} 29}
30 30
31int bbunpack(char **argv, 31int FAST_FUNC bbunpack(char **argv,
32 char* (*make_new_name)(char *filename), 32 char* (*make_new_name)(char *filename),
33 USE_DESKTOP(long long) int (*unpacker)(void) 33 USE_DESKTOP(long long) int (*unpacker)(void)
34) 34)
diff --git a/archival/dpkg.c b/archival/dpkg.c
index ee5bd7aff..34e5f80e4 100644
--- a/archival/dpkg.c
+++ b/archival/dpkg.c
@@ -1482,7 +1482,7 @@ static char *deb_extract_control_file_to_buffer(archive_handle_t *ar_handle, lli
1482 return ar_handle->sub_archive->buffer; 1482 return ar_handle->sub_archive->buffer;
1483} 1483}
1484 1484
1485static void data_extract_all_prefix(archive_handle_t *archive_handle) 1485static void FAST_FUNC data_extract_all_prefix(archive_handle_t *archive_handle)
1486{ 1486{
1487 char *name_ptr = archive_handle->file_header->name; 1487 char *name_ptr = archive_handle->file_header->name;
1488 1488
diff --git a/archival/libunarchive/archive_xread_all_eof.c b/archival/libunarchive/archive_xread_all_eof.c
index c93dfa282..f11a7fd32 100644
--- a/archival/libunarchive/archive_xread_all_eof.c
+++ b/archival/libunarchive/archive_xread_all_eof.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, 9ssize_t FAST_FUNC archive_xread_all_eof(archive_handle_t *archive_handle,
10 unsigned char *buf, size_t count) 10 unsigned char *buf, size_t count)
11{ 11{
12 ssize_t size; 12 ssize_t size;
diff --git a/archival/libunarchive/data_align.c b/archival/libunarchive/data_align.c
index d98dc5764..9f2e8432f 100644
--- a/archival/libunarchive/data_align.c
+++ b/archival/libunarchive/data_align.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9void data_align(archive_handle_t *archive_handle, unsigned boundary) 9void FAST_FUNC data_align(archive_handle_t *archive_handle, unsigned boundary)
10{ 10{
11 unsigned skip_amount = (boundary - (archive_handle->offset % boundary)) % boundary; 11 unsigned skip_amount = (boundary - (archive_handle->offset % boundary)) % boundary;
12 12
diff --git a/archival/libunarchive/data_extract_all.c b/archival/libunarchive/data_extract_all.c
index 29a224bbc..1b4876799 100644
--- a/archival/libunarchive/data_extract_all.c
+++ b/archival/libunarchive/data_extract_all.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9void data_extract_all(archive_handle_t *archive_handle) 9void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
10{ 10{
11 file_header_t *file_header = archive_handle->file_header; 11 file_header_t *file_header = archive_handle->file_header;
12 int dst_fd; 12 int dst_fd;
diff --git a/archival/libunarchive/data_extract_to_buffer.c b/archival/libunarchive/data_extract_to_buffer.c
index d8fcdf3d3..1d74e0335 100644
--- a/archival/libunarchive/data_extract_to_buffer.c
+++ b/archival/libunarchive/data_extract_to_buffer.c
@@ -8,7 +8,7 @@
8#include "libbb.h" 8#include "libbb.h"
9#include "unarchive.h" 9#include "unarchive.h"
10 10
11void data_extract_to_buffer(archive_handle_t *archive_handle) 11void FAST_FUNC data_extract_to_buffer(archive_handle_t *archive_handle)
12{ 12{
13 unsigned int size = archive_handle->file_header->size; 13 unsigned int size = archive_handle->file_header->size;
14 14
diff --git a/archival/libunarchive/data_extract_to_stdout.c b/archival/libunarchive/data_extract_to_stdout.c
index c8895ed65..a3efea16d 100644
--- a/archival/libunarchive/data_extract_to_stdout.c
+++ b/archival/libunarchive/data_extract_to_stdout.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9void data_extract_to_stdout(archive_handle_t *archive_handle) 9void FAST_FUNC data_extract_to_stdout(archive_handle_t *archive_handle)
10{ 10{
11 bb_copyfd_exact_size(archive_handle->src_fd, 11 bb_copyfd_exact_size(archive_handle->src_fd,
12 STDOUT_FILENO, 12 STDOUT_FILENO,
diff --git a/archival/libunarchive/data_skip.c b/archival/libunarchive/data_skip.c
index d9778da2e..438750fe5 100644
--- a/archival/libunarchive/data_skip.c
+++ b/archival/libunarchive/data_skip.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9void data_skip(archive_handle_t *archive_handle) 9void FAST_FUNC data_skip(archive_handle_t *archive_handle)
10{ 10{
11 archive_handle->seek(archive_handle, archive_handle->file_header->size); 11 archive_handle->seek(archive_handle, archive_handle->file_header->size);
12} 12}
diff --git a/archival/libunarchive/decompress_bunzip2.c b/archival/libunarchive/decompress_bunzip2.c
index f5050449a..106a08b54 100644
--- a/archival/libunarchive/decompress_bunzip2.c
+++ b/archival/libunarchive/decompress_bunzip2.c
@@ -526,7 +526,7 @@ static int get_next_block(bunzip_data *bd)
526 are ignored, data is written to out_fd and return is RETVAL_OK or error. 526 are ignored, data is written to out_fd and return is RETVAL_OK or error.
527*/ 527*/
528 528
529int read_bunzip(bunzip_data *bd, char *outbuf, int len) 529int FAST_FUNC read_bunzip(bunzip_data *bd, char *outbuf, int len)
530{ 530{
531 const unsigned *dbuf; 531 const unsigned *dbuf;
532 int pos, current, previous, gotcount; 532 int pos, current, previous, gotcount;
@@ -643,7 +643,7 @@ int read_bunzip(bunzip_data *bd, char *outbuf, int len)
643 should work for NOFORK applets too, we must be extremely careful to not leak 643 should work for NOFORK applets too, we must be extremely careful to not leak
644 any allocations! */ 644 any allocations! */
645 645
646int start_bunzip(bunzip_data **bdp, int in_fd, const unsigned char *inbuf, 646int FAST_FUNC start_bunzip(bunzip_data **bdp, int in_fd, const unsigned char *inbuf,
647 int len) 647 int len)
648{ 648{
649 bunzip_data *bd; 649 bunzip_data *bd;
@@ -699,7 +699,7 @@ int start_bunzip(bunzip_data **bdp, int in_fd, const unsigned char *inbuf,
699 return RETVAL_OK; 699 return RETVAL_OK;
700} 700}
701 701
702void dealloc_bunzip(bunzip_data *bd) 702void FAST_FUNC dealloc_bunzip(bunzip_data *bd)
703{ 703{
704 free(bd->dbuf); 704 free(bd->dbuf);
705 free(bd); 705 free(bd);
@@ -708,7 +708,7 @@ void dealloc_bunzip(bunzip_data *bd)
708 708
709/* Decompress src_fd to dst_fd. Stops at end of bzip data, not end of file. */ 709/* Decompress src_fd to dst_fd. Stops at end of bzip data, not end of file. */
710 710
711USE_DESKTOP(long long) int 711USE_DESKTOP(long long) int FAST_FUNC
712unpack_bz2_stream(int src_fd, int dst_fd) 712unpack_bz2_stream(int src_fd, int dst_fd)
713{ 713{
714 USE_DESKTOP(long long total_written = 0;) 714 USE_DESKTOP(long long total_written = 0;)
diff --git a/archival/libunarchive/decompress_uncompress.c b/archival/libunarchive/decompress_uncompress.c
index 8c3c65d1a..161570040 100644
--- a/archival/libunarchive/decompress_uncompress.c
+++ b/archival/libunarchive/decompress_uncompress.c
@@ -70,7 +70,7 @@
70 * be stored in the compressed file. 70 * be stored in the compressed file.
71 */ 71 */
72 72
73USE_DESKTOP(long long) int 73USE_DESKTOP(long long) int FAST_FUNC
74uncompress(int fd_in, int fd_out) 74uncompress(int fd_in, int fd_out)
75{ 75{
76 USE_DESKTOP(long long total_written = 0;) 76 USE_DESKTOP(long long total_written = 0;)
diff --git a/archival/libunarchive/decompress_unlzma.c b/archival/libunarchive/decompress_unlzma.c
index c32040075..79df70179 100644
--- a/archival/libunarchive/decompress_unlzma.c
+++ b/archival/libunarchive/decompress_unlzma.c
@@ -229,7 +229,7 @@ enum {
229}; 229};
230 230
231 231
232USE_DESKTOP(long long) int 232USE_DESKTOP(long long) int FAST_FUNC
233unpack_lzma_stream(int src_fd, int dst_fd) 233unpack_lzma_stream(int src_fd, int dst_fd)
234{ 234{
235 USE_DESKTOP(long long total_written = 0;) 235 USE_DESKTOP(long long total_written = 0;)
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c
index 9036fabf2..3b0ca846a 100644
--- a/archival/libunarchive/decompress_unzip.c
+++ b/archival/libunarchive/decompress_unzip.c
@@ -1033,7 +1033,7 @@ inflate_unzip_internal(STATE_PARAM int in, int out)
1033 1033
1034/* For unzip */ 1034/* For unzip */
1035 1035
1036USE_DESKTOP(long long) int 1036USE_DESKTOP(long long) int FAST_FUNC
1037inflate_unzip(inflate_unzip_result *res, off_t compr_size, int in, int out) 1037inflate_unzip(inflate_unzip_result *res, off_t compr_size, int in, int out)
1038{ 1038{
1039 USE_DESKTOP(long long) int n; 1039 USE_DESKTOP(long long) int n;
@@ -1176,7 +1176,7 @@ static int check_header_gzip(STATE_PARAM_ONLY)
1176 return 1; 1176 return 1;
1177} 1177}
1178 1178
1179USE_DESKTOP(long long) int 1179USE_DESKTOP(long long) int FAST_FUNC
1180unpack_gz_stream(int in, int out) 1180unpack_gz_stream(int in, int out)
1181{ 1181{
1182 uint32_t v32; 1182 uint32_t v32;
diff --git a/archival/libunarchive/filter_accept_all.c b/archival/libunarchive/filter_accept_all.c
index 47d771e43..21f9c5c9e 100644
--- a/archival/libunarchive/filter_accept_all.c
+++ b/archival/libunarchive/filter_accept_all.c
@@ -9,7 +9,7 @@
9#include "unarchive.h" 9#include "unarchive.h"
10 10
11/* Accept any non-null name, its not really a filter at all */ 11/* Accept any non-null name, its not really a filter at all */
12char filter_accept_all(archive_handle_t *archive_handle) 12char FAST_FUNC filter_accept_all(archive_handle_t *archive_handle)
13{ 13{
14 if (archive_handle->file_header->name) 14 if (archive_handle->file_header->name)
15 return EXIT_SUCCESS; 15 return EXIT_SUCCESS;
diff --git a/archival/libunarchive/filter_accept_list.c b/archival/libunarchive/filter_accept_list.c
index 6e571ad4e..afa0b4cbf 100644
--- a/archival/libunarchive/filter_accept_list.c
+++ b/archival/libunarchive/filter_accept_list.c
@@ -11,7 +11,7 @@
11/* 11/*
12 * Accept names that are in the accept list, ignoring reject list. 12 * Accept names that are in the accept list, ignoring reject list.
13 */ 13 */
14char filter_accept_list(archive_handle_t *archive_handle) 14char FAST_FUNC filter_accept_list(archive_handle_t *archive_handle)
15{ 15{
16 if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) 16 if (find_list_entry(archive_handle->accept, archive_handle->file_header->name))
17 return EXIT_SUCCESS; 17 return EXIT_SUCCESS;
diff --git a/archival/libunarchive/filter_accept_list_reassign.c b/archival/libunarchive/filter_accept_list_reassign.c
index 969dd1e3e..4f2d4cde5 100644
--- a/archival/libunarchive/filter_accept_list_reassign.c
+++ b/archival/libunarchive/filter_accept_list_reassign.c
@@ -13,7 +13,7 @@
13 * e.g. if its a .tar.gz modify archive_handle->sub_archive to process a .tar.gz 13 * e.g. if its a .tar.gz modify archive_handle->sub_archive to process a .tar.gz
14 * or if its a .tar.bz2 make archive_handle->sub_archive handle that 14 * or if its a .tar.bz2 make archive_handle->sub_archive handle that
15 */ 15 */
16char filter_accept_list_reassign(archive_handle_t *archive_handle) 16char FAST_FUNC filter_accept_list_reassign(archive_handle_t *archive_handle)
17{ 17{
18 /* Check the file entry is in the accept list */ 18 /* Check the file entry is in the accept list */
19 if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) { 19 if (find_list_entry(archive_handle->accept, archive_handle->file_header->name)) {
diff --git a/archival/libunarchive/filter_accept_reject_list.c b/archival/libunarchive/filter_accept_reject_list.c
index 439ba20ca..aa601e137 100644
--- a/archival/libunarchive/filter_accept_reject_list.c
+++ b/archival/libunarchive/filter_accept_reject_list.c
@@ -11,7 +11,7 @@
11/* 11/*
12 * Accept names that are in the accept list and not in the reject list 12 * Accept names that are in the accept list and not in the reject list
13 */ 13 */
14char filter_accept_reject_list(archive_handle_t *archive_handle) 14char FAST_FUNC filter_accept_reject_list(archive_handle_t *archive_handle)
15{ 15{
16 const char *key; 16 const char *key;
17 const llist_t *reject_entry; 17 const llist_t *reject_entry;
diff --git a/archival/libunarchive/find_list_entry.c b/archival/libunarchive/find_list_entry.c
index 754058953..bc7bc6471 100644
--- a/archival/libunarchive/find_list_entry.c
+++ b/archival/libunarchive/find_list_entry.c
@@ -10,7 +10,7 @@
10#include "unarchive.h" 10#include "unarchive.h"
11 11
12/* Find a string in a shell pattern list */ 12/* Find a string in a shell pattern list */
13const llist_t *find_list_entry(const llist_t *list, const char *filename) 13const llist_t* FAST_FUNC find_list_entry(const llist_t *list, const char *filename)
14{ 14{
15 while (list) { 15 while (list) {
16 if (fnmatch(list->data, filename, 0) == 0) { 16 if (fnmatch(list->data, filename, 0) == 0) {
@@ -24,7 +24,7 @@ const llist_t *find_list_entry(const llist_t *list, const char *filename)
24/* Same, but compares only path components present in pattern 24/* Same, but compares only path components present in pattern
25 * (extra trailing path components in filename are assumed to match) 25 * (extra trailing path components in filename are assumed to match)
26 */ 26 */
27const llist_t *find_list_entry2(const llist_t *list, const char *filename) 27const llist_t* FAST_FUNC find_list_entry2(const llist_t *list, const char *filename)
28{ 28{
29 char buf[PATH_MAX]; 29 char buf[PATH_MAX];
30 int pattern_slash_cnt; 30 int pattern_slash_cnt;
diff --git a/archival/libunarchive/get_header_ar.c b/archival/libunarchive/get_header_ar.c
index 88c0220ad..05222992d 100644
--- a/archival/libunarchive/get_header_ar.c
+++ b/archival/libunarchive/get_header_ar.c
@@ -7,7 +7,7 @@
7#include "libbb.h" 7#include "libbb.h"
8#include "unarchive.h" 8#include "unarchive.h"
9 9
10char get_header_ar(archive_handle_t *archive_handle) 10char FAST_FUNC get_header_ar(archive_handle_t *archive_handle)
11{ 11{
12 int err; 12 int err;
13 file_header_t *typed = archive_handle->file_header; 13 file_header_t *typed = archive_handle->file_header;
diff --git a/archival/libunarchive/get_header_cpio.c b/archival/libunarchive/get_header_cpio.c
index b97b53b20..4ed18c68f 100644
--- a/archival/libunarchive/get_header_cpio.c
+++ b/archival/libunarchive/get_header_cpio.c
@@ -17,7 +17,7 @@ typedef struct hardlinks_s {
17 char name[1]; 17 char name[1];
18} hardlinks_t; 18} hardlinks_t;
19 19
20char get_header_cpio(archive_handle_t *archive_handle) 20char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle)
21{ 21{
22 static hardlinks_t *saved_hardlinks = NULL; 22 static hardlinks_t *saved_hardlinks = NULL;
23 static hardlinks_t *saved_hardlinks_created = NULL; 23 static hardlinks_t *saved_hardlinks_created = NULL;
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c
index 187552c28..a0a53c908 100644
--- a/archival/libunarchive/get_header_tar.c
+++ b/archival/libunarchive/get_header_tar.c
@@ -43,7 +43,7 @@ static unsigned long long getOctal(char *str, int len)
43#define GET_OCTAL(a) getOctal((a), sizeof(a)) 43#define GET_OCTAL(a) getOctal((a), sizeof(a))
44 44
45void BUG_tar_header_size(void); 45void BUG_tar_header_size(void);
46char get_header_tar(archive_handle_t *archive_handle) 46char FAST_FUNC get_header_tar(archive_handle_t *archive_handle)
47{ 47{
48 static smallint end; 48 static smallint end;
49#if ENABLE_FEATURE_TAR_AUTODETECT 49#if ENABLE_FEATURE_TAR_AUTODETECT
@@ -133,7 +133,7 @@ char get_header_tar(archive_handle_t *archive_handle)
133 || memcmp(tar.magic, "\0\0\0\0", 5) != 0) 133 || memcmp(tar.magic, "\0\0\0\0", 5) != 0)
134 ) { 134 ) {
135#if ENABLE_FEATURE_TAR_AUTODETECT 135#if ENABLE_FEATURE_TAR_AUTODETECT
136 char (*get_header_ptr)(archive_handle_t *); 136 char FAST_FUNC (*get_header_ptr)(archive_handle_t *);
137 137
138 /* tar gz/bz autodetect: check for gz/bz2 magic. 138 /* tar gz/bz autodetect: check for gz/bz2 magic.
139 * If it is the very first block, and we see the magic, 139 * If it is the very first block, and we see the magic,
diff --git a/archival/libunarchive/get_header_tar_bz2.c b/archival/libunarchive/get_header_tar_bz2.c
index c2cbaff5f..cfdc016d6 100644
--- a/archival/libunarchive/get_header_tar_bz2.c
+++ b/archival/libunarchive/get_header_tar_bz2.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9char get_header_tar_bz2(archive_handle_t *archive_handle) 9char FAST_FUNC get_header_tar_bz2(archive_handle_t *archive_handle)
10{ 10{
11 /* Can't lseek over pipes */ 11 /* Can't lseek over pipes */
12 archive_handle->seek = seek_by_read; 12 archive_handle->seek = seek_by_read;
diff --git a/archival/libunarchive/get_header_tar_gz.c b/archival/libunarchive/get_header_tar_gz.c
index 9772e33fb..33c62729e 100644
--- a/archival/libunarchive/get_header_tar_gz.c
+++ b/archival/libunarchive/get_header_tar_gz.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9char get_header_tar_gz(archive_handle_t *archive_handle) 9char FAST_FUNC get_header_tar_gz(archive_handle_t *archive_handle)
10{ 10{
11#if BB_MMU 11#if BB_MMU
12 unsigned char magic[2]; 12 unsigned char magic[2];
diff --git a/archival/libunarchive/get_header_tar_lzma.c b/archival/libunarchive/get_header_tar_lzma.c
index c859dcc58..4ae125f4a 100644
--- a/archival/libunarchive/get_header_tar_lzma.c
+++ b/archival/libunarchive/get_header_tar_lzma.c
@@ -9,7 +9,7 @@
9#include "libbb.h" 9#include "libbb.h"
10#include "unarchive.h" 10#include "unarchive.h"
11 11
12char get_header_tar_lzma(archive_handle_t * archive_handle) 12char FAST_FUNC get_header_tar_lzma(archive_handle_t * archive_handle)
13{ 13{
14 /* Can't lseek over pipes */ 14 /* Can't lseek over pipes */
15 archive_handle->seek = seek_by_read; 15 archive_handle->seek = seek_by_read;
diff --git a/archival/libunarchive/header_list.c b/archival/libunarchive/header_list.c
index 8cb8f40d9..6ec2df363 100644
--- a/archival/libunarchive/header_list.c
+++ b/archival/libunarchive/header_list.c
@@ -5,7 +5,7 @@
5#include "libbb.h" 5#include "libbb.h"
6#include "unarchive.h" 6#include "unarchive.h"
7 7
8void header_list(const file_header_t *file_header) 8void FAST_FUNC header_list(const file_header_t *file_header)
9{ 9{
10 puts(file_header->name); 10 puts(file_header->name);
11} 11}
diff --git a/archival/libunarchive/header_skip.c b/archival/libunarchive/header_skip.c
index ef2172bb3..ba4c0ab4b 100644
--- a/archival/libunarchive/header_skip.c
+++ b/archival/libunarchive/header_skip.c
@@ -5,6 +5,6 @@
5#include "libbb.h" 5#include "libbb.h"
6#include "unarchive.h" 6#include "unarchive.h"
7 7
8void header_skip(const file_header_t *file_header ATTRIBUTE_UNUSED) 8void FAST_FUNC header_skip(const file_header_t *file_header ATTRIBUTE_UNUSED)
9{ 9{
10} 10}
diff --git a/archival/libunarchive/header_verbose_list.c b/archival/libunarchive/header_verbose_list.c
index ea623ed85..f059dd981 100644
--- a/archival/libunarchive/header_verbose_list.c
+++ b/archival/libunarchive/header_verbose_list.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9void header_verbose_list(const file_header_t *file_header) 9void FAST_FUNC header_verbose_list(const file_header_t *file_header)
10{ 10{
11 struct tm *mtime = localtime(&(file_header->mtime)); 11 struct tm *mtime = localtime(&(file_header->mtime));
12 12
diff --git a/archival/libunarchive/init_handle.c b/archival/libunarchive/init_handle.c
index 309d329ea..ff7d484e5 100644
--- a/archival/libunarchive/init_handle.c
+++ b/archival/libunarchive/init_handle.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9archive_handle_t *init_handle(void) 9archive_handle_t* FAST_FUNC init_handle(void)
10{ 10{
11 archive_handle_t *archive_handle; 11 archive_handle_t *archive_handle;
12 12
diff --git a/archival/libunarchive/open_transformer.c b/archival/libunarchive/open_transformer.c
index 86415c749..a6bc62321 100644
--- a/archival/libunarchive/open_transformer.c
+++ b/archival/libunarchive/open_transformer.c
@@ -11,8 +11,8 @@
11 * On MMU machine, the transform_prog is removed by macro magic 11 * On MMU machine, the transform_prog is removed by macro magic
12 * in include/unarchive.h. On NOMMU, transformer is removed. 12 * in include/unarchive.h. On NOMMU, transformer is removed.
13 */ 13 */
14int open_transformer(int src_fd, 14int FAST_FUNC open_transformer(int src_fd,
15 USE_DESKTOP(long long) int (*transformer)(int src_fd, int dst_fd), 15 USE_DESKTOP(long long) int FAST_FUNC (*transformer)(int src_fd, int dst_fd),
16 const char *transform_prog) 16 const char *transform_prog)
17{ 17{
18 struct fd_pair fd_pipe; 18 struct fd_pair fd_pipe;
diff --git a/archival/libunarchive/seek_by_jump.c b/archival/libunarchive/seek_by_jump.c
index 5288c1d73..031598e7a 100644
--- a/archival/libunarchive/seek_by_jump.c
+++ b/archival/libunarchive/seek_by_jump.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9void seek_by_jump(const archive_handle_t *archive_handle, unsigned amount) 9void FAST_FUNC seek_by_jump(const archive_handle_t *archive_handle, unsigned amount)
10{ 10{
11 if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) { 11 if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) {
12 if (errno == ESPIPE) 12 if (errno == ESPIPE)
diff --git a/archival/libunarchive/seek_by_read.c b/archival/libunarchive/seek_by_read.c
index 1f2b80571..2326a7512 100644
--- a/archival/libunarchive/seek_by_read.c
+++ b/archival/libunarchive/seek_by_read.c
@@ -9,7 +9,7 @@
9/* If we are reading through a pipe, or from stdin then we can't lseek, 9/* If we are reading through a pipe, or from stdin then we can't lseek,
10 * we must read and discard the data to skip over it. 10 * we must read and discard the data to skip over it.
11 */ 11 */
12void seek_by_read(const archive_handle_t *archive_handle, unsigned jump_size) 12void FAST_FUNC seek_by_read(const archive_handle_t *archive_handle, unsigned jump_size)
13{ 13{
14 if (jump_size) 14 if (jump_size)
15 bb_copyfd_exact_size(archive_handle->src_fd, -1, jump_size); 15 bb_copyfd_exact_size(archive_handle->src_fd, -1, jump_size);
diff --git a/archival/libunarchive/unpack_ar_archive.c b/archival/libunarchive/unpack_ar_archive.c
index fc1820b97..9c2f68b14 100644
--- a/archival/libunarchive/unpack_ar_archive.c
+++ b/archival/libunarchive/unpack_ar_archive.c
@@ -6,7 +6,7 @@
6#include "libbb.h" 6#include "libbb.h"
7#include "unarchive.h" 7#include "unarchive.h"
8 8
9void unpack_ar_archive(archive_handle_t *ar_archive) 9void FAST_FUNC unpack_ar_archive(archive_handle_t *ar_archive)
10{ 10{
11 char magic[7]; 11 char magic[7];
12 12
diff --git a/archival/rpm.c b/archival/rpm.c
index 41b8c81b2..3d03dbcce 100644
--- a/archival/rpm.c
+++ b/archival/rpm.c
@@ -190,7 +190,7 @@ static void extract_cpio_gz(int fd)
190 archive_handle_t *archive_handle; 190 archive_handle_t *archive_handle;
191 unsigned char magic[2]; 191 unsigned char magic[2];
192#if BB_MMU 192#if BB_MMU
193 USE_DESKTOP(long long) int (*xformer)(int src_fd, int dst_fd); 193 USE_DESKTOP(long long) int FAST_FUNC (*xformer)(int src_fd, int dst_fd);
194 enum { xformer_prog = 0 }; 194 enum { xformer_prog = 0 };
195#else 195#else
196 enum { xformer = 0 }; 196 enum { xformer = 0 };
diff --git a/archival/tar.c b/archival/tar.c
index 0162e0623..2a140184c 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -396,7 +396,7 @@ static int exclude_file(const llist_t *excluded_files, const char *file)
396#define exclude_file(excluded_files, file) 0 396#define exclude_file(excluded_files, file) 0
397#endif 397#endif
398 398
399static int writeFileToTarball(const char *fileName, struct stat *statbuf, 399static int FAST_FUNC writeFileToTarball(const char *fileName, struct stat *statbuf,
400 void *userData, int depth ATTRIBUTE_UNUSED) 400 void *userData, int depth ATTRIBUTE_UNUSED)
401{ 401{
402 struct TarBallInfo *tbInfo = (struct TarBallInfo *) userData; 402 struct TarBallInfo *tbInfo = (struct TarBallInfo *) userData;
@@ -680,7 +680,7 @@ static llist_t *append_file_list_to_list(llist_t *list)
680#endif 680#endif
681 681
682#if ENABLE_FEATURE_TAR_COMPRESS 682#if ENABLE_FEATURE_TAR_COMPRESS
683static char get_header_tar_Z(archive_handle_t *archive_handle) 683static char FAST_FUNC get_header_tar_Z(archive_handle_t *archive_handle)
684{ 684{
685 /* Can't lseek over pipes */ 685 /* Can't lseek over pipes */
686 archive_handle->seek = seek_by_read; 686 archive_handle->seek = seek_by_read;
@@ -802,7 +802,7 @@ static const char tar_longopts[] ALIGN1 =
802int tar_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 802int tar_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
803int tar_main(int argc ATTRIBUTE_UNUSED, char **argv) 803int tar_main(int argc ATTRIBUTE_UNUSED, char **argv)
804{ 804{
805 char (*get_header_ptr)(archive_handle_t *) = get_header_tar; 805 char FAST_FUNC (*get_header_ptr)(archive_handle_t *) = get_header_tar;
806 archive_handle_t *tar_handle; 806 archive_handle_t *tar_handle;
807 char *base_dir = NULL; 807 char *base_dir = NULL;
808 const char *tar_filename = "-"; 808 const char *tar_filename = "-";