diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-06-05 12:06:05 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-06-05 12:06:05 +0200 |
commit | d5f1b1bbe0a881f66b6bb6951fa54e553002c24d (patch) | |
tree | a3da20d19fa86c77e63c08f01d052b196cb1b192 | |
parent | 8507e1f10927bc6498cf38eb8324a53bde8e0a61 (diff) | |
download | busybox-w32-d5f1b1bbe0a881f66b6bb6951fa54e553002c24d.tar.gz busybox-w32-d5f1b1bbe0a881f66b6bb6951fa54e553002c24d.tar.bz2 busybox-w32-d5f1b1bbe0a881f66b6bb6951fa54e553002c24d.zip |
*: add FAST_FUNC to function ptrs where it makes sense
function old new delta
evalcommand 1195 1209 +14
testcmd - 10 +10
printfcmd - 10 +10
echocmd - 10 +10
func_exec 270 276 +6
echo_dg 104 109 +5
store_nlmsg 85 89 +4
pseudo_exec_argv 195 198 +3
dotcmd 287 290 +3
machtime_stream 29 31 +2
discard_stream 24 26 +2
argstr 1299 1301 +2
killcmd 108 109 +1
evalfor 226 227 +1
daytime_stream 43 44 +1
run_list 2544 2543 -1
lookupvar 62 61 -1
ipaddr_modify 1310 1309 -1
...
parse_stream 2254 2245 -9
evalpipe 356 347 -9
collect_if 210 197 -13
read_opt 869 851 -18
handle_dollar 681 658 -23
print_addrinfo 1342 1303 -39
iterate_on_dir 156 59 -97
print_route 1709 1609 -100
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 12/130 up/down: 74/-767) Total: -693 bytes
text data bss dec hex filename
841748 467 7872 850087 cf8a7 busybox_old
841061 467 7872 849400 cf5f8 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | e2fsprogs/chattr.c | 2 | ||||
-rw-r--r-- | e2fsprogs/e2fs_lib.c | 21 | ||||
-rw-r--r-- | e2fsprogs/e2fs_lib.h | 2 | ||||
-rw-r--r-- | e2fsprogs/lsattr.c | 5 | ||||
-rw-r--r-- | findutils/find.c | 15 | ||||
-rw-r--r-- | miscutils/devfsd.c | 25 | ||||
-rw-r--r-- | modutils/modutils-24.c | 117 | ||||
-rw-r--r-- | networking/ifupdown.c | 51 | ||||
-rw-r--r-- | networking/inetd.c | 44 | ||||
-rw-r--r-- | networking/libiproute/ipaddress.c | 7 | ||||
-rw-r--r-- | networking/libiproute/iproute.c | 2 | ||||
-rw-r--r-- | networking/libiproute/iprule.c | 2 | ||||
-rw-r--r-- | networking/libiproute/libnetlink.c | 12 | ||||
-rw-r--r-- | networking/libiproute/libnetlink.h | 10 | ||||
-rw-r--r-- | networking/libiproute/ll_map.c | 12 | ||||
-rw-r--r-- | networking/libiproute/ll_map.h | 12 | ||||
-rw-r--r-- | networking/udhcp/files.c | 16 | ||||
-rw-r--r-- | procps/nmeter.c | 28 | ||||
-rw-r--r-- | shell/ash.c | 161 | ||||
-rw-r--r-- | shell/hush.c | 120 | ||||
-rw-r--r-- | util-linux/volume_id/sysv.c | 3 | ||||
-rw-r--r-- | util-linux/volume_id/unused_hpfs.c | 3 |
22 files changed, 324 insertions, 346 deletions
diff --git a/e2fsprogs/chattr.c b/e2fsprogs/chattr.c index b41919be2..ab52cb009 100644 --- a/e2fsprogs/chattr.c +++ b/e2fsprogs/chattr.c | |||
@@ -67,7 +67,7 @@ static int decode_arg(const char *arg, struct globals *gp) | |||
67 | 67 | ||
68 | static void change_attributes(const char *name, struct globals *gp); | 68 | static void change_attributes(const char *name, struct globals *gp); |
69 | 69 | ||
70 | static int chattr_dir_proc(const char *dir_name, struct dirent *de, void *gp) | 70 | static int FAST_FUNC chattr_dir_proc(const char *dir_name, struct dirent *de, void *gp) |
71 | { | 71 | { |
72 | char *path = concat_subpath_file(dir_name, de->d_name); | 72 | char *path = concat_subpath_file(dir_name, de->d_name); |
73 | /* path is NULL if de->d_name is "." or "..", else... */ | 73 | /* path is NULL if de->d_name is "." or "..", else... */ |
diff --git a/e2fsprogs/e2fs_lib.c b/e2fsprogs/e2fs_lib.c index 3e8d95687..70ae1f407 100644 --- a/e2fsprogs/e2fs_lib.c +++ b/e2fsprogs/e2fs_lib.c | |||
@@ -28,33 +28,20 @@ static void close_silently(int fd) | |||
28 | 28 | ||
29 | /* Iterate a function on each entry of a directory */ | 29 | /* Iterate a function on each entry of a directory */ |
30 | int iterate_on_dir(const char *dir_name, | 30 | int iterate_on_dir(const char *dir_name, |
31 | int (*func)(const char *, struct dirent *, void *), | 31 | int FAST_FUNC (*func)(const char *, struct dirent *, void *), |
32 | void * private) | 32 | void *private) |
33 | { | 33 | { |
34 | DIR *dir; | 34 | DIR *dir; |
35 | struct dirent *de, *dep; | 35 | struct dirent *de; |
36 | int max_len, len; | ||
37 | |||
38 | max_len = PATH_MAX + sizeof(struct dirent); | ||
39 | de = xmalloc(max_len+1); | ||
40 | memset(de, 0, max_len+1); | ||
41 | 36 | ||
42 | dir = opendir(dir_name); | 37 | dir = opendir(dir_name); |
43 | if (dir == NULL) { | 38 | if (dir == NULL) { |
44 | free(de); | ||
45 | return -1; | 39 | return -1; |
46 | } | 40 | } |
47 | while ((dep = readdir(dir))) { | 41 | while ((de = readdir(dir)) != NULL) { |
48 | len = sizeof(struct dirent); | ||
49 | if (len < dep->d_reclen) | ||
50 | len = dep->d_reclen; | ||
51 | if (len > max_len) | ||
52 | len = max_len; | ||
53 | memcpy(de, dep, len); | ||
54 | func(dir_name, de, private); | 42 | func(dir_name, de, private); |
55 | } | 43 | } |
56 | closedir(dir); | 44 | closedir(dir); |
57 | free(de); | ||
58 | return 0; | 45 | return 0; |
59 | } | 46 | } |
60 | 47 | ||
diff --git a/e2fsprogs/e2fs_lib.h b/e2fsprogs/e2fs_lib.h index 25b26d382..3905ee71d 100644 --- a/e2fsprogs/e2fs_lib.h +++ b/e2fsprogs/e2fs_lib.h | |||
@@ -13,7 +13,7 @@ PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN | |||
13 | 13 | ||
14 | /* Iterate a function on each entry of a directory */ | 14 | /* Iterate a function on each entry of a directory */ |
15 | int iterate_on_dir(const char *dir_name, | 15 | int iterate_on_dir(const char *dir_name, |
16 | int (*func)(const char *, struct dirent *, void *), | 16 | int FAST_FUNC (*func)(const char *, struct dirent *, void *), |
17 | void *private); | 17 | void *private); |
18 | 18 | ||
19 | /* Get/set a file version on an ext2 file system */ | 19 | /* Get/set a file version on an ext2 file system */ |
diff --git a/e2fsprogs/lsattr.c b/e2fsprogs/lsattr.c index 23a54b72e..7d475a969 100644 --- a/e2fsprogs/lsattr.c +++ b/e2fsprogs/lsattr.c | |||
@@ -57,8 +57,9 @@ static void list_attributes(const char *name) | |||
57 | bb_perror_msg("reading %s", name); | 57 | bb_perror_msg("reading %s", name); |
58 | } | 58 | } |
59 | 59 | ||
60 | static int lsattr_dir_proc(const char *dir_name, struct dirent *de, | 60 | static int FAST_FUNC lsattr_dir_proc(const char *dir_name, |
61 | void *private UNUSED_PARAM) | 61 | struct dirent *de, |
62 | void *private UNUSED_PARAM) | ||
62 | { | 63 | { |
63 | struct stat st; | 64 | struct stat st; |
64 | char *path; | 65 | char *path; |
diff --git a/findutils/find.c b/findutils/find.c index da024afbf..5e8193ffa 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -65,7 +65,7 @@ | |||
65 | IF_FEATURE_FIND_XDEV(static dev_t *xdev_dev;) | 65 | IF_FEATURE_FIND_XDEV(static dev_t *xdev_dev;) |
66 | IF_FEATURE_FIND_XDEV(static int xdev_count;) | 66 | IF_FEATURE_FIND_XDEV(static int xdev_count;) |
67 | 67 | ||
68 | typedef int (*action_fp)(const char *fileName, struct stat *statbuf, void *); | 68 | typedef int (*action_fp)(const char *fileName, struct stat *statbuf, void *) FAST_FUNC; |
69 | 69 | ||
70 | typedef struct { | 70 | typedef struct { |
71 | action_fp f; | 71 | action_fp f; |
@@ -73,12 +73,15 @@ typedef struct { | |||
73 | bool invert; | 73 | bool invert; |
74 | #endif | 74 | #endif |
75 | } action; | 75 | } action; |
76 | |||
76 | #define ACTS(name, arg...) typedef struct { action a; arg; } action_##name; | 77 | #define ACTS(name, arg...) typedef struct { action a; arg; } action_##name; |
77 | #define ACTF(name) static int func_##name(const char *fileName UNUSED_PARAM, \ | 78 | #define ACTF(name) \ |
78 | struct stat *statbuf UNUSED_PARAM, \ | 79 | static int FAST_FUNC func_##name(const char *fileName UNUSED_PARAM, \ |
79 | action_##name* ap UNUSED_PARAM) | 80 | struct stat *statbuf UNUSED_PARAM, \ |
80 | ACTS(print) | 81 | action_##name* ap UNUSED_PARAM) |
81 | ACTS(name, const char *pattern; bool iname;) | 82 | |
83 | ACTS(print) | ||
84 | ACTS(name, const char *pattern; bool iname;) | ||
82 | IF_FEATURE_FIND_PATH( ACTS(path, const char *pattern;)) | 85 | IF_FEATURE_FIND_PATH( ACTS(path, const char *pattern;)) |
83 | IF_FEATURE_FIND_REGEX( ACTS(regex, regex_t compiled_pattern;)) | 86 | IF_FEATURE_FIND_REGEX( ACTS(regex, regex_t compiled_pattern;)) |
84 | IF_FEATURE_FIND_PRINT0( ACTS(print0)) | 87 | IF_FEATURE_FIND_PRINT0( ACTS(print0)) |
diff --git a/miscutils/devfsd.c b/miscutils/devfsd.c index 61b97dce4..5e3ee23b3 100644 --- a/miscutils/devfsd.c +++ b/miscutils/devfsd.c | |||
@@ -92,8 +92,8 @@ | |||
92 | #define DEVFS_PATHLEN 1024 | 92 | #define DEVFS_PATHLEN 1024 |
93 | /* Never change this otherwise the binary interface will change */ | 93 | /* Never change this otherwise the binary interface will change */ |
94 | 94 | ||
95 | struct devfsd_notify_struct | 95 | struct devfsd_notify_struct { |
96 | { /* Use native C types to ensure same types in kernel and user space */ | 96 | /* Use native C types to ensure same types in kernel and user space */ |
97 | unsigned int type; /* DEVFSD_NOTIFY_* value */ | 97 | unsigned int type; /* DEVFSD_NOTIFY_* value */ |
98 | unsigned int mode; /* Mode of the inode or device entry */ | 98 | unsigned int mode; /* Mode of the inode or device entry */ |
99 | unsigned int major; /* Major number of device entry */ | 99 | unsigned int major; /* Major number of device entry */ |
@@ -151,32 +151,27 @@ struct devfsd_notify_struct | |||
151 | #define AC_RMNEWCOMPAT 10 | 151 | #define AC_RMNEWCOMPAT 10 |
152 | #define AC_RESTORE 11 | 152 | #define AC_RESTORE 11 |
153 | 153 | ||
154 | struct permissions_type | 154 | struct permissions_type { |
155 | { | ||
156 | mode_t mode; | 155 | mode_t mode; |
157 | uid_t uid; | 156 | uid_t uid; |
158 | gid_t gid; | 157 | gid_t gid; |
159 | }; | 158 | }; |
160 | 159 | ||
161 | struct execute_type | 160 | struct execute_type { |
162 | { | ||
163 | char *argv[MAX_ARGS + 1]; /* argv[0] must always be the programme */ | 161 | char *argv[MAX_ARGS + 1]; /* argv[0] must always be the programme */ |
164 | }; | 162 | }; |
165 | 163 | ||
166 | struct copy_type | 164 | struct copy_type { |
167 | { | ||
168 | const char *source; | 165 | const char *source; |
169 | const char *destination; | 166 | const char *destination; |
170 | }; | 167 | }; |
171 | 168 | ||
172 | struct action_type | 169 | struct action_type { |
173 | { | ||
174 | unsigned int what; | 170 | unsigned int what; |
175 | unsigned int when; | 171 | unsigned int when; |
176 | }; | 172 | }; |
177 | 173 | ||
178 | struct config_entry_struct | 174 | struct config_entry_struct { |
179 | { | ||
180 | struct action_type action; | 175 | struct action_type action; |
181 | regex_t preg; | 176 | regex_t preg; |
182 | union | 177 | union |
@@ -189,8 +184,7 @@ struct config_entry_struct | |||
189 | struct config_entry_struct *next; | 184 | struct config_entry_struct *next; |
190 | }; | 185 | }; |
191 | 186 | ||
192 | struct get_variable_info | 187 | struct get_variable_info { |
193 | { | ||
194 | const struct devfsd_notify_struct *info; | 188 | const struct devfsd_notify_struct *info; |
195 | const char *devname; | 189 | const char *devname; |
196 | char devpath[STRING_LENGTH]; | 190 | char devpath[STRING_LENGTH]; |
@@ -1336,8 +1330,7 @@ static void expand_regexp(char *output, size_t outsize, const char *input, | |||
1336 | 1330 | ||
1337 | /* from compat_name.c */ | 1331 | /* from compat_name.c */ |
1338 | 1332 | ||
1339 | struct translate_struct | 1333 | struct translate_struct { |
1340 | { | ||
1341 | const char *match; /* The string to match to(up to length) */ | 1334 | const char *match; /* The string to match to(up to length) */ |
1342 | const char *format; /* Format of output, "%s" takes data past match string, | 1335 | const char *format; /* Format of output, "%s" takes data past match string, |
1343 | NULL is effectively "%s"(just more efficient) */ | 1336 | NULL is effectively "%s"(just more efficient) */ |
diff --git a/modutils/modutils-24.c b/modutils/modutils-24.c index a16cb1bbe..9f91c9979 100644 --- a/modutils/modutils-24.c +++ b/modutils/modutils-24.c | |||
@@ -511,8 +511,7 @@ int delete_module(const char *module, unsigned int flags); | |||
511 | struct obj_string_patch; | 511 | struct obj_string_patch; |
512 | struct obj_symbol_patch; | 512 | struct obj_symbol_patch; |
513 | 513 | ||
514 | struct obj_section | 514 | struct obj_section { |
515 | { | ||
516 | ElfW(Shdr) header; | 515 | ElfW(Shdr) header; |
517 | const char *name; | 516 | const char *name; |
518 | char *contents; | 517 | char *contents; |
@@ -520,8 +519,7 @@ struct obj_section | |||
520 | int idx; | 519 | int idx; |
521 | }; | 520 | }; |
522 | 521 | ||
523 | struct obj_symbol | 522 | struct obj_symbol { |
524 | { | ||
525 | struct obj_symbol *next; /* hash table link */ | 523 | struct obj_symbol *next; /* hash table link */ |
526 | const char *name; | 524 | const char *name; |
527 | unsigned long value; | 525 | unsigned long value; |
@@ -546,8 +544,8 @@ struct obj_file { | |||
546 | struct obj_section **load_order_search_start; | 544 | struct obj_section **load_order_search_start; |
547 | struct obj_string_patch *string_patches; | 545 | struct obj_string_patch *string_patches; |
548 | struct obj_symbol_patch *symbol_patches; | 546 | struct obj_symbol_patch *symbol_patches; |
549 | int (*symbol_cmp)(const char *, const char *); | 547 | int (*symbol_cmp)(const char *, const char *); /* cant be FAST_FUNC */ |
550 | unsigned long (*symbol_hash)(const char *); | 548 | unsigned long (*symbol_hash)(const char *) FAST_FUNC; |
551 | unsigned long local_symtab_size; | 549 | unsigned long local_symtab_size; |
552 | struct obj_symbol **local_symtab; | 550 | struct obj_symbol **local_symtab; |
553 | struct obj_symbol *symtab[HASH_BUCKETS]; | 551 | struct obj_symbol *symtab[HASH_BUCKETS]; |
@@ -577,45 +575,45 @@ struct obj_symbol_patch { | |||
577 | 575 | ||
578 | /* Generic object manipulation routines. */ | 576 | /* Generic object manipulation routines. */ |
579 | 577 | ||
580 | static unsigned long obj_elf_hash(const char *); | 578 | static unsigned long FAST_FUNC obj_elf_hash(const char *); |
581 | 579 | ||
582 | static unsigned long obj_elf_hash_n(const char *, unsigned long len); | 580 | static unsigned long obj_elf_hash_n(const char *, unsigned long len); |
583 | 581 | ||
584 | static struct obj_symbol *obj_find_symbol(struct obj_file *f, | 582 | static struct obj_symbol *obj_find_symbol(struct obj_file *f, |
585 | const char *name); | 583 | const char *name); |
586 | 584 | ||
587 | static ElfW(Addr) obj_symbol_final_value(struct obj_file *f, | 585 | static ElfW(Addr) obj_symbol_final_value(struct obj_file *f, |
588 | struct obj_symbol *sym); | 586 | struct obj_symbol *sym); |
589 | 587 | ||
590 | #if ENABLE_FEATURE_INSMOD_VERSION_CHECKING | 588 | #if ENABLE_FEATURE_INSMOD_VERSION_CHECKING |
591 | static void obj_set_symbol_compare(struct obj_file *f, | 589 | static void obj_set_symbol_compare(struct obj_file *f, |
592 | int (*cmp)(const char *, const char *), | 590 | int (*cmp)(const char *, const char *), |
593 | unsigned long (*hash)(const char *)); | 591 | unsigned long (*hash)(const char *) FAST_FUNC); |
594 | #endif | 592 | #endif |
595 | 593 | ||
596 | static struct obj_section *obj_find_section(struct obj_file *f, | 594 | static struct obj_section *obj_find_section(struct obj_file *f, |
597 | const char *name); | 595 | const char *name); |
598 | 596 | ||
599 | static void obj_insert_section_load_order(struct obj_file *f, | 597 | static void obj_insert_section_load_order(struct obj_file *f, |
600 | struct obj_section *sec); | 598 | struct obj_section *sec); |
601 | 599 | ||
602 | static struct obj_section *obj_create_alloced_section(struct obj_file *f, | 600 | static struct obj_section *obj_create_alloced_section(struct obj_file *f, |
603 | const char *name, | 601 | const char *name, |
604 | unsigned long align, | 602 | unsigned long align, |
605 | unsigned long size); | 603 | unsigned long size); |
606 | 604 | ||
607 | static struct obj_section *obj_create_alloced_section_first(struct obj_file *f, | 605 | static struct obj_section *obj_create_alloced_section_first(struct obj_file *f, |
608 | const char *name, | 606 | const char *name, |
609 | unsigned long align, | 607 | unsigned long align, |
610 | unsigned long size); | 608 | unsigned long size); |
611 | 609 | ||
612 | static void *obj_extend_section(struct obj_section *sec, unsigned long more); | 610 | static void *obj_extend_section(struct obj_section *sec, unsigned long more); |
613 | 611 | ||
614 | static void obj_string_patch(struct obj_file *f, int secidx, ElfW(Addr) offset, | 612 | static void obj_string_patch(struct obj_file *f, int secidx, ElfW(Addr) offset, |
615 | const char *string); | 613 | const char *string); |
616 | 614 | ||
617 | static void obj_symbol_patch(struct obj_file *f, int secidx, ElfW(Addr) offset, | 615 | static void obj_symbol_patch(struct obj_file *f, int secidx, ElfW(Addr) offset, |
618 | struct obj_symbol *sym); | 616 | struct obj_symbol *sym); |
619 | 617 | ||
620 | static void obj_check_undefineds(struct obj_file *f); | 618 | static void obj_check_undefineds(struct obj_file *f); |
621 | 619 | ||
@@ -642,10 +640,10 @@ static struct obj_section *arch_new_section(void); | |||
642 | static struct obj_symbol *arch_new_symbol(void); | 640 | static struct obj_symbol *arch_new_symbol(void); |
643 | 641 | ||
644 | static enum obj_reloc arch_apply_relocation(struct obj_file *f, | 642 | static enum obj_reloc arch_apply_relocation(struct obj_file *f, |
645 | struct obj_section *targsec, | 643 | struct obj_section *targsec, |
646 | /*struct obj_section *symsec,*/ | 644 | /*struct obj_section *symsec,*/ |
647 | struct obj_symbol *sym, | 645 | struct obj_symbol *sym, |
648 | ElfW(RelM) *rel, ElfW(Addr) value); | 646 | ElfW(RelM) *rel, ElfW(Addr) value); |
649 | 647 | ||
650 | static void arch_create_got(struct obj_file *f); | 648 | static void arch_create_got(struct obj_file *f); |
651 | #if ENABLE_FEATURE_CHECK_TAINTED_MODULE | 649 | #if ENABLE_FEATURE_CHECK_TAINTED_MODULE |
@@ -679,8 +677,7 @@ enum { STRVERSIONLEN = 64 }; | |||
679 | 677 | ||
680 | #if defined(USE_LIST) | 678 | #if defined(USE_LIST) |
681 | 679 | ||
682 | struct arch_list_entry | 680 | struct arch_list_entry { |
683 | { | ||
684 | struct arch_list_entry *next; | 681 | struct arch_list_entry *next; |
685 | LIST_ARCHTYPE addend; | 682 | LIST_ARCHTYPE addend; |
686 | int offset; | 683 | int offset; |
@@ -691,8 +688,7 @@ struct arch_list_entry | |||
691 | 688 | ||
692 | #if defined(USE_SINGLE) | 689 | #if defined(USE_SINGLE) |
693 | 690 | ||
694 | struct arch_single_entry | 691 | struct arch_single_entry { |
695 | { | ||
696 | int offset; | 692 | int offset; |
697 | int inited : 1; | 693 | int inited : 1; |
698 | int allocated : 1; | 694 | int allocated : 1; |
@@ -701,8 +697,7 @@ struct arch_single_entry | |||
701 | #endif | 697 | #endif |
702 | 698 | ||
703 | #if defined(__mips__) | 699 | #if defined(__mips__) |
704 | struct mips_hi16 | 700 | struct mips_hi16 { |
705 | { | ||
706 | struct mips_hi16 *next; | 701 | struct mips_hi16 *next; |
707 | ElfW(Addr) *addr; | 702 | ElfW(Addr) *addr; |
708 | ElfW(Addr) value; | 703 | ElfW(Addr) value; |
@@ -776,10 +771,10 @@ static struct obj_symbol *arch_new_symbol(void) | |||
776 | 771 | ||
777 | static enum obj_reloc | 772 | static enum obj_reloc |
778 | arch_apply_relocation(struct obj_file *f, | 773 | arch_apply_relocation(struct obj_file *f, |
779 | struct obj_section *targsec, | 774 | struct obj_section *targsec, |
780 | /*struct obj_section *symsec,*/ | 775 | /*struct obj_section *symsec,*/ |
781 | struct obj_symbol *sym, | 776 | struct obj_symbol *sym, |
782 | ElfW(RelM) *rel, ElfW(Addr) v) | 777 | ElfW(RelM) *rel, ElfW(Addr) v) |
783 | { | 778 | { |
784 | #if defined(__arm__) || defined(__i386__) || defined(__mc68000__) \ | 779 | #if defined(__arm__) || defined(__i386__) || defined(__mc68000__) \ |
785 | || defined(__sh__) || defined(__s390__) || defined(__x86_64__) \ | 780 | || defined(__sh__) || defined(__s390__) || defined(__x86_64__) \ |
@@ -1707,7 +1702,7 @@ static int arch_list_add(ElfW(RelM) *rel, struct arch_list_entry **list, | |||
1707 | #if defined(USE_SINGLE) | 1702 | #if defined(USE_SINGLE) |
1708 | 1703 | ||
1709 | static int arch_single_init(/*ElfW(RelM) *rel,*/ struct arch_single_entry *single, | 1704 | static int arch_single_init(/*ElfW(RelM) *rel,*/ struct arch_single_entry *single, |
1710 | int offset, int size) | 1705 | int offset, int size) |
1711 | { | 1706 | { |
1712 | if (single->allocated == 0) { | 1707 | if (single->allocated == 0) { |
1713 | single->allocated = 1; | 1708 | single->allocated = 1; |
@@ -1723,7 +1718,7 @@ static int arch_single_init(/*ElfW(RelM) *rel,*/ struct arch_single_entry *singl | |||
1723 | #if defined(USE_GOT_ENTRIES) || defined(USE_PLT_ENTRIES) | 1718 | #if defined(USE_GOT_ENTRIES) || defined(USE_PLT_ENTRIES) |
1724 | 1719 | ||
1725 | static struct obj_section *arch_xsect_init(struct obj_file *f, const char *name, | 1720 | static struct obj_section *arch_xsect_init(struct obj_file *f, const char *name, |
1726 | int offset, int size) | 1721 | int offset, int size) |
1727 | { | 1722 | { |
1728 | struct obj_section *myrelsec = obj_find_section(f, name); | 1723 | struct obj_section *myrelsec = obj_find_section(f, name); |
1729 | 1724 | ||
@@ -1916,7 +1911,7 @@ static unsigned long obj_elf_hash_n(const char *name, unsigned long n) | |||
1916 | return h; | 1911 | return h; |
1917 | } | 1912 | } |
1918 | 1913 | ||
1919 | static unsigned long obj_elf_hash(const char *name) | 1914 | static unsigned long FAST_FUNC obj_elf_hash(const char *name) |
1920 | { | 1915 | { |
1921 | return obj_elf_hash_n(name, strlen(name)); | 1916 | return obj_elf_hash_n(name, strlen(name)); |
1922 | } | 1917 | } |
@@ -1939,7 +1934,7 @@ static int ncv_strcmp(const char *a, const char *b) | |||
1939 | /* String hashing for non-co-versioned kernel and module. Here | 1934 | /* String hashing for non-co-versioned kernel and module. Here |
1940 | we are simply forced to drop the crc from the hash. */ | 1935 | we are simply forced to drop the crc from the hash. */ |
1941 | 1936 | ||
1942 | static unsigned long ncv_symbol_hash(const char *str) | 1937 | static unsigned long FAST_FUNC ncv_symbol_hash(const char *str) |
1943 | { | 1938 | { |
1944 | size_t len = strlen(str); | 1939 | size_t len = strlen(str); |
1945 | if (len > 10 && str[len - 10] == '_' && str[len - 9] == 'R') | 1940 | if (len > 10 && str[len - 10] == '_' && str[len - 9] == 'R') |
@@ -1949,8 +1944,8 @@ static unsigned long ncv_symbol_hash(const char *str) | |||
1949 | 1944 | ||
1950 | static void | 1945 | static void |
1951 | obj_set_symbol_compare(struct obj_file *f, | 1946 | obj_set_symbol_compare(struct obj_file *f, |
1952 | int (*cmp) (const char *, const char *), | 1947 | int (*cmp) (const char *, const char *), |
1953 | unsigned long (*hash) (const char *)) | 1948 | unsigned long (*hash) (const char *) FAST_FUNC) |
1954 | { | 1949 | { |
1955 | if (cmp) | 1950 | if (cmp) |
1956 | f->symbol_cmp = cmp; | 1951 | f->symbol_cmp = cmp; |
@@ -1963,13 +1958,14 @@ obj_set_symbol_compare(struct obj_file *f, | |||
1963 | memcpy(tmptab, f->symtab, sizeof(tmptab)); | 1958 | memcpy(tmptab, f->symtab, sizeof(tmptab)); |
1964 | memset(f->symtab, 0, sizeof(f->symtab)); | 1959 | memset(f->symtab, 0, sizeof(f->symtab)); |
1965 | 1960 | ||
1966 | for (i = 0; i < HASH_BUCKETS; ++i) | 1961 | for (i = 0; i < HASH_BUCKETS; ++i) { |
1967 | for (sym = tmptab[i]; sym; sym = next) { | 1962 | for (sym = tmptab[i]; sym; sym = next) { |
1968 | unsigned long h = hash(sym->name) % HASH_BUCKETS; | 1963 | unsigned long h = hash(sym->name) % HASH_BUCKETS; |
1969 | next = sym->next; | 1964 | next = sym->next; |
1970 | sym->next = f->symtab[h]; | 1965 | sym->next = f->symtab[h]; |
1971 | f->symtab[h] = sym; | 1966 | f->symtab[h] = sym; |
1972 | } | 1967 | } |
1968 | } | ||
1973 | } | 1969 | } |
1974 | } | 1970 | } |
1975 | 1971 | ||
@@ -1977,9 +1973,9 @@ obj_set_symbol_compare(struct obj_file *f, | |||
1977 | 1973 | ||
1978 | static struct obj_symbol * | 1974 | static struct obj_symbol * |
1979 | obj_add_symbol(struct obj_file *f, const char *name, | 1975 | obj_add_symbol(struct obj_file *f, const char *name, |
1980 | unsigned long symidx, int info, | 1976 | unsigned long symidx, int info, |
1981 | int secidx, ElfW(Addr) value, | 1977 | int secidx, ElfW(Addr) value, |
1982 | unsigned long size) | 1978 | unsigned long size) |
1983 | { | 1979 | { |
1984 | struct obj_symbol *sym; | 1980 | struct obj_symbol *sym; |
1985 | unsigned long hash = f->symbol_hash(name) % HASH_BUCKETS; | 1981 | unsigned long hash = f->symbol_hash(name) % HASH_BUCKETS; |
@@ -2140,9 +2136,9 @@ obj_insert_section_load_order(struct obj_file *f, struct obj_section *sec) | |||
2140 | } | 2136 | } |
2141 | 2137 | ||
2142 | static struct obj_section *helper_create_alloced_section(struct obj_file *f, | 2138 | static struct obj_section *helper_create_alloced_section(struct obj_file *f, |
2143 | const char *name, | 2139 | const char *name, |
2144 | unsigned long align, | 2140 | unsigned long align, |
2145 | unsigned long size) | 2141 | unsigned long size) |
2146 | { | 2142 | { |
2147 | int newidx = f->header.e_shnum++; | 2143 | int newidx = f->header.e_shnum++; |
2148 | struct obj_section *sec; | 2144 | struct obj_section *sec; |
@@ -2163,9 +2159,9 @@ static struct obj_section *helper_create_alloced_section(struct obj_file *f, | |||
2163 | } | 2159 | } |
2164 | 2160 | ||
2165 | static struct obj_section *obj_create_alloced_section(struct obj_file *f, | 2161 | static struct obj_section *obj_create_alloced_section(struct obj_file *f, |
2166 | const char *name, | 2162 | const char *name, |
2167 | unsigned long align, | 2163 | unsigned long align, |
2168 | unsigned long size) | 2164 | unsigned long size) |
2169 | { | 2165 | { |
2170 | struct obj_section *sec; | 2166 | struct obj_section *sec; |
2171 | 2167 | ||
@@ -2175,9 +2171,9 @@ static struct obj_section *obj_create_alloced_section(struct obj_file *f, | |||
2175 | } | 2171 | } |
2176 | 2172 | ||
2177 | static struct obj_section *obj_create_alloced_section_first(struct obj_file *f, | 2173 | static struct obj_section *obj_create_alloced_section_first(struct obj_file *f, |
2178 | const char *name, | 2174 | const char *name, |
2179 | unsigned long align, | 2175 | unsigned long align, |
2180 | unsigned long size) | 2176 | unsigned long size) |
2181 | { | 2177 | { |
2182 | struct obj_section *sec; | 2178 | struct obj_section *sec; |
2183 | 2179 | ||
@@ -2205,9 +2201,9 @@ static void *obj_extend_section(struct obj_section *sec, unsigned long more) | |||
2205 | new module. */ | 2201 | new module. */ |
2206 | 2202 | ||
2207 | static int add_symbols_from(struct obj_file *f, | 2203 | static int add_symbols_from(struct obj_file *f, |
2208 | int idx, | 2204 | int idx, |
2209 | struct new_module_symbol *syms, | 2205 | struct new_module_symbol *syms, |
2210 | size_t nsyms) | 2206 | size_t nsyms) |
2211 | { | 2207 | { |
2212 | struct new_module_symbol *s; | 2208 | struct new_module_symbol *s; |
2213 | size_t i; | 2209 | size_t i; |
@@ -2885,7 +2881,7 @@ obj_string_patch(struct obj_file *f, int secidx, ElfW(Addr) offset, | |||
2885 | 2881 | ||
2886 | static void | 2882 | static void |
2887 | obj_symbol_patch(struct obj_file *f, int secidx, ElfW(Addr) offset, | 2883 | obj_symbol_patch(struct obj_file *f, int secidx, ElfW(Addr) offset, |
2888 | struct obj_symbol *sym) | 2884 | struct obj_symbol *sym) |
2889 | { | 2885 | { |
2890 | struct obj_symbol_patch *p; | 2886 | struct obj_symbol_patch *p; |
2891 | 2887 | ||
@@ -3491,7 +3487,8 @@ static int obj_gpl_license(struct obj_file *f, const char **license) | |||
3491 | #define TAINT_URL "http://www.tux.org/lkml/#export-tainted" | 3487 | #define TAINT_URL "http://www.tux.org/lkml/#export-tainted" |
3492 | 3488 | ||
3493 | static void set_tainted(int fd, const char *m_name, | 3489 | static void set_tainted(int fd, const char *m_name, |
3494 | int kernel_has_tainted, int taint, const char *text1, const char *text2) | 3490 | int kernel_has_tainted, int taint, |
3491 | const char *text1, const char *text2) | ||
3495 | { | 3492 | { |
3496 | static smallint printed_info; | 3493 | static smallint printed_info; |
3497 | 3494 | ||
@@ -3586,7 +3583,7 @@ get_module_version(struct obj_file *f, char str[STRVERSIONLEN]) | |||
3586 | */ | 3583 | */ |
3587 | static void | 3584 | static void |
3588 | add_ksymoops_symbols(struct obj_file *f, const char *filename, | 3585 | add_ksymoops_symbols(struct obj_file *f, const char *filename, |
3589 | const char *m_name) | 3586 | const char *m_name) |
3590 | { | 3587 | { |
3591 | static const char symprefix[] ALIGN1 = "__insmod_"; | 3588 | static const char symprefix[] ALIGN1 = "__insmod_"; |
3592 | static const char section_names[][8] = { | 3589 | static const char section_names[][8] = { |
diff --git a/networking/ifupdown.c b/networking/ifupdown.c index 604a216d4..6d608105e 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c | |||
@@ -42,8 +42,8 @@ typedef int execfn(char *command); | |||
42 | 42 | ||
43 | struct method_t { | 43 | struct method_t { |
44 | const char *name; | 44 | const char *name; |
45 | int (*up)(struct interface_defn_t *ifd, execfn *e); | 45 | int (*up)(struct interface_defn_t *ifd, execfn *e) FAST_FUNC; |
46 | int (*down)(struct interface_defn_t *ifd, execfn *e); | 46 | int (*down)(struct interface_defn_t *ifd, execfn *e) FAST_FUNC; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | struct address_family_t { | 49 | struct address_family_t { |
@@ -325,7 +325,7 @@ static int execute(const char *command, struct interface_defn_t *ifd, execfn *ex | |||
325 | #endif | 325 | #endif |
326 | 326 | ||
327 | #if ENABLE_FEATURE_IFUPDOWN_IPV6 | 327 | #if ENABLE_FEATURE_IFUPDOWN_IPV6 |
328 | static int loopback_up6(struct interface_defn_t *ifd, execfn *exec) | 328 | static int FAST_FUNC loopback_up6(struct interface_defn_t *ifd, execfn *exec) |
329 | { | 329 | { |
330 | #if ENABLE_FEATURE_IFUPDOWN_IP | 330 | #if ENABLE_FEATURE_IFUPDOWN_IP |
331 | int result; | 331 | int result; |
@@ -337,7 +337,7 @@ static int loopback_up6(struct interface_defn_t *ifd, execfn *exec) | |||
337 | #endif | 337 | #endif |
338 | } | 338 | } |
339 | 339 | ||
340 | static int loopback_down6(struct interface_defn_t *ifd, execfn *exec) | 340 | static int FAST_FUNC loopback_down6(struct interface_defn_t *ifd, execfn *exec) |
341 | { | 341 | { |
342 | #if ENABLE_FEATURE_IFUPDOWN_IP | 342 | #if ENABLE_FEATURE_IFUPDOWN_IP |
343 | return execute("ip link set %iface% down", ifd, exec); | 343 | return execute("ip link set %iface% down", ifd, exec); |
@@ -346,7 +346,7 @@ static int loopback_down6(struct interface_defn_t *ifd, execfn *exec) | |||
346 | #endif | 346 | #endif |
347 | } | 347 | } |
348 | 348 | ||
349 | static int static_up6(struct interface_defn_t *ifd, execfn *exec) | 349 | static int FAST_FUNC static_up6(struct interface_defn_t *ifd, execfn *exec) |
350 | { | 350 | { |
351 | int result; | 351 | int result; |
352 | #if ENABLE_FEATURE_IFUPDOWN_IP | 352 | #if ENABLE_FEATURE_IFUPDOWN_IP |
@@ -362,7 +362,7 @@ static int static_up6(struct interface_defn_t *ifd, execfn *exec) | |||
362 | return ((result == 3) ? 3 : 0); | 362 | return ((result == 3) ? 3 : 0); |
363 | } | 363 | } |
364 | 364 | ||
365 | static int static_down6(struct interface_defn_t *ifd, execfn *exec) | 365 | static int FAST_FUNC static_down6(struct interface_defn_t *ifd, execfn *exec) |
366 | { | 366 | { |
367 | #if ENABLE_FEATURE_IFUPDOWN_IP | 367 | #if ENABLE_FEATURE_IFUPDOWN_IP |
368 | return execute("ip link set %iface% down", ifd, exec); | 368 | return execute("ip link set %iface% down", ifd, exec); |
@@ -372,7 +372,7 @@ static int static_down6(struct interface_defn_t *ifd, execfn *exec) | |||
372 | } | 372 | } |
373 | 373 | ||
374 | #if ENABLE_FEATURE_IFUPDOWN_IP | 374 | #if ENABLE_FEATURE_IFUPDOWN_IP |
375 | static int v4tunnel_up(struct interface_defn_t *ifd, execfn *exec) | 375 | static int FAST_FUNC v4tunnel_up(struct interface_defn_t *ifd, execfn *exec) |
376 | { | 376 | { |
377 | int result; | 377 | int result; |
378 | result = execute("ip tunnel add %iface% mode sit remote " | 378 | result = execute("ip tunnel add %iface% mode sit remote " |
@@ -383,7 +383,7 @@ static int v4tunnel_up(struct interface_defn_t *ifd, execfn *exec) | |||
383 | return ((result == 4) ? 4 : 0); | 383 | return ((result == 4) ? 4 : 0); |
384 | } | 384 | } |
385 | 385 | ||
386 | static int v4tunnel_down(struct interface_defn_t * ifd, execfn * exec) | 386 | static int FAST_FUNC v4tunnel_down(struct interface_defn_t * ifd, execfn * exec) |
387 | { | 387 | { |
388 | return execute("ip tunnel del %iface%", ifd, exec); | 388 | return execute("ip tunnel del %iface%", ifd, exec); |
389 | } | 389 | } |
@@ -405,7 +405,7 @@ static const struct address_family_t addr_inet6 = { | |||
405 | #endif /* FEATURE_IFUPDOWN_IPV6 */ | 405 | #endif /* FEATURE_IFUPDOWN_IPV6 */ |
406 | 406 | ||
407 | #if ENABLE_FEATURE_IFUPDOWN_IPV4 | 407 | #if ENABLE_FEATURE_IFUPDOWN_IPV4 |
408 | static int loopback_up(struct interface_defn_t *ifd, execfn *exec) | 408 | static int FAST_FUNC loopback_up(struct interface_defn_t *ifd, execfn *exec) |
409 | { | 409 | { |
410 | #if ENABLE_FEATURE_IFUPDOWN_IP | 410 | #if ENABLE_FEATURE_IFUPDOWN_IP |
411 | int result; | 411 | int result; |
@@ -417,7 +417,7 @@ static int loopback_up(struct interface_defn_t *ifd, execfn *exec) | |||
417 | #endif | 417 | #endif |
418 | } | 418 | } |
419 | 419 | ||
420 | static int loopback_down(struct interface_defn_t *ifd, execfn *exec) | 420 | static int FAST_FUNC loopback_down(struct interface_defn_t *ifd, execfn *exec) |
421 | { | 421 | { |
422 | #if ENABLE_FEATURE_IFUPDOWN_IP | 422 | #if ENABLE_FEATURE_IFUPDOWN_IP |
423 | int result; | 423 | int result; |
@@ -429,7 +429,7 @@ static int loopback_down(struct interface_defn_t *ifd, execfn *exec) | |||
429 | #endif | 429 | #endif |
430 | } | 430 | } |
431 | 431 | ||
432 | static int static_up(struct interface_defn_t *ifd, execfn *exec) | 432 | static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec) |
433 | { | 433 | { |
434 | int result; | 434 | int result; |
435 | #if ENABLE_FEATURE_IFUPDOWN_IP | 435 | #if ENABLE_FEATURE_IFUPDOWN_IP |
@@ -451,7 +451,7 @@ static int static_up(struct interface_defn_t *ifd, execfn *exec) | |||
451 | #endif | 451 | #endif |
452 | } | 452 | } |
453 | 453 | ||
454 | static int static_down(struct interface_defn_t *ifd, execfn *exec) | 454 | static int FAST_FUNC static_down(struct interface_defn_t *ifd, execfn *exec) |
455 | { | 455 | { |
456 | int result; | 456 | int result; |
457 | #if ENABLE_FEATURE_IFUPDOWN_IP | 457 | #if ENABLE_FEATURE_IFUPDOWN_IP |
@@ -468,8 +468,7 @@ static int static_down(struct interface_defn_t *ifd, execfn *exec) | |||
468 | } | 468 | } |
469 | 469 | ||
470 | #if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP | 470 | #if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP |
471 | struct dhcp_client_t | 471 | struct dhcp_client_t { |
472 | { | ||
473 | const char *name; | 472 | const char *name; |
474 | const char *startcmd; | 473 | const char *startcmd; |
475 | const char *stopcmd; | 474 | const char *stopcmd; |
@@ -497,7 +496,7 @@ static const struct dhcp_client_t ext_dhcp_clients[] = { | |||
497 | #endif /* ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCPC */ | 496 | #endif /* ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCPC */ |
498 | 497 | ||
499 | #if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP | 498 | #if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP |
500 | static int dhcp_up(struct interface_defn_t *ifd, execfn *exec) | 499 | static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd, execfn *exec) |
501 | { | 500 | { |
502 | unsigned i; | 501 | unsigned i; |
503 | #if ENABLE_FEATURE_IFUPDOWN_IP | 502 | #if ENABLE_FEATURE_IFUPDOWN_IP |
@@ -517,7 +516,7 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec) | |||
517 | return 0; | 516 | return 0; |
518 | } | 517 | } |
519 | #elif ENABLE_APP_UDHCPC | 518 | #elif ENABLE_APP_UDHCPC |
520 | static int dhcp_up(struct interface_defn_t *ifd, execfn *exec) | 519 | static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd, execfn *exec) |
521 | { | 520 | { |
522 | #if ENABLE_FEATURE_IFUPDOWN_IP | 521 | #if ENABLE_FEATURE_IFUPDOWN_IP |
523 | /* ip doesn't up iface when it configures it (unlike ifconfig) */ | 522 | /* ip doesn't up iface when it configures it (unlike ifconfig) */ |
@@ -533,7 +532,7 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec) | |||
533 | ifd, exec); | 532 | ifd, exec); |
534 | } | 533 | } |
535 | #else | 534 | #else |
536 | static int dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM, | 535 | static int FAST_FUNC dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM, |
537 | execfn *exec UNUSED_PARAM) | 536 | execfn *exec UNUSED_PARAM) |
538 | { | 537 | { |
539 | return 0; /* no dhcp support */ | 538 | return 0; /* no dhcp support */ |
@@ -541,7 +540,7 @@ static int dhcp_up(struct interface_defn_t *ifd UNUSED_PARAM, | |||
541 | #endif | 540 | #endif |
542 | 541 | ||
543 | #if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP | 542 | #if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP |
544 | static int dhcp_down(struct interface_defn_t *ifd, execfn *exec) | 543 | static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec) |
545 | { | 544 | { |
546 | int result = 0; | 545 | int result = 0; |
547 | unsigned i; | 546 | unsigned i; |
@@ -564,7 +563,7 @@ static int dhcp_down(struct interface_defn_t *ifd, execfn *exec) | |||
564 | return ((result == 3) ? 3 : 0); | 563 | return ((result == 3) ? 3 : 0); |
565 | } | 564 | } |
566 | #elif ENABLE_APP_UDHCPC | 565 | #elif ENABLE_APP_UDHCPC |
567 | static int dhcp_down(struct interface_defn_t *ifd, execfn *exec) | 566 | static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd, execfn *exec) |
568 | { | 567 | { |
569 | int result; | 568 | int result; |
570 | result = execute("kill " | 569 | result = execute("kill " |
@@ -579,42 +578,42 @@ static int dhcp_down(struct interface_defn_t *ifd, execfn *exec) | |||
579 | return ((result == 3) ? 3 : 0); | 578 | return ((result == 3) ? 3 : 0); |
580 | } | 579 | } |
581 | #else | 580 | #else |
582 | static int dhcp_down(struct interface_defn_t *ifd UNUSED_PARAM, | 581 | static int FAST_FUNC dhcp_down(struct interface_defn_t *ifd UNUSED_PARAM, |
583 | execfn *exec UNUSED_PARAM) | 582 | execfn *exec UNUSED_PARAM) |
584 | { | 583 | { |
585 | return 0; /* no dhcp support */ | 584 | return 0; /* no dhcp support */ |
586 | } | 585 | } |
587 | #endif | 586 | #endif |
588 | 587 | ||
589 | static int manual_up_down(struct interface_defn_t *ifd UNUSED_PARAM, execfn *exec UNUSED_PARAM) | 588 | static int FAST_FUNC manual_up_down(struct interface_defn_t *ifd UNUSED_PARAM, execfn *exec UNUSED_PARAM) |
590 | { | 589 | { |
591 | return 1; | 590 | return 1; |
592 | } | 591 | } |
593 | 592 | ||
594 | static int bootp_up(struct interface_defn_t *ifd, execfn *exec) | 593 | static int FAST_FUNC bootp_up(struct interface_defn_t *ifd, execfn *exec) |
595 | { | 594 | { |
596 | return execute("bootpc[[ --bootfile %bootfile%]] --dev %iface%" | 595 | return execute("bootpc[[ --bootfile %bootfile%]] --dev %iface%" |
597 | "[[ --server %server%]][[ --hwaddr %hwaddr%]]" | 596 | "[[ --server %server%]][[ --hwaddr %hwaddr%]]" |
598 | " --returniffail --serverbcast", ifd, exec); | 597 | " --returniffail --serverbcast", ifd, exec); |
599 | } | 598 | } |
600 | 599 | ||
601 | static int ppp_up(struct interface_defn_t *ifd, execfn *exec) | 600 | static int FAST_FUNC ppp_up(struct interface_defn_t *ifd, execfn *exec) |
602 | { | 601 | { |
603 | return execute("pon[[ %provider%]]", ifd, exec); | 602 | return execute("pon[[ %provider%]]", ifd, exec); |
604 | } | 603 | } |
605 | 604 | ||
606 | static int ppp_down(struct interface_defn_t *ifd, execfn *exec) | 605 | static int FAST_FUNC ppp_down(struct interface_defn_t *ifd, execfn *exec) |
607 | { | 606 | { |
608 | return execute("poff[[ %provider%]]", ifd, exec); | 607 | return execute("poff[[ %provider%]]", ifd, exec); |
609 | } | 608 | } |
610 | 609 | ||
611 | static int wvdial_up(struct interface_defn_t *ifd, execfn *exec) | 610 | static int FAST_FUNC wvdial_up(struct interface_defn_t *ifd, execfn *exec) |
612 | { | 611 | { |
613 | return execute("start-stop-daemon --start -x wvdial " | 612 | return execute("start-stop-daemon --start -x wvdial " |
614 | "-p /var/run/wvdial.%iface% -b -m --[[ %provider%]]", ifd, exec); | 613 | "-p /var/run/wvdial.%iface% -b -m --[[ %provider%]]", ifd, exec); |
615 | } | 614 | } |
616 | 615 | ||
617 | static int wvdial_down(struct interface_defn_t *ifd, execfn *exec) | 616 | static int FAST_FUNC wvdial_down(struct interface_defn_t *ifd, execfn *exec) |
618 | { | 617 | { |
619 | return execute("start-stop-daemon --stop -x wvdial " | 618 | return execute("start-stop-daemon --stop -x wvdial " |
620 | "-p /var/run/wvdial.%iface% -s 2", ifd, exec); | 619 | "-p /var/run/wvdial.%iface% -s 2", ifd, exec); |
diff --git a/networking/inetd.c b/networking/inetd.c index 751010bc8..031edc397 100644 --- a/networking/inetd.c +++ b/networking/inetd.c | |||
@@ -239,36 +239,36 @@ typedef struct servtab_t { | |||
239 | #ifdef INETD_BUILTINS_ENABLED | 239 | #ifdef INETD_BUILTINS_ENABLED |
240 | /* Echo received data */ | 240 | /* Echo received data */ |
241 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO | 241 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO |
242 | static void echo_stream(int, servtab_t *); | 242 | static void FAST_FUNC echo_stream(int, servtab_t *); |
243 | static void echo_dg(int, servtab_t *); | 243 | static void FAST_FUNC echo_dg(int, servtab_t *); |
244 | #endif | 244 | #endif |
245 | /* Internet /dev/null */ | 245 | /* Internet /dev/null */ |
246 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD | 246 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD |
247 | static void discard_stream(int, servtab_t *); | 247 | static void FAST_FUNC discard_stream(int, servtab_t *); |
248 | static void discard_dg(int, servtab_t *); | 248 | static void FAST_FUNC discard_dg(int, servtab_t *); |
249 | #endif | 249 | #endif |
250 | /* Return 32 bit time since 1900 */ | 250 | /* Return 32 bit time since 1900 */ |
251 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_TIME | 251 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_TIME |
252 | static void machtime_stream(int, servtab_t *); | 252 | static void FAST_FUNC machtime_stream(int, servtab_t *); |
253 | static void machtime_dg(int, servtab_t *); | 253 | static void FAST_FUNC machtime_dg(int, servtab_t *); |
254 | #endif | 254 | #endif |
255 | /* Return human-readable time */ | 255 | /* Return human-readable time */ |
256 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME | 256 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME |
257 | static void daytime_stream(int, servtab_t *); | 257 | static void FAST_FUNC daytime_stream(int, servtab_t *); |
258 | static void daytime_dg(int, servtab_t *); | 258 | static void FAST_FUNC daytime_dg(int, servtab_t *); |
259 | #endif | 259 | #endif |
260 | /* Familiar character generator */ | 260 | /* Familiar character generator */ |
261 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN | 261 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN |
262 | static void chargen_stream(int, servtab_t *); | 262 | static void FAST_FUNC chargen_stream(int, servtab_t *); |
263 | static void chargen_dg(int, servtab_t *); | 263 | static void FAST_FUNC chargen_dg(int, servtab_t *); |
264 | #endif | 264 | #endif |
265 | 265 | ||
266 | struct builtin { | 266 | struct builtin { |
267 | /* NB: not necessarily NUL terminated */ | 267 | /* NB: not necessarily NUL terminated */ |
268 | char bi_service7[7]; /* internally provided service name */ | 268 | char bi_service7[7]; /* internally provided service name */ |
269 | uint8_t bi_fork; /* 1 if stream fn should run in child */ | 269 | uint8_t bi_fork; /* 1 if stream fn should run in child */ |
270 | void (*bi_stream_fn)(int, servtab_t *); | 270 | void (*bi_stream_fn)(int, servtab_t *) FAST_FUNC; |
271 | void (*bi_dgram_fn)(int, servtab_t *); | 271 | void (*bi_dgram_fn)(int, servtab_t *) FAST_FUNC; |
272 | }; | 272 | }; |
273 | 273 | ||
274 | static const struct builtin builtins[] = { | 274 | static const struct builtin builtins[] = { |
@@ -1386,7 +1386,7 @@ static const char *const cat_args[] = { "cat", NULL }; | |||
1386 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO | 1386 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO |
1387 | /* Echo service -- echo data back. */ | 1387 | /* Echo service -- echo data back. */ |
1388 | /* ARGSUSED */ | 1388 | /* ARGSUSED */ |
1389 | static void echo_stream(int s, servtab_t *sep UNUSED_PARAM) | 1389 | static void FAST_FUNC echo_stream(int s, servtab_t *sep UNUSED_PARAM) |
1390 | { | 1390 | { |
1391 | #if BB_MMU | 1391 | #if BB_MMU |
1392 | while (1) { | 1392 | while (1) { |
@@ -1407,7 +1407,7 @@ static void echo_stream(int s, servtab_t *sep UNUSED_PARAM) | |||
1407 | /* on failure we return to main, which does exit(EXIT_FAILURE) */ | 1407 | /* on failure we return to main, which does exit(EXIT_FAILURE) */ |
1408 | #endif | 1408 | #endif |
1409 | } | 1409 | } |
1410 | static void echo_dg(int s, servtab_t *sep) | 1410 | static void FAST_FUNC echo_dg(int s, servtab_t *sep) |
1411 | { | 1411 | { |
1412 | enum { BUFSIZE = 12*1024 }; /* for jumbo sized packets! :) */ | 1412 | enum { BUFSIZE = 12*1024 }; /* for jumbo sized packets! :) */ |
1413 | char *buf = xmalloc(BUFSIZE); /* too big for stack */ | 1413 | char *buf = xmalloc(BUFSIZE); /* too big for stack */ |
@@ -1427,7 +1427,7 @@ static void echo_dg(int s, servtab_t *sep) | |||
1427 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD | 1427 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD |
1428 | /* Discard service -- ignore data. */ | 1428 | /* Discard service -- ignore data. */ |
1429 | /* ARGSUSED */ | 1429 | /* ARGSUSED */ |
1430 | static void discard_stream(int s, servtab_t *sep UNUSED_PARAM) | 1430 | static void FAST_FUNC discard_stream(int s, servtab_t *sep UNUSED_PARAM) |
1431 | { | 1431 | { |
1432 | #if BB_MMU | 1432 | #if BB_MMU |
1433 | while (safe_read(s, line, LINE_SIZE) > 0) | 1433 | while (safe_read(s, line, LINE_SIZE) > 0) |
@@ -1446,7 +1446,7 @@ static void discard_stream(int s, servtab_t *sep UNUSED_PARAM) | |||
1446 | #endif | 1446 | #endif |
1447 | } | 1447 | } |
1448 | /* ARGSUSED */ | 1448 | /* ARGSUSED */ |
1449 | static void discard_dg(int s, servtab_t *sep UNUSED_PARAM) | 1449 | static void FAST_FUNC discard_dg(int s, servtab_t *sep UNUSED_PARAM) |
1450 | { | 1450 | { |
1451 | /* dgram builtins are non-forking - DONT BLOCK! */ | 1451 | /* dgram builtins are non-forking - DONT BLOCK! */ |
1452 | recv(s, line, LINE_SIZE, MSG_DONTWAIT); | 1452 | recv(s, line, LINE_SIZE, MSG_DONTWAIT); |
@@ -1467,7 +1467,7 @@ static void init_ring(void) | |||
1467 | } | 1467 | } |
1468 | /* Character generator. MMU arches only. */ | 1468 | /* Character generator. MMU arches only. */ |
1469 | /* ARGSUSED */ | 1469 | /* ARGSUSED */ |
1470 | static void chargen_stream(int s, servtab_t *sep UNUSED_PARAM) | 1470 | static void FAST_FUNC chargen_stream(int s, servtab_t *sep UNUSED_PARAM) |
1471 | { | 1471 | { |
1472 | char *rs; | 1472 | char *rs; |
1473 | int len; | 1473 | int len; |
@@ -1495,7 +1495,7 @@ static void chargen_stream(int s, servtab_t *sep UNUSED_PARAM) | |||
1495 | } | 1495 | } |
1496 | } | 1496 | } |
1497 | /* ARGSUSED */ | 1497 | /* ARGSUSED */ |
1498 | static void chargen_dg(int s, servtab_t *sep) | 1498 | static void FAST_FUNC chargen_dg(int s, servtab_t *sep) |
1499 | { | 1499 | { |
1500 | int len; | 1500 | int len; |
1501 | char text[LINESIZ + 2]; | 1501 | char text[LINESIZ + 2]; |
@@ -1544,14 +1544,14 @@ static uint32_t machtime(void) | |||
1544 | return htonl((uint32_t)(tv.tv_sec + 2208988800)); | 1544 | return htonl((uint32_t)(tv.tv_sec + 2208988800)); |
1545 | } | 1545 | } |
1546 | /* ARGSUSED */ | 1546 | /* ARGSUSED */ |
1547 | static void machtime_stream(int s, servtab_t *sep UNUSED_PARAM) | 1547 | static void FAST_FUNC machtime_stream(int s, servtab_t *sep UNUSED_PARAM) |
1548 | { | 1548 | { |
1549 | uint32_t result; | 1549 | uint32_t result; |
1550 | 1550 | ||
1551 | result = machtime(); | 1551 | result = machtime(); |
1552 | full_write(s, &result, sizeof(result)); | 1552 | full_write(s, &result, sizeof(result)); |
1553 | } | 1553 | } |
1554 | static void machtime_dg(int s, servtab_t *sep) | 1554 | static void FAST_FUNC machtime_dg(int s, servtab_t *sep) |
1555 | { | 1555 | { |
1556 | uint32_t result; | 1556 | uint32_t result; |
1557 | len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len); | 1557 | len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len); |
@@ -1569,14 +1569,14 @@ static void machtime_dg(int s, servtab_t *sep) | |||
1569 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME | 1569 | #if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME |
1570 | /* Return human-readable time of day */ | 1570 | /* Return human-readable time of day */ |
1571 | /* ARGSUSED */ | 1571 | /* ARGSUSED */ |
1572 | static void daytime_stream(int s, servtab_t *sep UNUSED_PARAM) | 1572 | static void FAST_FUNC daytime_stream(int s, servtab_t *sep UNUSED_PARAM) |
1573 | { | 1573 | { |
1574 | time_t t; | 1574 | time_t t; |
1575 | 1575 | ||
1576 | t = time(NULL); | 1576 | t = time(NULL); |
1577 | fdprintf(s, "%.24s\r\n", ctime(&t)); | 1577 | fdprintf(s, "%.24s\r\n", ctime(&t)); |
1578 | } | 1578 | } |
1579 | static void daytime_dg(int s, servtab_t *sep) | 1579 | static void FAST_FUNC daytime_dg(int s, servtab_t *sep) |
1580 | { | 1580 | { |
1581 | time_t t; | 1581 | time_t t; |
1582 | len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len); | 1582 | len_and_sockaddr *lsa = alloca(LSA_LEN_SIZE + sep->se_lsa->len); |
diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c index 644874f46..d042af07b 100644 --- a/networking/libiproute/ipaddress.c +++ b/networking/libiproute/ipaddress.c | |||
@@ -196,7 +196,7 @@ static int flush_update(void) | |||
196 | return 0; | 196 | return 0; |
197 | } | 197 | } |
198 | 198 | ||
199 | static int print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM, | 199 | static int FAST_FUNC print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM, |
200 | struct nlmsghdr *n, void *arg UNUSED_PARAM) | 200 | struct nlmsghdr *n, void *arg UNUSED_PARAM) |
201 | { | 201 | { |
202 | struct ifaddrmsg *ifa = NLMSG_DATA(n); | 202 | struct ifaddrmsg *ifa = NLMSG_DATA(n); |
@@ -349,8 +349,7 @@ static int print_addrinfo(const struct sockaddr_nl *who UNUSED_PARAM, | |||
349 | } | 349 | } |
350 | 350 | ||
351 | 351 | ||
352 | struct nlmsg_list | 352 | struct nlmsg_list { |
353 | { | ||
354 | struct nlmsg_list *next; | 353 | struct nlmsg_list *next; |
355 | struct nlmsghdr h; | 354 | struct nlmsghdr h; |
356 | }; | 355 | }; |
@@ -377,7 +376,7 @@ static int print_selected_addrinfo(int ifindex, struct nlmsg_list *ainfo) | |||
377 | } | 376 | } |
378 | 377 | ||
379 | 378 | ||
380 | static int store_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) | 379 | static int FAST_FUNC store_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) |
381 | { | 380 | { |
382 | struct nlmsg_list **linfo = (struct nlmsg_list**)arg; | 381 | struct nlmsg_list **linfo = (struct nlmsg_list**)arg; |
383 | struct nlmsg_list *h; | 382 | struct nlmsg_list *h; |
diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c index 37859525d..ac7eec598 100644 --- a/networking/libiproute/iproute.c +++ b/networking/libiproute/iproute.c | |||
@@ -78,7 +78,7 @@ static unsigned get_hz(void) | |||
78 | return hz_internal; | 78 | return hz_internal; |
79 | } | 79 | } |
80 | 80 | ||
81 | static int print_route(const struct sockaddr_nl *who UNUSED_PARAM, | 81 | static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM, |
82 | struct nlmsghdr *n, void *arg UNUSED_PARAM) | 82 | struct nlmsghdr *n, void *arg UNUSED_PARAM) |
83 | { | 83 | { |
84 | struct rtmsg *r = NLMSG_DATA(n); | 84 | struct rtmsg *r = NLMSG_DATA(n); |
diff --git a/networking/libiproute/iprule.c b/networking/libiproute/iprule.c index 6c90c6d21..bec530dcb 100644 --- a/networking/libiproute/iprule.c +++ b/networking/libiproute/iprule.c | |||
@@ -40,7 +40,7 @@ static void usage(void) | |||
40 | } | 40 | } |
41 | */ | 41 | */ |
42 | 42 | ||
43 | static int print_rule(const struct sockaddr_nl *who UNUSED_PARAM, | 43 | static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM, |
44 | struct nlmsghdr *n, void *arg UNUSED_PARAM) | 44 | struct nlmsghdr *n, void *arg UNUSED_PARAM) |
45 | { | 45 | { |
46 | struct rtmsg *r = NLMSG_DATA(n); | 46 | struct rtmsg *r = NLMSG_DATA(n); |
diff --git a/networking/libiproute/libnetlink.c b/networking/libiproute/libnetlink.c index 7ad2de9fa..b4cc8dfa4 100644 --- a/networking/libiproute/libnetlink.c +++ b/networking/libiproute/libnetlink.c | |||
@@ -104,7 +104,7 @@ int FAST_FUNC rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, in | |||
104 | } | 104 | } |
105 | 105 | ||
106 | static int rtnl_dump_filter(struct rtnl_handle *rth, | 106 | static int rtnl_dump_filter(struct rtnl_handle *rth, |
107 | int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *n, void *), | 107 | int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *n, void *) FAST_FUNC, |
108 | void *arg1/*, | 108 | void *arg1/*, |
109 | int (*junk)(struct sockaddr_nl *, struct nlmsghdr *n, void *), | 109 | int (*junk)(struct sockaddr_nl *, struct nlmsghdr *n, void *), |
110 | void *arg2*/) | 110 | void *arg2*/) |
@@ -196,7 +196,7 @@ static int rtnl_dump_filter(struct rtnl_handle *rth, | |||
196 | } | 196 | } |
197 | 197 | ||
198 | int FAST_FUNC xrtnl_dump_filter(struct rtnl_handle *rth, | 198 | int FAST_FUNC xrtnl_dump_filter(struct rtnl_handle *rth, |
199 | int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *, void *), | 199 | int (*filter)(const struct sockaddr_nl *, struct nlmsghdr *, void *) FAST_FUNC, |
200 | void *arg1) | 200 | void *arg1) |
201 | { | 201 | { |
202 | int ret = rtnl_dump_filter(rth, filter, arg1/*, NULL, NULL*/); | 202 | int ret = rtnl_dump_filter(rth, filter, arg1/*, NULL, NULL*/); |
@@ -206,10 +206,10 @@ int FAST_FUNC xrtnl_dump_filter(struct rtnl_handle *rth, | |||
206 | } | 206 | } |
207 | 207 | ||
208 | int FAST_FUNC rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, | 208 | int FAST_FUNC rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, |
209 | pid_t peer, unsigned groups, | 209 | pid_t peer, unsigned groups, |
210 | struct nlmsghdr *answer, | 210 | struct nlmsghdr *answer, |
211 | int (*junk)(struct sockaddr_nl *, struct nlmsghdr *, void *), | 211 | int (*junk)(struct sockaddr_nl *, struct nlmsghdr *, void *), |
212 | void *jarg) | 212 | void *jarg) |
213 | { | 213 | { |
214 | /* bbox doesn't use parameters no. 3, 4, 6, 7, they are stubbed out */ | 214 | /* bbox doesn't use parameters no. 3, 4, 6, 7, they are stubbed out */ |
215 | #define peer 0 | 215 | #define peer 0 |
diff --git a/networking/libiproute/libnetlink.h b/networking/libiproute/libnetlink.h index 11a4a100a..41ecfa6d0 100644 --- a/networking/libiproute/libnetlink.h +++ b/networking/libiproute/libnetlink.h | |||
@@ -23,16 +23,16 @@ extern void rtnl_close(struct rtnl_handle *rth) FAST_FUNC; | |||
23 | extern int xrtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type) FAST_FUNC; | 23 | extern int xrtnl_wilddump_request(struct rtnl_handle *rth, int fam, int type) FAST_FUNC; |
24 | extern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len) FAST_FUNC; | 24 | extern int rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, int len) FAST_FUNC; |
25 | extern int xrtnl_dump_filter(struct rtnl_handle *rth, | 25 | extern int xrtnl_dump_filter(struct rtnl_handle *rth, |
26 | int (*filter)(const struct sockaddr_nl*, struct nlmsghdr *n, void*), | 26 | int (*filter)(const struct sockaddr_nl*, struct nlmsghdr *n, void*) FAST_FUNC, |
27 | void *arg1) FAST_FUNC; | 27 | void *arg1) FAST_FUNC; |
28 | 28 | ||
29 | /* bbox doesn't use parameters no. 3, 4, 6, 7, stub them out */ | 29 | /* bbox doesn't use parameters no. 3, 4, 6, 7, stub them out */ |
30 | #define rtnl_talk(rtnl, n, peer, groups, answer, junk, jarg) \ | 30 | #define rtnl_talk(rtnl, n, peer, groups, answer, junk, jarg) \ |
31 | rtnl_talk(rtnl, n, answer) | 31 | rtnl_talk(rtnl, n, answer) |
32 | extern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, | 32 | extern int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, |
33 | unsigned groups, struct nlmsghdr *answer, | 33 | unsigned groups, struct nlmsghdr *answer, |
34 | int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *), | 34 | int (*junk)(struct sockaddr_nl *,struct nlmsghdr *n, void *), |
35 | void *jarg) FAST_FUNC; | 35 | void *jarg) FAST_FUNC; |
36 | 36 | ||
37 | extern int rtnl_send(struct rtnl_handle *rth, char *buf, int) FAST_FUNC; | 37 | extern int rtnl_send(struct rtnl_handle *rth, char *buf, int) FAST_FUNC; |
38 | 38 | ||
diff --git a/networking/libiproute/ll_map.c b/networking/libiproute/ll_map.c index 951496f4d..62528cc83 100644 --- a/networking/libiproute/ll_map.c +++ b/networking/libiproute/ll_map.c | |||
@@ -39,7 +39,7 @@ static struct idxmap *find_by_index(int idx) | |||
39 | return NULL; | 39 | return NULL; |
40 | } | 40 | } |
41 | 41 | ||
42 | int ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM, | 42 | int FAST_FUNC ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM, |
43 | struct nlmsghdr *n, | 43 | struct nlmsghdr *n, |
44 | void *arg UNUSED_PARAM) | 44 | void *arg UNUSED_PARAM) |
45 | { | 45 | { |
@@ -86,7 +86,7 @@ int ll_remember_index(const struct sockaddr_nl *who UNUSED_PARAM, | |||
86 | return 0; | 86 | return 0; |
87 | } | 87 | } |
88 | 88 | ||
89 | const char *ll_idx_n2a(int idx, char *buf) | 89 | const char FAST_FUNC *ll_idx_n2a(int idx, char *buf) |
90 | { | 90 | { |
91 | struct idxmap *im; | 91 | struct idxmap *im; |
92 | 92 | ||
@@ -100,7 +100,7 @@ const char *ll_idx_n2a(int idx, char *buf) | |||
100 | } | 100 | } |
101 | 101 | ||
102 | 102 | ||
103 | const char *ll_index_to_name(int idx) | 103 | const char FAST_FUNC *ll_index_to_name(int idx) |
104 | { | 104 | { |
105 | static char nbuf[16]; | 105 | static char nbuf[16]; |
106 | 106 | ||
@@ -121,7 +121,7 @@ int ll_index_to_type(int idx) | |||
121 | } | 121 | } |
122 | #endif | 122 | #endif |
123 | 123 | ||
124 | unsigned ll_index_to_flags(int idx) | 124 | unsigned FAST_FUNC ll_index_to_flags(int idx) |
125 | { | 125 | { |
126 | struct idxmap *im; | 126 | struct idxmap *im; |
127 | 127 | ||
@@ -133,7 +133,7 @@ unsigned ll_index_to_flags(int idx) | |||
133 | return 0; | 133 | return 0; |
134 | } | 134 | } |
135 | 135 | ||
136 | int xll_name_to_index(const char *name) | 136 | int FAST_FUNC xll_name_to_index(const char *name) |
137 | { | 137 | { |
138 | int ret = 0; | 138 | int ret = 0; |
139 | int sock_fd; | 139 | int sock_fd; |
@@ -192,7 +192,7 @@ int xll_name_to_index(const char *name) | |||
192 | return ret; | 192 | return ret; |
193 | } | 193 | } |
194 | 194 | ||
195 | int ll_init_map(struct rtnl_handle *rth) | 195 | int FAST_FUNC ll_init_map(struct rtnl_handle *rth) |
196 | { | 196 | { |
197 | xrtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK); | 197 | xrtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK); |
198 | xrtnl_dump_filter(rth, ll_remember_index, &idxmap); | 198 | xrtnl_dump_filter(rth, ll_remember_index, &idxmap); |
diff --git a/networking/libiproute/ll_map.h b/networking/libiproute/ll_map.h index b183cd6c6..c5d383422 100644 --- a/networking/libiproute/ll_map.h +++ b/networking/libiproute/ll_map.h | |||
@@ -4,13 +4,13 @@ | |||
4 | 4 | ||
5 | PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN | 5 | PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN |
6 | 6 | ||
7 | int ll_remember_index(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg); | 7 | int ll_remember_index(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) FAST_FUNC; |
8 | int ll_init_map(struct rtnl_handle *rth); | 8 | int ll_init_map(struct rtnl_handle *rth) FAST_FUNC; |
9 | int xll_name_to_index(const char *name); | 9 | int xll_name_to_index(const char *name) FAST_FUNC; |
10 | const char *ll_index_to_name(int idx); | 10 | const char *ll_index_to_name(int idx) FAST_FUNC; |
11 | const char *ll_idx_n2a(int idx, char *buf); | 11 | const char *ll_idx_n2a(int idx, char *buf) FAST_FUNC; |
12 | /* int ll_index_to_type(int idx); */ | 12 | /* int ll_index_to_type(int idx); */ |
13 | unsigned ll_index_to_flags(int idx); | 13 | unsigned ll_index_to_flags(int idx) FAST_FUNC; |
14 | 14 | ||
15 | POP_SAVED_FUNCTION_VISIBILITY | 15 | POP_SAVED_FUNCTION_VISIBILITY |
16 | 16 | ||
diff --git a/networking/udhcp/files.c b/networking/udhcp/files.c index b13897608..af7730890 100644 --- a/networking/udhcp/files.c +++ b/networking/udhcp/files.c | |||
@@ -24,7 +24,7 @@ static inline uint64_t hton64(uint64_t v) | |||
24 | 24 | ||
25 | 25 | ||
26 | /* on these functions, make sure your datatype matches */ | 26 | /* on these functions, make sure your datatype matches */ |
27 | static int read_ip(const char *line, void *arg) | 27 | static int FAST_FUNC read_ip(const char *line, void *arg) |
28 | { | 28 | { |
29 | len_and_sockaddr *lsa; | 29 | len_and_sockaddr *lsa; |
30 | 30 | ||
@@ -37,13 +37,13 @@ static int read_ip(const char *line, void *arg) | |||
37 | } | 37 | } |
38 | 38 | ||
39 | 39 | ||
40 | static int read_mac(const char *line, void *arg) | 40 | static int FAST_FUNC read_mac(const char *line, void *arg) |
41 | { | 41 | { |
42 | return NULL == ether_aton_r(line, (struct ether_addr *)arg); | 42 | return NULL == ether_aton_r(line, (struct ether_addr *)arg); |
43 | } | 43 | } |
44 | 44 | ||
45 | 45 | ||
46 | static int read_str(const char *line, void *arg) | 46 | static int FAST_FUNC read_str(const char *line, void *arg) |
47 | { | 47 | { |
48 | char **dest = arg; | 48 | char **dest = arg; |
49 | 49 | ||
@@ -53,14 +53,14 @@ static int read_str(const char *line, void *arg) | |||
53 | } | 53 | } |
54 | 54 | ||
55 | 55 | ||
56 | static int read_u32(const char *line, void *arg) | 56 | static int FAST_FUNC read_u32(const char *line, void *arg) |
57 | { | 57 | { |
58 | *(uint32_t*)arg = bb_strtou32(line, NULL, 10); | 58 | *(uint32_t*)arg = bb_strtou32(line, NULL, 10); |
59 | return errno == 0; | 59 | return errno == 0; |
60 | } | 60 | } |
61 | 61 | ||
62 | 62 | ||
63 | static int read_yn(const char *line, void *arg) | 63 | static int FAST_FUNC read_yn(const char *line, void *arg) |
64 | { | 64 | { |
65 | char *dest = arg; | 65 | char *dest = arg; |
66 | 66 | ||
@@ -156,7 +156,7 @@ static void attach_option(struct option_set **opt_list, | |||
156 | 156 | ||
157 | 157 | ||
158 | /* read a dhcp option and add it to opt_list */ | 158 | /* read a dhcp option and add it to opt_list */ |
159 | static int read_opt(const char *const_line, void *arg) | 159 | static int FAST_FUNC read_opt(const char *const_line, void *arg) |
160 | { | 160 | { |
161 | struct option_set **opt_list = arg; | 161 | struct option_set **opt_list = arg; |
162 | char *opt, *val, *endptr; | 162 | char *opt, *val, *endptr; |
@@ -251,7 +251,7 @@ static int read_opt(const char *const_line, void *arg) | |||
251 | return retval; | 251 | return retval; |
252 | } | 252 | } |
253 | 253 | ||
254 | static int read_staticlease(const char *const_line, void *arg) | 254 | static int FAST_FUNC read_staticlease(const char *const_line, void *arg) |
255 | { | 255 | { |
256 | char *line; | 256 | char *line; |
257 | char *mac_string; | 257 | char *mac_string; |
@@ -278,7 +278,7 @@ static int read_staticlease(const char *const_line, void *arg) | |||
278 | 278 | ||
279 | struct config_keyword { | 279 | struct config_keyword { |
280 | const char *keyword; | 280 | const char *keyword; |
281 | int (*handler)(const char *line, void *var); | 281 | int (*handler)(const char *line, void *var) FAST_FUNC; |
282 | void *var; | 282 | void *var; |
283 | const char *def; | 283 | const char *def; |
284 | }; | 284 | }; |
diff --git a/procps/nmeter.c b/procps/nmeter.c index 0358ccd3b..5c3525dc7 100644 --- a/procps/nmeter.c +++ b/procps/nmeter.c | |||
@@ -281,14 +281,14 @@ static void scale(ullong ul) | |||
281 | #define S_STAT(a) \ | 281 | #define S_STAT(a) \ |
282 | typedef struct a { \ | 282 | typedef struct a { \ |
283 | struct s_stat *next; \ | 283 | struct s_stat *next; \ |
284 | void (*collect)(struct a *s); \ | 284 | void (*collect)(struct a *s) FAST_FUNC; \ |
285 | const char *label; | 285 | const char *label; |
286 | #define S_STAT_END(a) } a; | 286 | #define S_STAT_END(a) } a; |
287 | 287 | ||
288 | S_STAT(s_stat) | 288 | S_STAT(s_stat) |
289 | S_STAT_END(s_stat) | 289 | S_STAT_END(s_stat) |
290 | 290 | ||
291 | static void collect_literal(s_stat *s UNUSED_PARAM) | 291 | static void FAST_FUNC collect_literal(s_stat *s UNUSED_PARAM) |
292 | { | 292 | { |
293 | } | 293 | } |
294 | 294 | ||
@@ -325,7 +325,7 @@ S_STAT(cpu_stat) | |||
325 | S_STAT_END(cpu_stat) | 325 | S_STAT_END(cpu_stat) |
326 | 326 | ||
327 | 327 | ||
328 | static void collect_cpu(cpu_stat *s) | 328 | static void FAST_FUNC collect_cpu(cpu_stat *s) |
329 | { | 329 | { |
330 | ullong data[CPU_FIELDCNT] = { 0, 0, 0, 0, 0, 0, 0 }; | 330 | ullong data[CPU_FIELDCNT] = { 0, 0, 0, 0, 0, 0, 0 }; |
331 | unsigned frac[CPU_FIELDCNT] = { 0, 0, 0, 0, 0, 0, 0 }; | 331 | unsigned frac[CPU_FIELDCNT] = { 0, 0, 0, 0, 0, 0, 0 }; |
@@ -399,7 +399,7 @@ S_STAT(int_stat) | |||
399 | int no; | 399 | int no; |
400 | S_STAT_END(int_stat) | 400 | S_STAT_END(int_stat) |
401 | 401 | ||
402 | static void collect_int(int_stat *s) | 402 | static void FAST_FUNC collect_int(int_stat *s) |
403 | { | 403 | { |
404 | ullong data[1]; | 404 | ullong data[1]; |
405 | ullong old; | 405 | ullong old; |
@@ -433,7 +433,7 @@ S_STAT(ctx_stat) | |||
433 | ullong old; | 433 | ullong old; |
434 | S_STAT_END(ctx_stat) | 434 | S_STAT_END(ctx_stat) |
435 | 435 | ||
436 | static void collect_ctx(ctx_stat *s) | 436 | static void FAST_FUNC collect_ctx(ctx_stat *s) |
437 | { | 437 | { |
438 | ullong data[1]; | 438 | ullong data[1]; |
439 | ullong old; | 439 | ullong old; |
@@ -462,7 +462,7 @@ S_STAT(blk_stat) | |||
462 | ullong old[2]; | 462 | ullong old[2]; |
463 | S_STAT_END(blk_stat) | 463 | S_STAT_END(blk_stat) |
464 | 464 | ||
465 | static void collect_blk(blk_stat *s) | 465 | static void FAST_FUNC collect_blk(blk_stat *s) |
466 | { | 466 | { |
467 | ullong data[2]; | 467 | ullong data[2]; |
468 | int i; | 468 | int i; |
@@ -504,7 +504,7 @@ S_STAT(fork_stat) | |||
504 | ullong old; | 504 | ullong old; |
505 | S_STAT_END(fork_stat) | 505 | S_STAT_END(fork_stat) |
506 | 506 | ||
507 | static void collect_thread_nr(fork_stat *s UNUSED_PARAM) | 507 | static void FAST_FUNC collect_thread_nr(fork_stat *s UNUSED_PARAM) |
508 | { | 508 | { |
509 | ullong data[1]; | 509 | ullong data[1]; |
510 | 510 | ||
@@ -515,7 +515,7 @@ static void collect_thread_nr(fork_stat *s UNUSED_PARAM) | |||
515 | scale(data[0]); | 515 | scale(data[0]); |
516 | } | 516 | } |
517 | 517 | ||
518 | static void collect_fork(fork_stat *s) | 518 | static void FAST_FUNC collect_fork(fork_stat *s) |
519 | { | 519 | { |
520 | ullong data[1]; | 520 | ullong data[1]; |
521 | ullong old; | 521 | ullong old; |
@@ -549,7 +549,7 @@ S_STAT(if_stat) | |||
549 | char *device_colon; | 549 | char *device_colon; |
550 | S_STAT_END(if_stat) | 550 | S_STAT_END(if_stat) |
551 | 551 | ||
552 | static void collect_if(if_stat *s) | 552 | static void FAST_FUNC collect_if(if_stat *s) |
553 | { | 553 | { |
554 | ullong data[4]; | 554 | ullong data[4]; |
555 | int i; | 555 | int i; |
@@ -624,7 +624,7 @@ S_STAT_END(mem_stat) | |||
624 | //HugePages_Total: 0 | 624 | //HugePages_Total: 0 |
625 | //HugePages_Free: 0 | 625 | //HugePages_Free: 0 |
626 | //Hugepagesize: 4096 kB | 626 | //Hugepagesize: 4096 kB |
627 | static void collect_mem(mem_stat *s) | 627 | static void FAST_FUNC collect_mem(mem_stat *s) |
628 | { | 628 | { |
629 | ullong m_total = 0; | 629 | ullong m_total = 0; |
630 | ullong m_free = 0; | 630 | ullong m_free = 0; |
@@ -671,7 +671,7 @@ static s_stat* init_mem(const char *param) | |||
671 | S_STAT(swp_stat) | 671 | S_STAT(swp_stat) |
672 | S_STAT_END(swp_stat) | 672 | S_STAT_END(swp_stat) |
673 | 673 | ||
674 | static void collect_swp(swp_stat *s UNUSED_PARAM) | 674 | static void FAST_FUNC collect_swp(swp_stat *s UNUSED_PARAM) |
675 | { | 675 | { |
676 | ullong s_total[1]; | 676 | ullong s_total[1]; |
677 | ullong s_free[1]; | 677 | ullong s_free[1]; |
@@ -695,7 +695,7 @@ static s_stat* init_swp(const char *param UNUSED_PARAM) | |||
695 | S_STAT(fd_stat) | 695 | S_STAT(fd_stat) |
696 | S_STAT_END(fd_stat) | 696 | S_STAT_END(fd_stat) |
697 | 697 | ||
698 | static void collect_fd(fd_stat *s UNUSED_PARAM) | 698 | static void FAST_FUNC collect_fd(fd_stat *s UNUSED_PARAM) |
699 | { | 699 | { |
700 | ullong data[2]; | 700 | ullong data[2]; |
701 | 701 | ||
@@ -720,7 +720,7 @@ S_STAT(time_stat) | |||
720 | int scale; | 720 | int scale; |
721 | S_STAT_END(time_stat) | 721 | S_STAT_END(time_stat) |
722 | 722 | ||
723 | static void collect_time(time_stat *s) | 723 | static void FAST_FUNC collect_time(time_stat *s) |
724 | { | 724 | { |
725 | char buf[sizeof("12:34:56.123456")]; | 725 | char buf[sizeof("12:34:56.123456")]; |
726 | struct tm* tm; | 726 | struct tm* tm; |
@@ -755,7 +755,7 @@ static s_stat* init_time(const char *param) | |||
755 | return (s_stat*)s; | 755 | return (s_stat*)s; |
756 | } | 756 | } |
757 | 757 | ||
758 | static void collect_info(s_stat *s) | 758 | static void FAST_FUNC collect_info(s_stat *s) |
759 | { | 759 | { |
760 | gen ^= 1; | 760 | gen ^= 1; |
761 | while (s) { | 761 | while (s) { |
diff --git a/shell/ash.c b/shell/ash.c index b27b2777e..1e7429cb1 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -900,7 +900,7 @@ sharg(union node *arg, FILE *fp) | |||
900 | } | 900 | } |
901 | } | 901 | } |
902 | 902 | ||
903 | static void | 903 | static void FAST_FUNC |
904 | shcmd(union node *cmd, FILE *fp) | 904 | shcmd(union node *cmd, FILE *fp) |
905 | { | 905 | { |
906 | union node *np; | 906 | union node *np; |
@@ -1686,14 +1686,14 @@ freeparam(volatile struct shparam *param) | |||
1686 | } | 1686 | } |
1687 | 1687 | ||
1688 | #if ENABLE_ASH_GETOPTS | 1688 | #if ENABLE_ASH_GETOPTS |
1689 | static void getoptsreset(const char *value); | 1689 | static void FAST_FUNC getoptsreset(const char *value); |
1690 | #endif | 1690 | #endif |
1691 | 1691 | ||
1692 | struct var { | 1692 | struct var { |
1693 | struct var *next; /* next entry in hash list */ | 1693 | struct var *next; /* next entry in hash list */ |
1694 | int flags; /* flags are defined above */ | 1694 | int flags; /* flags are defined above */ |
1695 | const char *text; /* name=value */ | 1695 | const char *text; /* name=value */ |
1696 | void (*func)(const char *); /* function to be called when */ | 1696 | void (*func)(const char *) FAST_FUNC; /* function to be called when */ |
1697 | /* the variable gets set/unset */ | 1697 | /* the variable gets set/unset */ |
1698 | }; | 1698 | }; |
1699 | 1699 | ||
@@ -1745,17 +1745,17 @@ change_lc_ctype(const char *value) | |||
1745 | #endif | 1745 | #endif |
1746 | #if ENABLE_ASH_MAIL | 1746 | #if ENABLE_ASH_MAIL |
1747 | static void chkmail(void); | 1747 | static void chkmail(void); |
1748 | static void changemail(const char *); | 1748 | static void changemail(const char *) FAST_FUNC; |
1749 | #endif | 1749 | #endif |
1750 | static void changepath(const char *); | 1750 | static void changepath(const char *) FAST_FUNC; |
1751 | #if ENABLE_ASH_RANDOM_SUPPORT | 1751 | #if ENABLE_ASH_RANDOM_SUPPORT |
1752 | static void change_random(const char *); | 1752 | static void change_random(const char *) FAST_FUNC; |
1753 | #endif | 1753 | #endif |
1754 | 1754 | ||
1755 | static const struct { | 1755 | static const struct { |
1756 | int flags; | 1756 | int flags; |
1757 | const char *text; | 1757 | const char *text; |
1758 | void (*func)(const char *); | 1758 | void (*func)(const char *) FAST_FUNC; |
1759 | } varinit_data[] = { | 1759 | } varinit_data[] = { |
1760 | #ifdef IFS_BROKEN | 1760 | #ifdef IFS_BROKEN |
1761 | { VSTRFIXED|VTEXTFIXED , defifsvar , NULL }, | 1761 | { VSTRFIXED|VTEXTFIXED , defifsvar , NULL }, |
@@ -1861,7 +1861,7 @@ extern struct globals_var *const ash_ptr_to_globals_var; | |||
1861 | #define is_in_name(c) ((c) == '_' || isalnum((unsigned char)(c))) | 1861 | #define is_in_name(c) ((c) == '_' || isalnum((unsigned char)(c))) |
1862 | 1862 | ||
1863 | #if ENABLE_ASH_GETOPTS | 1863 | #if ENABLE_ASH_GETOPTS |
1864 | static void | 1864 | static void FAST_FUNC |
1865 | getoptsreset(const char *value) | 1865 | getoptsreset(const char *value) |
1866 | { | 1866 | { |
1867 | shellparam.optind = number(value); | 1867 | shellparam.optind = number(value); |
@@ -2492,7 +2492,7 @@ docd(const char *dest, int flags) | |||
2492 | return err; | 2492 | return err; |
2493 | } | 2493 | } |
2494 | 2494 | ||
2495 | static int | 2495 | static int FAST_FUNC |
2496 | cdcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 2496 | cdcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
2497 | { | 2497 | { |
2498 | const char *dest; | 2498 | const char *dest; |
@@ -2556,7 +2556,7 @@ cdcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
2556 | return 0; | 2556 | return 0; |
2557 | } | 2557 | } |
2558 | 2558 | ||
2559 | static int | 2559 | static int FAST_FUNC |
2560 | pwdcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 2560 | pwdcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
2561 | { | 2561 | { |
2562 | int flags; | 2562 | int flags; |
@@ -3161,7 +3161,7 @@ printalias(const struct alias *ap) | |||
3161 | /* | 3161 | /* |
3162 | * TODO - sort output | 3162 | * TODO - sort output |
3163 | */ | 3163 | */ |
3164 | static int | 3164 | static int FAST_FUNC |
3165 | aliascmd(int argc UNUSED_PARAM, char **argv) | 3165 | aliascmd(int argc UNUSED_PARAM, char **argv) |
3166 | { | 3166 | { |
3167 | char *n, *v; | 3167 | char *n, *v; |
@@ -3196,7 +3196,7 @@ aliascmd(int argc UNUSED_PARAM, char **argv) | |||
3196 | return ret; | 3196 | return ret; |
3197 | } | 3197 | } |
3198 | 3198 | ||
3199 | static int | 3199 | static int FAST_FUNC |
3200 | unaliascmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 3200 | unaliascmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
3201 | { | 3201 | { |
3202 | int i; | 3202 | int i; |
@@ -3680,7 +3680,7 @@ setjobctl(int on) | |||
3680 | doing_jobctl = on; | 3680 | doing_jobctl = on; |
3681 | } | 3681 | } |
3682 | 3682 | ||
3683 | static int | 3683 | static int FAST_FUNC |
3684 | killcmd(int argc, char **argv) | 3684 | killcmd(int argc, char **argv) |
3685 | { | 3685 | { |
3686 | int i = 1; | 3686 | int i = 1; |
@@ -3745,7 +3745,7 @@ restartjob(struct job *jp, int mode) | |||
3745 | return status; | 3745 | return status; |
3746 | } | 3746 | } |
3747 | 3747 | ||
3748 | static int | 3748 | static int FAST_FUNC |
3749 | fg_bgcmd(int argc UNUSED_PARAM, char **argv) | 3749 | fg_bgcmd(int argc UNUSED_PARAM, char **argv) |
3750 | { | 3750 | { |
3751 | struct job *jp; | 3751 | struct job *jp; |
@@ -4000,7 +4000,7 @@ showjobs(FILE *out, int mode) | |||
4000 | } | 4000 | } |
4001 | } | 4001 | } |
4002 | 4002 | ||
4003 | static int | 4003 | static int FAST_FUNC |
4004 | jobscmd(int argc UNUSED_PARAM, char **argv) | 4004 | jobscmd(int argc UNUSED_PARAM, char **argv) |
4005 | { | 4005 | { |
4006 | int mode, m; | 4006 | int mode, m; |
@@ -4053,7 +4053,7 @@ getstatus(struct job *job) | |||
4053 | return retval; | 4053 | return retval; |
4054 | } | 4054 | } |
4055 | 4055 | ||
4056 | static int | 4056 | static int FAST_FUNC |
4057 | waitcmd(int argc UNUSED_PARAM, char **argv) | 4057 | waitcmd(int argc UNUSED_PARAM, char **argv) |
4058 | { | 4058 | { |
4059 | struct job *job; | 4059 | struct job *job; |
@@ -5587,9 +5587,9 @@ struct backcmd { /* result of evalbackcmd */ | |||
5587 | /* These forward decls are needed to use "eval" code for backticks handling: */ | 5587 | /* These forward decls are needed to use "eval" code for backticks handling: */ |
5588 | static uint8_t back_exitstatus; /* exit status of backquoted command */ | 5588 | static uint8_t back_exitstatus; /* exit status of backquoted command */ |
5589 | #define EV_EXIT 01 /* exit after evaluating tree */ | 5589 | #define EV_EXIT 01 /* exit after evaluating tree */ |
5590 | static void evaltree(union node *, int); | 5590 | static void FAST_FUNC evaltree(union node *, int); |
5591 | 5591 | ||
5592 | static void | 5592 | static void FAST_FUNC |
5593 | evalbackcmd(union node *n, struct backcmd *result) | 5593 | evalbackcmd(union node *n, struct backcmd *result) |
5594 | { | 5594 | { |
5595 | int saveherefd; | 5595 | int saveherefd; |
@@ -7018,7 +7018,7 @@ casematch(union node *pattern, char *val) | |||
7018 | 7018 | ||
7019 | struct builtincmd { | 7019 | struct builtincmd { |
7020 | const char *name; | 7020 | const char *name; |
7021 | int (*builtin)(int, char **); | 7021 | int (*builtin)(int, char **) FAST_FUNC; |
7022 | /* unsigned flags; */ | 7022 | /* unsigned flags; */ |
7023 | }; | 7023 | }; |
7024 | #define IS_BUILTIN_SPECIAL(b) ((b)->name[0] & 1) | 7024 | #define IS_BUILTIN_SPECIAL(b) ((b)->name[0] & 1) |
@@ -7312,7 +7312,7 @@ addcmdentry(char *name, struct cmdentry *entry) | |||
7312 | cmdp->rehash = 0; | 7312 | cmdp->rehash = 0; |
7313 | } | 7313 | } |
7314 | 7314 | ||
7315 | static int | 7315 | static int FAST_FUNC |
7316 | hashcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 7316 | hashcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
7317 | { | 7317 | { |
7318 | struct tblentry **pp; | 7318 | struct tblentry **pp; |
@@ -7382,7 +7382,7 @@ hashcd(void) | |||
7382 | * pathval() still returns the old value at this point. | 7382 | * pathval() still returns the old value at this point. |
7383 | * Called with interrupts off. | 7383 | * Called with interrupts off. |
7384 | */ | 7384 | */ |
7385 | static void | 7385 | static void FAST_FUNC |
7386 | changepath(const char *new) | 7386 | changepath(const char *new) |
7387 | { | 7387 | { |
7388 | const char *old; | 7388 | const char *old; |
@@ -7614,7 +7614,7 @@ describe_command(char *command, int describe_command_verbose) | |||
7614 | return 0; | 7614 | return 0; |
7615 | } | 7615 | } |
7616 | 7616 | ||
7617 | static int | 7617 | static int FAST_FUNC |
7618 | typecmd(int argc UNUSED_PARAM, char **argv) | 7618 | typecmd(int argc UNUSED_PARAM, char **argv) |
7619 | { | 7619 | { |
7620 | int i = 1; | 7620 | int i = 1; |
@@ -7633,7 +7633,7 @@ typecmd(int argc UNUSED_PARAM, char **argv) | |||
7633 | } | 7633 | } |
7634 | 7634 | ||
7635 | #if ENABLE_ASH_CMDCMD | 7635 | #if ENABLE_ASH_CMDCMD |
7636 | static int | 7636 | static int FAST_FUNC |
7637 | commandcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 7637 | commandcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
7638 | { | 7638 | { |
7639 | int c; | 7639 | int c; |
@@ -8018,13 +8018,13 @@ dotrap(void) | |||
8018 | } | 8018 | } |
8019 | 8019 | ||
8020 | /* forward declarations - evaluation is fairly recursive business... */ | 8020 | /* forward declarations - evaluation is fairly recursive business... */ |
8021 | static void evalloop(union node *, int); | 8021 | static void FAST_FUNC evalloop(union node *, int); |
8022 | static void evalfor(union node *, int); | 8022 | static void FAST_FUNC evalfor(union node *, int); |
8023 | static void evalcase(union node *, int); | 8023 | static void FAST_FUNC evalcase(union node *, int); |
8024 | static void evalsubshell(union node *, int); | 8024 | static void FAST_FUNC evalsubshell(union node *, int); |
8025 | static void expredir(union node *); | 8025 | static void expredir(union node *); |
8026 | static void evalpipe(union node *, int); | 8026 | static void FAST_FUNC evalpipe(union node *, int); |
8027 | static void evalcommand(union node *, int); | 8027 | static void FAST_FUNC evalcommand(union node *, int); |
8028 | static int evalbltin(const struct builtincmd *, int, char **); | 8028 | static int evalbltin(const struct builtincmd *, int, char **); |
8029 | static void prehash(union node *); | 8029 | static void prehash(union node *); |
8030 | 8030 | ||
@@ -8032,13 +8032,13 @@ static void prehash(union node *); | |||
8032 | * Evaluate a parse tree. The value is left in the global variable | 8032 | * Evaluate a parse tree. The value is left in the global variable |
8033 | * exitstatus. | 8033 | * exitstatus. |
8034 | */ | 8034 | */ |
8035 | static void | 8035 | static void FAST_FUNC |
8036 | evaltree(union node *n, int flags) | 8036 | evaltree(union node *n, int flags) |
8037 | { | 8037 | { |
8038 | struct jmploc *volatile savehandler = exception_handler; | 8038 | struct jmploc *volatile savehandler = exception_handler; |
8039 | struct jmploc jmploc; | 8039 | struct jmploc jmploc; |
8040 | int checkexit = 0; | 8040 | int checkexit = 0; |
8041 | void (*evalfn)(union node *, int); | 8041 | void (*evalfn)(union node *, int) FAST_FUNC; |
8042 | int status; | 8042 | int status; |
8043 | int int_level; | 8043 | int int_level; |
8044 | 8044 | ||
@@ -8182,7 +8182,7 @@ static | |||
8182 | #endif | 8182 | #endif |
8183 | void evaltreenr(union node *, int) __attribute__ ((alias("evaltree"),__noreturn__)); | 8183 | void evaltreenr(union node *, int) __attribute__ ((alias("evaltree"),__noreturn__)); |
8184 | 8184 | ||
8185 | static void | 8185 | static void FAST_FUNC |
8186 | evalloop(union node *n, int flags) | 8186 | evalloop(union node *n, int flags) |
8187 | { | 8187 | { |
8188 | int status; | 8188 | int status; |
@@ -8218,7 +8218,7 @@ evalloop(union node *n, int flags) | |||
8218 | exitstatus = status; | 8218 | exitstatus = status; |
8219 | } | 8219 | } |
8220 | 8220 | ||
8221 | static void | 8221 | static void FAST_FUNC |
8222 | evalfor(union node *n, int flags) | 8222 | evalfor(union node *n, int flags) |
8223 | { | 8223 | { |
8224 | struct arglist arglist; | 8224 | struct arglist arglist; |
@@ -8258,7 +8258,7 @@ evalfor(union node *n, int flags) | |||
8258 | popstackmark(&smark); | 8258 | popstackmark(&smark); |
8259 | } | 8259 | } |
8260 | 8260 | ||
8261 | static void | 8261 | static void FAST_FUNC |
8262 | evalcase(union node *n, int flags) | 8262 | evalcase(union node *n, int flags) |
8263 | { | 8263 | { |
8264 | union node *cp; | 8264 | union node *cp; |
@@ -8288,7 +8288,7 @@ evalcase(union node *n, int flags) | |||
8288 | /* | 8288 | /* |
8289 | * Kick off a subshell to evaluate a tree. | 8289 | * Kick off a subshell to evaluate a tree. |
8290 | */ | 8290 | */ |
8291 | static void | 8291 | static void FAST_FUNC |
8292 | evalsubshell(union node *n, int flags) | 8292 | evalsubshell(union node *n, int flags) |
8293 | { | 8293 | { |
8294 | struct job *jp; | 8294 | struct job *jp; |
@@ -8375,7 +8375,7 @@ expredir(union node *n) | |||
8375 | * of the shell, which make the last process in a pipeline the parent | 8375 | * of the shell, which make the last process in a pipeline the parent |
8376 | * of all the rest.) | 8376 | * of all the rest.) |
8377 | */ | 8377 | */ |
8378 | static void | 8378 | static void FAST_FUNC |
8379 | evalpipe(union node *n, int flags) | 8379 | evalpipe(union node *n, int flags) |
8380 | { | 8380 | { |
8381 | struct job *jp; | 8381 | struct job *jp; |
@@ -8644,7 +8644,7 @@ mklocal(char *name) | |||
8644 | /* | 8644 | /* |
8645 | * The "local" command. | 8645 | * The "local" command. |
8646 | */ | 8646 | */ |
8647 | static int | 8647 | static int FAST_FUNC |
8648 | localcmd(int argc UNUSED_PARAM, char **argv) | 8648 | localcmd(int argc UNUSED_PARAM, char **argv) |
8649 | { | 8649 | { |
8650 | char *name; | 8650 | char *name; |
@@ -8656,19 +8656,19 @@ localcmd(int argc UNUSED_PARAM, char **argv) | |||
8656 | return 0; | 8656 | return 0; |
8657 | } | 8657 | } |
8658 | 8658 | ||
8659 | static int | 8659 | static int FAST_FUNC |
8660 | falsecmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 8660 | falsecmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
8661 | { | 8661 | { |
8662 | return 1; | 8662 | return 1; |
8663 | } | 8663 | } |
8664 | 8664 | ||
8665 | static int | 8665 | static int FAST_FUNC |
8666 | truecmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 8666 | truecmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
8667 | { | 8667 | { |
8668 | return 0; | 8668 | return 0; |
8669 | } | 8669 | } |
8670 | 8670 | ||
8671 | static int | 8671 | static int FAST_FUNC |
8672 | execcmd(int argc UNUSED_PARAM, char **argv) | 8672 | execcmd(int argc UNUSED_PARAM, char **argv) |
8673 | { | 8673 | { |
8674 | if (argv[1]) { | 8674 | if (argv[1]) { |
@@ -8683,7 +8683,7 @@ execcmd(int argc UNUSED_PARAM, char **argv) | |||
8683 | /* | 8683 | /* |
8684 | * The return command. | 8684 | * The return command. |
8685 | */ | 8685 | */ |
8686 | static int | 8686 | static int FAST_FUNC |
8687 | returncmd(int argc UNUSED_PARAM, char **argv) | 8687 | returncmd(int argc UNUSED_PARAM, char **argv) |
8688 | { | 8688 | { |
8689 | /* | 8689 | /* |
@@ -8695,28 +8695,28 @@ returncmd(int argc UNUSED_PARAM, char **argv) | |||
8695 | } | 8695 | } |
8696 | 8696 | ||
8697 | /* Forward declarations for builtintab[] */ | 8697 | /* Forward declarations for builtintab[] */ |
8698 | static int breakcmd(int, char **); | 8698 | static int breakcmd(int, char **) FAST_FUNC; |
8699 | static int dotcmd(int, char **); | 8699 | static int dotcmd(int, char **) FAST_FUNC; |
8700 | static int evalcmd(int, char **); | 8700 | static int evalcmd(int, char **) FAST_FUNC; |
8701 | static int exitcmd(int, char **); | 8701 | static int exitcmd(int, char **) FAST_FUNC; |
8702 | static int exportcmd(int, char **); | 8702 | static int exportcmd(int, char **) FAST_FUNC; |
8703 | #if ENABLE_ASH_GETOPTS | 8703 | #if ENABLE_ASH_GETOPTS |
8704 | static int getoptscmd(int, char **); | 8704 | static int getoptscmd(int, char **) FAST_FUNC; |
8705 | #endif | 8705 | #endif |
8706 | #if !ENABLE_FEATURE_SH_EXTRA_QUIET | 8706 | #if !ENABLE_FEATURE_SH_EXTRA_QUIET |
8707 | static int helpcmd(int, char **); | 8707 | static int helpcmd(int, char **) FAST_FUNC; |
8708 | #endif | 8708 | #endif |
8709 | #if ENABLE_SH_MATH_SUPPORT | 8709 | #if ENABLE_SH_MATH_SUPPORT |
8710 | static int letcmd(int, char **); | 8710 | static int letcmd(int, char **) FAST_FUNC; |
8711 | #endif | 8711 | #endif |
8712 | static int readcmd(int, char **); | 8712 | static int readcmd(int, char **) FAST_FUNC; |
8713 | static int setcmd(int, char **); | 8713 | static int setcmd(int, char **) FAST_FUNC; |
8714 | static int shiftcmd(int, char **); | 8714 | static int shiftcmd(int, char **) FAST_FUNC; |
8715 | static int timescmd(int, char **); | 8715 | static int timescmd(int, char **) FAST_FUNC; |
8716 | static int trapcmd(int, char **); | 8716 | static int trapcmd(int, char **) FAST_FUNC; |
8717 | static int umaskcmd(int, char **); | 8717 | static int umaskcmd(int, char **) FAST_FUNC; |
8718 | static int unsetcmd(int, char **); | 8718 | static int unsetcmd(int, char **) FAST_FUNC; |
8719 | static int ulimitcmd(int, char **); | 8719 | static int ulimitcmd(int, char **) FAST_FUNC; |
8720 | 8720 | ||
8721 | #define BUILTIN_NOSPEC "0" | 8721 | #define BUILTIN_NOSPEC "0" |
8722 | #define BUILTIN_SPECIAL "1" | 8722 | #define BUILTIN_SPECIAL "1" |
@@ -8739,9 +8739,10 @@ static int ulimitcmd(int, char **); | |||
8739 | * Apart from the above, [[ expr ]] should work as [ expr ] | 8739 | * Apart from the above, [[ expr ]] should work as [ expr ] |
8740 | */ | 8740 | */ |
8741 | 8741 | ||
8742 | #define echocmd echo_main | 8742 | /* Stubs for calling non-FAST_FUNC's */ |
8743 | #define printfcmd printf_main | 8743 | static int FAST_FUNC echocmd(int argc, char **argv) { return echo_main(argc, argv); } |
8744 | #define testcmd test_main | 8744 | static int FAST_FUNC printfcmd(int argc, char **argv) { return printf_main(argc, argv); } |
8745 | static int FAST_FUNC testcmd(int argc, char **argv) { return test_main(argc, argv); } | ||
8745 | 8746 | ||
8746 | /* Keep these in proper order since it is searched via bsearch() */ | 8747 | /* Keep these in proper order since it is searched via bsearch() */ |
8747 | static const struct builtincmd builtintab[] = { | 8748 | static const struct builtincmd builtintab[] = { |
@@ -8864,14 +8865,14 @@ isassignment(const char *p) | |||
8864 | return 0; | 8865 | return 0; |
8865 | return *q == '='; | 8866 | return *q == '='; |
8866 | } | 8867 | } |
8867 | static int | 8868 | static int FAST_FUNC |
8868 | bltincmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 8869 | bltincmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
8869 | { | 8870 | { |
8870 | /* Preserve exitstatus of a previous possible redirection | 8871 | /* Preserve exitstatus of a previous possible redirection |
8871 | * as POSIX mandates */ | 8872 | * as POSIX mandates */ |
8872 | return back_exitstatus; | 8873 | return back_exitstatus; |
8873 | } | 8874 | } |
8874 | static void | 8875 | static void FAST_FUNC |
8875 | evalcommand(union node *cmd, int flags) | 8876 | evalcommand(union node *cmd, int flags) |
8876 | { | 8877 | { |
8877 | static const struct builtincmd null_bltin = { | 8878 | static const struct builtincmd null_bltin = { |
@@ -9189,7 +9190,7 @@ prehash(union node *n) | |||
9189 | * be an error to break out of more loops than exist, but it isn't | 9190 | * be an error to break out of more loops than exist, but it isn't |
9190 | * in the standard shell so we don't make it one here. | 9191 | * in the standard shell so we don't make it one here. |
9191 | */ | 9192 | */ |
9192 | static int | 9193 | static int FAST_FUNC |
9193 | breakcmd(int argc UNUSED_PARAM, char **argv) | 9194 | breakcmd(int argc UNUSED_PARAM, char **argv) |
9194 | { | 9195 | { |
9195 | int n = argv[1] ? number(argv[1]) : 1; | 9196 | int n = argv[1] ? number(argv[1]) : 1; |
@@ -9734,7 +9735,7 @@ chkmail(void) | |||
9734 | popstackmark(&smark); | 9735 | popstackmark(&smark); |
9735 | } | 9736 | } |
9736 | 9737 | ||
9737 | static void | 9738 | static void FAST_FUNC |
9738 | changemail(const char *val UNUSED_PARAM) | 9739 | changemail(const char *val UNUSED_PARAM) |
9739 | { | 9740 | { |
9740 | mail_var_path_changed = 1; | 9741 | mail_var_path_changed = 1; |
@@ -9890,7 +9891,7 @@ options(int cmdline) | |||
9890 | /* | 9891 | /* |
9891 | * The shift builtin command. | 9892 | * The shift builtin command. |
9892 | */ | 9893 | */ |
9893 | static int | 9894 | static int FAST_FUNC |
9894 | shiftcmd(int argc UNUSED_PARAM, char **argv) | 9895 | shiftcmd(int argc UNUSED_PARAM, char **argv) |
9895 | { | 9896 | { |
9896 | int n; | 9897 | int n; |
@@ -9952,7 +9953,7 @@ showvars(const char *sep_prefix, int on, int off) | |||
9952 | /* | 9953 | /* |
9953 | * The set command builtin. | 9954 | * The set command builtin. |
9954 | */ | 9955 | */ |
9955 | static int | 9956 | static int FAST_FUNC |
9956 | setcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 9957 | setcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
9957 | { | 9958 | { |
9958 | int retval; | 9959 | int retval; |
@@ -9973,7 +9974,7 @@ setcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
9973 | } | 9974 | } |
9974 | 9975 | ||
9975 | #if ENABLE_ASH_RANDOM_SUPPORT | 9976 | #if ENABLE_ASH_RANDOM_SUPPORT |
9976 | static void | 9977 | static void FAST_FUNC |
9977 | change_random(const char *value) | 9978 | change_random(const char *value) |
9978 | { | 9979 | { |
9979 | /* Galois LFSR parameter */ | 9980 | /* Galois LFSR parameter */ |
@@ -10103,7 +10104,7 @@ getopts(char *optstr, char *optvar, char **optfirst, int *param_optind, int *opt | |||
10103 | * be processed in the current argument. If shellparam.optnext is NULL, | 10104 | * be processed in the current argument. If shellparam.optnext is NULL, |
10104 | * then it's the first time getopts has been called. | 10105 | * then it's the first time getopts has been called. |
10105 | */ | 10106 | */ |
10106 | static int | 10107 | static int FAST_FUNC |
10107 | getoptscmd(int argc, char **argv) | 10108 | getoptscmd(int argc, char **argv) |
10108 | { | 10109 | { |
10109 | char **optbase; | 10110 | char **optbase; |
@@ -11792,7 +11793,7 @@ evalstring(char *s, int mask) | |||
11792 | /* | 11793 | /* |
11793 | * The eval command. | 11794 | * The eval command. |
11794 | */ | 11795 | */ |
11795 | static int | 11796 | static int FAST_FUNC |
11796 | evalcmd(int argc UNUSED_PARAM, char **argv) | 11797 | evalcmd(int argc UNUSED_PARAM, char **argv) |
11797 | { | 11798 | { |
11798 | char *p; | 11799 | char *p; |
@@ -11917,7 +11918,7 @@ find_dot_file(char *name) | |||
11917 | /* NOTREACHED */ | 11918 | /* NOTREACHED */ |
11918 | } | 11919 | } |
11919 | 11920 | ||
11920 | static int | 11921 | static int FAST_FUNC |
11921 | dotcmd(int argc, char **argv) | 11922 | dotcmd(int argc, char **argv) |
11922 | { | 11923 | { |
11923 | struct strlist *sp; | 11924 | struct strlist *sp; |
@@ -11952,7 +11953,7 @@ dotcmd(int argc, char **argv) | |||
11952 | return status; | 11953 | return status; |
11953 | } | 11954 | } |
11954 | 11955 | ||
11955 | static int | 11956 | static int FAST_FUNC |
11956 | exitcmd(int argc UNUSED_PARAM, char **argv) | 11957 | exitcmd(int argc UNUSED_PARAM, char **argv) |
11957 | { | 11958 | { |
11958 | if (stoppedjobs()) | 11959 | if (stoppedjobs()) |
@@ -12176,7 +12177,7 @@ find_command(char *name, struct cmdentry *entry, int act, const char *path) | |||
12176 | /* | 12177 | /* |
12177 | * The trap builtin. | 12178 | * The trap builtin. |
12178 | */ | 12179 | */ |
12179 | static int | 12180 | static int FAST_FUNC |
12180 | trapcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 12181 | trapcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
12181 | { | 12182 | { |
12182 | char *action; | 12183 | char *action; |
@@ -12226,7 +12227,7 @@ trapcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
12226 | /* | 12227 | /* |
12227 | * Lists available builtins | 12228 | * Lists available builtins |
12228 | */ | 12229 | */ |
12229 | static int | 12230 | static int FAST_FUNC |
12230 | helpcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 12231 | helpcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
12231 | { | 12232 | { |
12232 | unsigned col; | 12233 | unsigned col; |
@@ -12264,7 +12265,7 @@ helpcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
12264 | /* | 12265 | /* |
12265 | * The export and readonly commands. | 12266 | * The export and readonly commands. |
12266 | */ | 12267 | */ |
12267 | static int | 12268 | static int FAST_FUNC |
12268 | exportcmd(int argc UNUSED_PARAM, char **argv) | 12269 | exportcmd(int argc UNUSED_PARAM, char **argv) |
12269 | { | 12270 | { |
12270 | struct var *vp; | 12271 | struct var *vp; |
@@ -12315,7 +12316,7 @@ unsetfunc(const char *name) | |||
12315 | * variable to allow a function to be unset when there is a readonly variable | 12316 | * variable to allow a function to be unset when there is a readonly variable |
12316 | * with the same name. | 12317 | * with the same name. |
12317 | */ | 12318 | */ |
12318 | static int | 12319 | static int FAST_FUNC |
12319 | unsetcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 12320 | unsetcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
12320 | { | 12321 | { |
12321 | char **ap; | 12322 | char **ap; |
@@ -12353,7 +12354,7 @@ static const unsigned char timescmd_str[] ALIGN1 = { | |||
12353 | 0 | 12354 | 0 |
12354 | }; | 12355 | }; |
12355 | 12356 | ||
12356 | static int | 12357 | static int FAST_FUNC |
12357 | timescmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 12358 | timescmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
12358 | { | 12359 | { |
12359 | long clk_tck, s, t; | 12360 | long clk_tck, s, t; |
@@ -12383,7 +12384,7 @@ timescmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
12383 | * | 12384 | * |
12384 | * Copyright (C) 2003 Vladimir Oleynik <dzo@simtreas.ru> | 12385 | * Copyright (C) 2003 Vladimir Oleynik <dzo@simtreas.ru> |
12385 | */ | 12386 | */ |
12386 | static int | 12387 | static int FAST_FUNC |
12387 | letcmd(int argc UNUSED_PARAM, char **argv) | 12388 | letcmd(int argc UNUSED_PARAM, char **argv) |
12388 | { | 12389 | { |
12389 | arith_t i; | 12390 | arith_t i; |
@@ -12425,7 +12426,7 @@ typedef enum __rlimit_resource rlim_t; | |||
12425 | * -d DELIM End on DELIM char, not newline | 12426 | * -d DELIM End on DELIM char, not newline |
12426 | * -e Use line editing (tty only) | 12427 | * -e Use line editing (tty only) |
12427 | */ | 12428 | */ |
12428 | static int | 12429 | static int FAST_FUNC |
12429 | readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 12430 | readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
12430 | { | 12431 | { |
12431 | static const char *const arg_REPLY[] = { "REPLY", NULL }; | 12432 | static const char *const arg_REPLY[] = { "REPLY", NULL }; |
@@ -12635,7 +12636,7 @@ readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
12635 | return status; | 12636 | return status; |
12636 | } | 12637 | } |
12637 | 12638 | ||
12638 | static int | 12639 | static int FAST_FUNC |
12639 | umaskcmd(int argc UNUSED_PARAM, char **argv) | 12640 | umaskcmd(int argc UNUSED_PARAM, char **argv) |
12640 | { | 12641 | { |
12641 | static const char permuser[3] ALIGN1 = "ugo"; | 12642 | static const char permuser[3] ALIGN1 = "ugo"; |
@@ -12811,7 +12812,7 @@ printlim(enum limtype how, const struct rlimit *limit, | |||
12811 | } | 12812 | } |
12812 | } | 12813 | } |
12813 | 12814 | ||
12814 | static int | 12815 | static int FAST_FUNC |
12815 | ulimitcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | 12816 | ulimitcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
12816 | { | 12817 | { |
12817 | int c; | 12818 | int c; |
diff --git a/shell/hush.c b/shell/hush.c index a6db16c35..f34fdd402 100644 --- a/shell/hush.c +++ b/shell/hush.c | |||
@@ -256,8 +256,8 @@ typedef struct in_str { | |||
256 | smallint promptmode; /* 0: PS1, 1: PS2 */ | 256 | smallint promptmode; /* 0: PS1, 1: PS2 */ |
257 | #endif | 257 | #endif |
258 | FILE *file; | 258 | FILE *file; |
259 | int (*get) (struct in_str *); | 259 | int (*get) (struct in_str *) FAST_FUNC; |
260 | int (*peek) (struct in_str *); | 260 | int (*peek) (struct in_str *) FAST_FUNC; |
261 | } in_str; | 261 | } in_str; |
262 | #define i_getch(input) ((input)->get(input)) | 262 | #define i_getch(input) ((input)->get(input)) |
263 | #define i_peek(input) ((input)->peek(input)) | 263 | #define i_peek(input) ((input)->peek(input)) |
@@ -537,43 +537,43 @@ struct globals { | |||
537 | 537 | ||
538 | 538 | ||
539 | /* Function prototypes for builtins */ | 539 | /* Function prototypes for builtins */ |
540 | static int builtin_cd(char **argv); | 540 | static int builtin_cd(char **argv) FAST_FUNC; |
541 | static int builtin_echo(char **argv); | 541 | static int builtin_echo(char **argv) FAST_FUNC; |
542 | static int builtin_eval(char **argv); | 542 | static int builtin_eval(char **argv) FAST_FUNC; |
543 | static int builtin_exec(char **argv); | 543 | static int builtin_exec(char **argv) FAST_FUNC; |
544 | static int builtin_exit(char **argv); | 544 | static int builtin_exit(char **argv) FAST_FUNC; |
545 | static int builtin_export(char **argv); | 545 | static int builtin_export(char **argv) FAST_FUNC; |
546 | #if ENABLE_HUSH_JOB | 546 | #if ENABLE_HUSH_JOB |
547 | static int builtin_fg_bg(char **argv); | 547 | static int builtin_fg_bg(char **argv) FAST_FUNC; |
548 | static int builtin_jobs(char **argv); | 548 | static int builtin_jobs(char **argv) FAST_FUNC; |
549 | #endif | 549 | #endif |
550 | #if ENABLE_HUSH_HELP | 550 | #if ENABLE_HUSH_HELP |
551 | static int builtin_help(char **argv); | 551 | static int builtin_help(char **argv) FAST_FUNC; |
552 | #endif | 552 | #endif |
553 | #if ENABLE_HUSH_LOCAL | 553 | #if ENABLE_HUSH_LOCAL |
554 | static int builtin_local(char **argv); | 554 | static int builtin_local(char **argv) FAST_FUNC; |
555 | #endif | 555 | #endif |
556 | #if HUSH_DEBUG | 556 | #if HUSH_DEBUG |
557 | static int builtin_memleak(char **argv); | 557 | static int builtin_memleak(char **argv) FAST_FUNC; |
558 | #endif | 558 | #endif |
559 | static int builtin_pwd(char **argv); | 559 | static int builtin_pwd(char **argv) FAST_FUNC; |
560 | static int builtin_read(char **argv); | 560 | static int builtin_read(char **argv) FAST_FUNC; |
561 | static int builtin_set(char **argv); | 561 | static int builtin_set(char **argv) FAST_FUNC; |
562 | static int builtin_shift(char **argv); | 562 | static int builtin_shift(char **argv) FAST_FUNC; |
563 | static int builtin_source(char **argv); | 563 | static int builtin_source(char **argv) FAST_FUNC; |
564 | static int builtin_test(char **argv); | 564 | static int builtin_test(char **argv) FAST_FUNC; |
565 | static int builtin_trap(char **argv); | 565 | static int builtin_trap(char **argv) FAST_FUNC; |
566 | static int builtin_type(char **argv); | 566 | static int builtin_type(char **argv) FAST_FUNC; |
567 | static int builtin_true(char **argv); | 567 | static int builtin_true(char **argv) FAST_FUNC; |
568 | static int builtin_umask(char **argv); | 568 | static int builtin_umask(char **argv) FAST_FUNC; |
569 | static int builtin_unset(char **argv); | 569 | static int builtin_unset(char **argv) FAST_FUNC; |
570 | static int builtin_wait(char **argv); | 570 | static int builtin_wait(char **argv) FAST_FUNC; |
571 | #if ENABLE_HUSH_LOOPS | 571 | #if ENABLE_HUSH_LOOPS |
572 | static int builtin_break(char **argv); | 572 | static int builtin_break(char **argv) FAST_FUNC; |
573 | static int builtin_continue(char **argv); | 573 | static int builtin_continue(char **argv) FAST_FUNC; |
574 | #endif | 574 | #endif |
575 | #if ENABLE_HUSH_FUNCTIONS | 575 | #if ENABLE_HUSH_FUNCTIONS |
576 | static int builtin_return(char **argv); | 576 | static int builtin_return(char **argv) FAST_FUNC; |
577 | #endif | 577 | #endif |
578 | 578 | ||
579 | /* Table of built-in functions. They can be forked or not, depending on | 579 | /* Table of built-in functions. They can be forked or not, depending on |
@@ -584,7 +584,7 @@ static int builtin_return(char **argv); | |||
584 | * still be set at the end. */ | 584 | * still be set at the end. */ |
585 | struct built_in_command { | 585 | struct built_in_command { |
586 | const char *cmd; | 586 | const char *cmd; |
587 | int (*function)(char **argv); | 587 | int (*function)(char **argv) FAST_FUNC; |
588 | #if ENABLE_HUSH_HELP | 588 | #if ENABLE_HUSH_HELP |
589 | const char *descr; | 589 | const char *descr; |
590 | # define BLTIN(cmd, func, help) { cmd, func, help } | 590 | # define BLTIN(cmd, func, help) { cmd, func, help } |
@@ -1541,7 +1541,7 @@ static struct variable *set_vars_and_save_old(char **strings) | |||
1541 | /* | 1541 | /* |
1542 | * in_str support | 1542 | * in_str support |
1543 | */ | 1543 | */ |
1544 | static int static_get(struct in_str *i) | 1544 | static int FAST_FUNC static_get(struct in_str *i) |
1545 | { | 1545 | { |
1546 | int ch = *i->p++; | 1546 | int ch = *i->p++; |
1547 | if (ch != '\0') | 1547 | if (ch != '\0') |
@@ -1550,7 +1550,7 @@ static int static_get(struct in_str *i) | |||
1550 | return EOF; | 1550 | return EOF; |
1551 | } | 1551 | } |
1552 | 1552 | ||
1553 | static int static_peek(struct in_str *i) | 1553 | static int FAST_FUNC static_peek(struct in_str *i) |
1554 | { | 1554 | { |
1555 | return *i->p; | 1555 | return *i->p; |
1556 | } | 1556 | } |
@@ -1629,7 +1629,7 @@ static void get_user_input(struct in_str *i) | |||
1629 | 1629 | ||
1630 | /* This is the magic location that prints prompts | 1630 | /* This is the magic location that prints prompts |
1631 | * and gets data back from the user */ | 1631 | * and gets data back from the user */ |
1632 | static int file_get(struct in_str *i) | 1632 | static int FAST_FUNC file_get(struct in_str *i) |
1633 | { | 1633 | { |
1634 | int ch; | 1634 | int ch; |
1635 | 1635 | ||
@@ -1668,7 +1668,7 @@ static int file_get(struct in_str *i) | |||
1668 | /* All callers guarantee this routine will never | 1668 | /* All callers guarantee this routine will never |
1669 | * be used right after a newline, so prompting is not needed. | 1669 | * be used right after a newline, so prompting is not needed. |
1670 | */ | 1670 | */ |
1671 | static int file_peek(struct in_str *i) | 1671 | static int FAST_FUNC file_peek(struct in_str *i) |
1672 | { | 1672 | { |
1673 | int ch; | 1673 | int ch; |
1674 | if (i->p && *i->p) { | 1674 | if (i->p && *i->p) { |
@@ -6560,12 +6560,12 @@ int lash_main(int argc, char **argv) | |||
6560 | /* | 6560 | /* |
6561 | * Built-ins | 6561 | * Built-ins |
6562 | */ | 6562 | */ |
6563 | static int builtin_true(char **argv UNUSED_PARAM) | 6563 | static int FAST_FUNC builtin_true(char **argv UNUSED_PARAM) |
6564 | { | 6564 | { |
6565 | return 0; | 6565 | return 0; |
6566 | } | 6566 | } |
6567 | 6567 | ||
6568 | static int builtin_test(char **argv) | 6568 | static int FAST_FUNC builtin_test(char **argv) |
6569 | { | 6569 | { |
6570 | int argc = 0; | 6570 | int argc = 0; |
6571 | while (*argv) { | 6571 | while (*argv) { |
@@ -6575,7 +6575,7 @@ static int builtin_test(char **argv) | |||
6575 | return test_main(argc, argv - argc); | 6575 | return test_main(argc, argv - argc); |
6576 | } | 6576 | } |
6577 | 6577 | ||
6578 | static int builtin_echo(char **argv) | 6578 | static int FAST_FUNC builtin_echo(char **argv) |
6579 | { | 6579 | { |
6580 | int argc = 0; | 6580 | int argc = 0; |
6581 | while (*argv) { | 6581 | while (*argv) { |
@@ -6585,7 +6585,7 @@ static int builtin_echo(char **argv) | |||
6585 | return echo_main(argc, argv - argc); | 6585 | return echo_main(argc, argv - argc); |
6586 | } | 6586 | } |
6587 | 6587 | ||
6588 | static int builtin_eval(char **argv) | 6588 | static int FAST_FUNC builtin_eval(char **argv) |
6589 | { | 6589 | { |
6590 | int rcode = EXIT_SUCCESS; | 6590 | int rcode = EXIT_SUCCESS; |
6591 | 6591 | ||
@@ -6602,7 +6602,7 @@ static int builtin_eval(char **argv) | |||
6602 | return rcode; | 6602 | return rcode; |
6603 | } | 6603 | } |
6604 | 6604 | ||
6605 | static int builtin_cd(char **argv) | 6605 | static int FAST_FUNC builtin_cd(char **argv) |
6606 | { | 6606 | { |
6607 | const char *newdir = argv[1]; | 6607 | const char *newdir = argv[1]; |
6608 | if (newdir == NULL) { | 6608 | if (newdir == NULL) { |
@@ -6621,7 +6621,7 @@ static int builtin_cd(char **argv) | |||
6621 | return EXIT_SUCCESS; | 6621 | return EXIT_SUCCESS; |
6622 | } | 6622 | } |
6623 | 6623 | ||
6624 | static int builtin_exec(char **argv) | 6624 | static int FAST_FUNC builtin_exec(char **argv) |
6625 | { | 6625 | { |
6626 | if (*++argv == NULL) | 6626 | if (*++argv == NULL) |
6627 | return EXIT_SUCCESS; /* bash does this */ | 6627 | return EXIT_SUCCESS; /* bash does this */ |
@@ -6635,7 +6635,7 @@ static int builtin_exec(char **argv) | |||
6635 | } | 6635 | } |
6636 | } | 6636 | } |
6637 | 6637 | ||
6638 | static int builtin_exit(char **argv) | 6638 | static int FAST_FUNC builtin_exit(char **argv) |
6639 | { | 6639 | { |
6640 | debug_printf_exec("%s()\n", __func__); | 6640 | debug_printf_exec("%s()\n", __func__); |
6641 | 6641 | ||
@@ -6730,7 +6730,7 @@ static void helper_export_local(char **argv, int exp, int lvl) | |||
6730 | } while (*++argv); | 6730 | } while (*++argv); |
6731 | } | 6731 | } |
6732 | 6732 | ||
6733 | static int builtin_export(char **argv) | 6733 | static int FAST_FUNC builtin_export(char **argv) |
6734 | { | 6734 | { |
6735 | unsigned opt_unexport; | 6735 | unsigned opt_unexport; |
6736 | 6736 | ||
@@ -6778,7 +6778,7 @@ static int builtin_export(char **argv) | |||
6778 | } | 6778 | } |
6779 | 6779 | ||
6780 | #if ENABLE_HUSH_LOCAL | 6780 | #if ENABLE_HUSH_LOCAL |
6781 | static int builtin_local(char **argv) | 6781 | static int FAST_FUNC builtin_local(char **argv) |
6782 | { | 6782 | { |
6783 | if (G.func_nest_level == 0) { | 6783 | if (G.func_nest_level == 0) { |
6784 | bb_error_msg("%s: not in a function", argv[0]); | 6784 | bb_error_msg("%s: not in a function", argv[0]); |
@@ -6789,7 +6789,7 @@ static int builtin_local(char **argv) | |||
6789 | } | 6789 | } |
6790 | #endif | 6790 | #endif |
6791 | 6791 | ||
6792 | static int builtin_trap(char **argv) | 6792 | static int FAST_FUNC builtin_trap(char **argv) |
6793 | { | 6793 | { |
6794 | int sig; | 6794 | int sig; |
6795 | char *new_cmd; | 6795 | char *new_cmd; |
@@ -6879,7 +6879,7 @@ static int builtin_trap(char **argv) | |||
6879 | } | 6879 | } |
6880 | 6880 | ||
6881 | /* http://www.opengroup.org/onlinepubs/9699919799/utilities/type.html */ | 6881 | /* http://www.opengroup.org/onlinepubs/9699919799/utilities/type.html */ |
6882 | static int builtin_type(char **argv) | 6882 | static int FAST_FUNC builtin_type(char **argv) |
6883 | { | 6883 | { |
6884 | int ret = EXIT_SUCCESS; | 6884 | int ret = EXIT_SUCCESS; |
6885 | 6885 | ||
@@ -6913,7 +6913,7 @@ static int builtin_type(char **argv) | |||
6913 | 6913 | ||
6914 | #if ENABLE_HUSH_JOB | 6914 | #if ENABLE_HUSH_JOB |
6915 | /* built-in 'fg' and 'bg' handler */ | 6915 | /* built-in 'fg' and 'bg' handler */ |
6916 | static int builtin_fg_bg(char **argv) | 6916 | static int FAST_FUNC builtin_fg_bg(char **argv) |
6917 | { | 6917 | { |
6918 | int i, jobnum; | 6918 | int i, jobnum; |
6919 | struct pipe *pi; | 6919 | struct pipe *pi; |
@@ -6976,7 +6976,7 @@ static int builtin_fg_bg(char **argv) | |||
6976 | #endif | 6976 | #endif |
6977 | 6977 | ||
6978 | #if ENABLE_HUSH_HELP | 6978 | #if ENABLE_HUSH_HELP |
6979 | static int builtin_help(char **argv UNUSED_PARAM) | 6979 | static int FAST_FUNC builtin_help(char **argv UNUSED_PARAM) |
6980 | { | 6980 | { |
6981 | const struct built_in_command *x; | 6981 | const struct built_in_command *x; |
6982 | 6982 | ||
@@ -6992,7 +6992,7 @@ static int builtin_help(char **argv UNUSED_PARAM) | |||
6992 | #endif | 6992 | #endif |
6993 | 6993 | ||
6994 | #if ENABLE_HUSH_JOB | 6994 | #if ENABLE_HUSH_JOB |
6995 | static int builtin_jobs(char **argv UNUSED_PARAM) | 6995 | static int FAST_FUNC builtin_jobs(char **argv UNUSED_PARAM) |
6996 | { | 6996 | { |
6997 | struct pipe *job; | 6997 | struct pipe *job; |
6998 | const char *status_string; | 6998 | const char *status_string; |
@@ -7010,7 +7010,7 @@ static int builtin_jobs(char **argv UNUSED_PARAM) | |||
7010 | #endif | 7010 | #endif |
7011 | 7011 | ||
7012 | #if HUSH_DEBUG | 7012 | #if HUSH_DEBUG |
7013 | static int builtin_memleak(char **argv UNUSED_PARAM) | 7013 | static int FAST_FUNC builtin_memleak(char **argv UNUSED_PARAM) |
7014 | { | 7014 | { |
7015 | void *p; | 7015 | void *p; |
7016 | unsigned long l; | 7016 | unsigned long l; |
@@ -7039,13 +7039,13 @@ static int builtin_memleak(char **argv UNUSED_PARAM) | |||
7039 | } | 7039 | } |
7040 | #endif | 7040 | #endif |
7041 | 7041 | ||
7042 | static int builtin_pwd(char **argv UNUSED_PARAM) | 7042 | static int FAST_FUNC builtin_pwd(char **argv UNUSED_PARAM) |
7043 | { | 7043 | { |
7044 | puts(set_cwd()); | 7044 | puts(set_cwd()); |
7045 | return EXIT_SUCCESS; | 7045 | return EXIT_SUCCESS; |
7046 | } | 7046 | } |
7047 | 7047 | ||
7048 | static int builtin_read(char **argv) | 7048 | static int FAST_FUNC builtin_read(char **argv) |
7049 | { | 7049 | { |
7050 | char *string; | 7050 | char *string; |
7051 | const char *name = "REPLY"; | 7051 | const char *name = "REPLY"; |
@@ -7088,7 +7088,7 @@ static int builtin_read(char **argv) | |||
7088 | * | 7088 | * |
7089 | * So far, we only support "set -- [argument...]" and some of the short names. | 7089 | * So far, we only support "set -- [argument...]" and some of the short names. |
7090 | */ | 7090 | */ |
7091 | static int builtin_set(char **argv) | 7091 | static int FAST_FUNC builtin_set(char **argv) |
7092 | { | 7092 | { |
7093 | int n; | 7093 | int n; |
7094 | char **pp, **g_argv; | 7094 | char **pp, **g_argv; |
@@ -7147,7 +7147,7 @@ static int builtin_set(char **argv) | |||
7147 | return EXIT_FAILURE; | 7147 | return EXIT_FAILURE; |
7148 | } | 7148 | } |
7149 | 7149 | ||
7150 | static int builtin_shift(char **argv) | 7150 | static int FAST_FUNC builtin_shift(char **argv) |
7151 | { | 7151 | { |
7152 | int n = 1; | 7152 | int n = 1; |
7153 | if (argv[1]) { | 7153 | if (argv[1]) { |
@@ -7167,7 +7167,7 @@ static int builtin_shift(char **argv) | |||
7167 | return EXIT_FAILURE; | 7167 | return EXIT_FAILURE; |
7168 | } | 7168 | } |
7169 | 7169 | ||
7170 | static int builtin_source(char **argv) | 7170 | static int FAST_FUNC builtin_source(char **argv) |
7171 | { | 7171 | { |
7172 | char *arg_path; | 7172 | char *arg_path; |
7173 | FILE *input; | 7173 | FILE *input; |
@@ -7208,7 +7208,7 @@ static int builtin_source(char **argv) | |||
7208 | return G.last_exitcode; | 7208 | return G.last_exitcode; |
7209 | } | 7209 | } |
7210 | 7210 | ||
7211 | static int builtin_umask(char **argv) | 7211 | static int FAST_FUNC builtin_umask(char **argv) |
7212 | { | 7212 | { |
7213 | int rc; | 7213 | int rc; |
7214 | mode_t mask; | 7214 | mode_t mask; |
@@ -7240,7 +7240,7 @@ static int builtin_umask(char **argv) | |||
7240 | } | 7240 | } |
7241 | 7241 | ||
7242 | /* http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#unset */ | 7242 | /* http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#unset */ |
7243 | static int builtin_unset(char **argv) | 7243 | static int FAST_FUNC builtin_unset(char **argv) |
7244 | { | 7244 | { |
7245 | int ret; | 7245 | int ret; |
7246 | unsigned opts; | 7246 | unsigned opts; |
@@ -7277,7 +7277,7 @@ static int builtin_unset(char **argv) | |||
7277 | } | 7277 | } |
7278 | 7278 | ||
7279 | /* http://www.opengroup.org/onlinepubs/9699919799/utilities/wait.html */ | 7279 | /* http://www.opengroup.org/onlinepubs/9699919799/utilities/wait.html */ |
7280 | static int builtin_wait(char **argv) | 7280 | static int FAST_FUNC builtin_wait(char **argv) |
7281 | { | 7281 | { |
7282 | int ret = EXIT_SUCCESS; | 7282 | int ret = EXIT_SUCCESS; |
7283 | int status, sig; | 7283 | int status, sig; |
@@ -7361,7 +7361,7 @@ static unsigned parse_numeric_argv1(char **argv, unsigned def, unsigned def_min) | |||
7361 | #endif | 7361 | #endif |
7362 | 7362 | ||
7363 | #if ENABLE_HUSH_LOOPS | 7363 | #if ENABLE_HUSH_LOOPS |
7364 | static int builtin_break(char **argv) | 7364 | static int FAST_FUNC builtin_break(char **argv) |
7365 | { | 7365 | { |
7366 | unsigned depth; | 7366 | unsigned depth; |
7367 | if (G.depth_of_loop == 0) { | 7367 | if (G.depth_of_loop == 0) { |
@@ -7379,7 +7379,7 @@ static int builtin_break(char **argv) | |||
7379 | return EXIT_SUCCESS; | 7379 | return EXIT_SUCCESS; |
7380 | } | 7380 | } |
7381 | 7381 | ||
7382 | static int builtin_continue(char **argv) | 7382 | static int FAST_FUNC builtin_continue(char **argv) |
7383 | { | 7383 | { |
7384 | G.flag_break_continue = 1; /* BC_CONTINUE = 2 = 1+1 */ | 7384 | G.flag_break_continue = 1; /* BC_CONTINUE = 2 = 1+1 */ |
7385 | return builtin_break(argv); | 7385 | return builtin_break(argv); |
@@ -7387,7 +7387,7 @@ static int builtin_continue(char **argv) | |||
7387 | #endif | 7387 | #endif |
7388 | 7388 | ||
7389 | #if ENABLE_HUSH_FUNCTIONS | 7389 | #if ENABLE_HUSH_FUNCTIONS |
7390 | static int builtin_return(char **argv) | 7390 | static int FAST_FUNC builtin_return(char **argv) |
7391 | { | 7391 | { |
7392 | int rc; | 7392 | int rc; |
7393 | 7393 | ||
diff --git a/util-linux/volume_id/sysv.c b/util-linux/volume_id/sysv.c index 165033258..7a99cd6c7 100644 --- a/util-linux/volume_id/sysv.c +++ b/util-linux/volume_id/sysv.c | |||
@@ -23,8 +23,7 @@ | |||
23 | #define SYSV_NICINOD 100 | 23 | #define SYSV_NICINOD 100 |
24 | #define SYSV_NICFREE 50 | 24 | #define SYSV_NICFREE 50 |
25 | 25 | ||
26 | struct sysv_super | 26 | struct sysv_super { |
27 | { | ||
28 | uint16_t s_isize; | 27 | uint16_t s_isize; |
29 | uint16_t s_pad0; | 28 | uint16_t s_pad0; |
30 | uint32_t s_fsize; | 29 | uint32_t s_fsize; |
diff --git a/util-linux/volume_id/unused_hpfs.c b/util-linux/volume_id/unused_hpfs.c index 8b517569d..9d5244f57 100644 --- a/util-linux/volume_id/unused_hpfs.c +++ b/util-linux/volume_id/unused_hpfs.c | |||
@@ -20,8 +20,7 @@ | |||
20 | 20 | ||
21 | #include "volume_id_internal.h" | 21 | #include "volume_id_internal.h" |
22 | 22 | ||
23 | struct hpfs_super | 23 | struct hpfs_super { |
24 | { | ||
25 | uint8_t magic[4]; | 24 | uint8_t magic[4]; |
26 | uint8_t version; | 25 | uint8_t version; |
27 | } __attribute__((__packed__)); | 26 | } __attribute__((__packed__)); |