aboutsummaryrefslogtreecommitdiff
path: root/include/grp_.h
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2015-01-02 22:31:07 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2015-01-02 22:31:07 +0100
commit908b6e5dfdbc81322680ce939e5415161c637bb4 (patch)
treed3a5d43b353963cf0ac8faa79b5839c611e63c40 /include/grp_.h
parent1da09cfacf1c4789cc74322857a098c2ddb06e31 (diff)
downloadbusybox-w32-908b6e5dfdbc81322680ce939e5415161c637bb4.tar.gz
busybox-w32-908b6e5dfdbc81322680ce939e5415161c637bb4.tar.bz2
busybox-w32-908b6e5dfdbc81322680ce939e5415161c637bb4.zip
libpwdgrp: use FAST_FUNC to make "matching ABI" optimization more likely to succeed
See bb_internal_get*nam_r size reduction: function old new delta bb_internal_getpwent_r 167 176 +9 getXXnam_r 204 206 +2 sulogin_main 326 325 -1 su_main 471 470 -1 read_line_input 3832 3831 -1 print_stat 865 864 -1 prepare_socket_fd 283 282 -1 load_crontab 777 776 -1 fork_job 456 455 -1 do_shm 884 883 -1 do_sem 637 636 -1 do_msg 783 782 -1 complete_username 124 123 -1 bb_internal_getgrouplist 71 70 -1 xgetpwuid 27 25 -2 xgetpwnam 27 25 -2 xgetgrnam 27 25 -2 xgetgrgid 27 25 -2 uid2uname 18 16 -2 login_main 980 978 -2 gid2group 18 16 -2 get_shell_name 54 52 -2 change_identity 50 48 -2 bb_internal_initgroups 50 48 -2 argstr 1261 1259 -2 print_perms 177 174 -3 inetd_main 2077 2074 -3 run_applet_no_and_exit 446 442 -4 fileaction_setowngrp 89 85 -4 deluser_main 312 308 -4 bb_internal_getpwuid 19 15 -4 bb_internal_getpwnam 11 7 -4 bb_internal_getgrnam 14 10 -4 bb_internal_getgrgid 19 15 -4 adduser_main 865 861 -4 passwd_main 989 984 -5 get_passwd 97 92 -5 data_extract_all 887 882 -5 check_user_passwd 490 485 -5 get_groups 81 75 -6 ftpd_main 2178 2171 -7 bb_internal_getspnam_r 42 18 -24 bb_internal_getpwnam_r 39 15 -24 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/41 up/down: 11/-153) Total: -142 bytes text data bss dec hex filename 923167 928 17676 941771 e5ecb busybox_old 923023 928 17676 941627 e5e3b busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'include/grp_.h')
-rw-r--r--include/grp_.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/include/grp_.h b/include/grp_.h
index f7b8d836f..db13ce3b4 100644
--- a/include/grp_.h
+++ b/include/grp_.h
@@ -36,31 +36,30 @@ PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
36#define getgrouplist bb_internal_getgrouplist 36#define getgrouplist bb_internal_getgrouplist
37#define initgroups bb_internal_initgroups 37#define initgroups bb_internal_initgroups
38 38
39
40/* All function names below should be remapped by #defines above 39/* All function names below should be remapped by #defines above
41 * in order to not collide with libc names. */ 40 * in order to not collide with libc names. */
42 41
43/* Close the group-file stream. */ 42/* Close the group-file stream. */
44extern void endgrent(void); 43void FAST_FUNC endgrent(void);
45 44
46/* Search for an entry with a matching group ID. */ 45/* Search for an entry with a matching group ID. */
47extern struct group *getgrgid(gid_t __gid); 46struct group* FAST_FUNC getgrgid(gid_t __gid);
48 47
49/* Search for an entry with a matching group name. */ 48/* Search for an entry with a matching group name. */
50extern struct group *getgrnam(const char *__name); 49struct group* FAST_FUNC getgrnam(const char *__name);
51 50
52/* Reentrant versions of some of the functions above. */ 51/* Reentrant versions of some of the functions above. */
53 52
54/* Store at most *NGROUPS members of the group set for USER into 53/* Store at most *NGROUPS members of the group set for USER into
55 *GROUPS. Also include GROUP. The actual number of groups found is 54 *GROUPS. Also include GROUP. The actual number of groups found is
56 returned in *NGROUPS. Return -1 if the if *NGROUPS is too small. */ 55 returned in *NGROUPS. Return -1 if the if *NGROUPS is too small. */
57extern int getgrouplist(const char *__user, gid_t __group, 56int FAST_FUNC getgrouplist(const char *__user, gid_t __group,
58 gid_t *__groups, int *__ngroups); 57 gid_t *__groups, int *__ngroups);
59 58
60/* Initialize the group set for the current user 59/* Initialize the group set for the current user
61 by reading the group database and using all groups 60 by reading the group database and using all groups
62 of which USER is a member. Also include GROUP. */ 61 of which USER is a member. Also include GROUP. */
63extern int initgroups(const char *__user, gid_t __group); 62int FAST_FUNC initgroups(const char *__user, gid_t __group);
64 63
65POP_SAVED_FUNCTION_VISIBILITY 64POP_SAVED_FUNCTION_VISIBILITY
66 65