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
This commit is contained in:
@ -836,7 +836,7 @@ enum { COMM_LEN = 16 };
|
||||
typedef struct {
|
||||
DIR *dir;
|
||||
/* Fields are set to 0/NULL if failed to determine (or not requested) */
|
||||
char *cmd;
|
||||
/*char *cmd;*/
|
||||
char *argv0;
|
||||
/*char *exe;*/
|
||||
USE_SELINUX(char *context;)
|
||||
@ -852,7 +852,9 @@ typedef struct {
|
||||
unsigned gid;
|
||||
unsigned tty_major,tty_minor;
|
||||
char state[4];
|
||||
/* basename of executable in exec(2), read from /proc/N/stat */
|
||||
/* basename of executable in exec(2), read from /proc/N/stat
|
||||
* (if executable is symlink or script, it is NOT replaced
|
||||
* by link target or interpreter name) */
|
||||
char comm[COMM_LEN];
|
||||
/* user/group? - use passwd/group parsing functions */
|
||||
} procps_status_t;
|
||||
@ -863,9 +865,9 @@ enum {
|
||||
PSSCAN_SID = 1 << 3,
|
||||
PSSCAN_UIDGID = 1 << 4,
|
||||
PSSCAN_COMM = 1 << 5,
|
||||
PSSCAN_CMD = 1 << 6,
|
||||
/* PSSCAN_CMD = 1 << 6, - use read_cmdline instead */
|
||||
PSSCAN_ARGV0 = 1 << 7,
|
||||
PSSCAN_EXE = 1 << 8, /* not implemented yet */
|
||||
/* PSSCAN_EXE = 1 << 8, - not implemented */
|
||||
PSSCAN_STATE = 1 << 9,
|
||||
PSSCAN_VSZ = 1 << 10,
|
||||
PSSCAN_RSS = 1 << 11,
|
||||
@ -883,6 +885,9 @@ enum {
|
||||
procps_status_t* alloc_procps_scan(int flags);
|
||||
void free_procps_scan(procps_status_t* sp);
|
||||
procps_status_t* procps_scan(procps_status_t* sp, int flags);
|
||||
/* Format cmdline (up to col chars) into char buf[col+1] */
|
||||
/* Puts [comm] if cmdline is empty (-> process is a kernel thread) */
|
||||
void read_cmdline(char *buf, int col, unsigned pid, const char *comm);
|
||||
pid_t *find_pid_by_name(const char* procName);
|
||||
pid_t *pidlist_reverse(pid_t *pidList);
|
||||
|
||||
|
Reference in New Issue
Block a user