diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-06-30 14:47:41 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-06-30 14:47:41 +0000 |
commit | 98ebab8b768d4651d8db2f46a0cd6bd53012c8e6 (patch) | |
tree | 2f491e67f1f49a31b0cfeeaabb032b646b8d808c /include | |
parent | 8b1409896d3224fec477bc372c4dceaebe6d6351 (diff) | |
download | busybox-w32-98ebab8b768d4651d8db2f46a0cd6bd53012c8e6.tar.gz busybox-w32-98ebab8b768d4651d8db2f46a0cd6bd53012c8e6.tar.bz2 busybox-w32-98ebab8b768d4651d8db2f46a0cd6bd53012c8e6.zip |
top,ps: improve /proc/PID/cmdinfo reading code
function old new delta
display_status - 1231 +1231
read_cmdline - 101 +101
parse_conf 1284 1303 +19
arith 2033 2042 +9
collect_blk 467 474 +7
fsck_main 1909 1911 +2
dhcprelay_main 1125 1122 -3
singlemount 4555 4547 -8
read_close 50 36 -14
get_lcm 123 105 -18
ed_main 3111 3084 -27
func_args 73 28 -45
procps_scan 732 658 -74
top_main 2187 899 -1288
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 4/8 up/down: 1369/-1477) Total: -108 bytes
text data bss dec hex filename
676048 2744 13968 692760 a9218 busybox_old
675940 2744 13968 692652 a91ac busybox_unstripped
Diffstat (limited to 'include')
-rw-r--r-- | include/libbb.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/include/libbb.h b/include/libbb.h index 6a699a7e6..a95de848b 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -836,7 +836,7 @@ enum { COMM_LEN = 16 }; | |||
836 | typedef struct { | 836 | typedef struct { |
837 | DIR *dir; | 837 | DIR *dir; |
838 | /* Fields are set to 0/NULL if failed to determine (or not requested) */ | 838 | /* Fields are set to 0/NULL if failed to determine (or not requested) */ |
839 | char *cmd; | 839 | /*char *cmd;*/ |
840 | char *argv0; | 840 | char *argv0; |
841 | /*char *exe;*/ | 841 | /*char *exe;*/ |
842 | USE_SELINUX(char *context;) | 842 | USE_SELINUX(char *context;) |
@@ -852,7 +852,9 @@ typedef struct { | |||
852 | unsigned gid; | 852 | unsigned gid; |
853 | unsigned tty_major,tty_minor; | 853 | unsigned tty_major,tty_minor; |
854 | char state[4]; | 854 | char state[4]; |
855 | /* basename of executable in exec(2), read from /proc/N/stat */ | 855 | /* basename of executable in exec(2), read from /proc/N/stat |
856 | * (if executable is symlink or script, it is NOT replaced | ||
857 | * by link target or interpreter name) */ | ||
856 | char comm[COMM_LEN]; | 858 | char comm[COMM_LEN]; |
857 | /* user/group? - use passwd/group parsing functions */ | 859 | /* user/group? - use passwd/group parsing functions */ |
858 | } procps_status_t; | 860 | } procps_status_t; |
@@ -863,9 +865,9 @@ enum { | |||
863 | PSSCAN_SID = 1 << 3, | 865 | PSSCAN_SID = 1 << 3, |
864 | PSSCAN_UIDGID = 1 << 4, | 866 | PSSCAN_UIDGID = 1 << 4, |
865 | PSSCAN_COMM = 1 << 5, | 867 | PSSCAN_COMM = 1 << 5, |
866 | PSSCAN_CMD = 1 << 6, | 868 | /* PSSCAN_CMD = 1 << 6, - use read_cmdline instead */ |
867 | PSSCAN_ARGV0 = 1 << 7, | 869 | PSSCAN_ARGV0 = 1 << 7, |
868 | PSSCAN_EXE = 1 << 8, /* not implemented yet */ | 870 | /* PSSCAN_EXE = 1 << 8, - not implemented */ |
869 | PSSCAN_STATE = 1 << 9, | 871 | PSSCAN_STATE = 1 << 9, |
870 | PSSCAN_VSZ = 1 << 10, | 872 | PSSCAN_VSZ = 1 << 10, |
871 | PSSCAN_RSS = 1 << 11, | 873 | PSSCAN_RSS = 1 << 11, |
@@ -883,6 +885,9 @@ enum { | |||
883 | procps_status_t* alloc_procps_scan(int flags); | 885 | procps_status_t* alloc_procps_scan(int flags); |
884 | void free_procps_scan(procps_status_t* sp); | 886 | void free_procps_scan(procps_status_t* sp); |
885 | procps_status_t* procps_scan(procps_status_t* sp, int flags); | 887 | procps_status_t* procps_scan(procps_status_t* sp, int flags); |
888 | /* Format cmdline (up to col chars) into char buf[col+1] */ | ||
889 | /* Puts [comm] if cmdline is empty (-> process is a kernel thread) */ | ||
890 | void read_cmdline(char *buf, int col, unsigned pid, const char *comm); | ||
886 | pid_t *find_pid_by_name(const char* procName); | 891 | pid_t *find_pid_by_name(const char* procName); |
887 | pid_t *pidlist_reverse(pid_t *pidList); | 892 | pid_t *pidlist_reverse(pid_t *pidList); |
888 | 893 | ||