make sigar_proc_args_get a wrapper
This commit is contained in:
parent
ad433cf375
commit
09c4138dbd
@ -174,8 +174,6 @@ int sigar_proc_list_grow(sigar_proc_list_t *proclist);
|
||||
sigar_proc_list_grow(proclist); \
|
||||
}
|
||||
|
||||
int sigar_proc_args_create(sigar_proc_args_t *procargs);
|
||||
|
||||
int sigar_proc_args_grow(sigar_proc_args_t *procargs);
|
||||
|
||||
#define SIGAR_PROC_ARGS_GROW(procargs) \
|
||||
@ -183,6 +181,9 @@ int sigar_proc_args_grow(sigar_proc_args_t *procargs);
|
||||
sigar_proc_args_grow(procargs); \
|
||||
}
|
||||
|
||||
int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs);
|
||||
|
||||
int sigar_file_system_list_create(sigar_file_system_list_t *fslist);
|
||||
|
||||
int sigar_file_system_list_grow(sigar_file_system_list_t *fslist);
|
||||
|
@ -1126,8 +1126,8 @@ int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
/* XXX if buffer is not large enough args are truncated */
|
||||
char buffer[8192], *ptr;
|
||||
@ -1141,8 +1141,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
return errno;
|
||||
}
|
||||
|
||||
sigar_proc_args_create(procargs);
|
||||
|
||||
ptr = buffer;
|
||||
|
||||
while (*ptr) {
|
||||
|
@ -1029,8 +1029,8 @@ static int kern_proc_args_skip_argv(sigar_kern_proc_args_t *kargs)
|
||||
}
|
||||
#endif
|
||||
|
||||
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
#if defined(DARWIN)
|
||||
int status, count;
|
||||
@ -1046,8 +1046,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
ptr = kargs.ptr;
|
||||
end = kargs.end;
|
||||
|
||||
sigar_proc_args_create(procargs);
|
||||
|
||||
while ((ptr < end) && (count-- > 0)) {
|
||||
int slen = strlen(ptr);
|
||||
int alen = slen+1;
|
||||
@ -1089,8 +1087,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
return errno;
|
||||
}
|
||||
|
||||
sigar_proc_args_create(procargs);
|
||||
|
||||
if (len == 0) {
|
||||
procargs->number = 0;
|
||||
return SIGAR_OK;
|
||||
|
@ -381,8 +381,8 @@ int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
* according to HP forums there isn't a way to get them
|
||||
* all if > 64
|
||||
*/
|
||||
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
char *args, *arg;
|
||||
struct pst_status status;
|
||||
@ -392,7 +392,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
}
|
||||
|
||||
args = status.pst_cmd;
|
||||
sigar_proc_args_create(procargs);
|
||||
|
||||
while (*args && (arg = sigar_getword(&args, ' '))) {
|
||||
SIGAR_PROC_ARGS_GROW(procargs);
|
||||
|
@ -876,8 +876,8 @@ int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
return sigar_procfs_args_get(sigar, pid, procargs);
|
||||
}
|
||||
|
@ -844,8 +844,6 @@ static int ucb_ps_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
}
|
||||
}
|
||||
|
||||
sigar_proc_args_create(procargs);
|
||||
|
||||
while (*args && (arg = sigar_getword(&args, ' '))) {
|
||||
SIGAR_PROC_ARGS_GROW(procargs);
|
||||
procargs->data[procargs->number++] = arg;
|
||||
@ -854,8 +852,8 @@ static int ucb_ps_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
psinfo_t *pinfo;
|
||||
int fd, status;
|
||||
@ -916,12 +914,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
return errno;
|
||||
}
|
||||
|
||||
procargs->number = 0;
|
||||
procargs->size = pinfo->pr_argc;
|
||||
procargs->data =
|
||||
(char **)malloc(sizeof(*(procargs->data)) *
|
||||
procargs->size);
|
||||
|
||||
for (n = 0; n < pinfo->pr_argc; n++) {
|
||||
int alen;
|
||||
char *arg;
|
||||
@ -940,6 +932,7 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
arg = malloc(alen);
|
||||
memcpy(arg, buffer, alen);
|
||||
|
||||
SIGAR_PROC_ARGS_GROW(procargs);
|
||||
procargs->data[procargs->number++] = arg;
|
||||
}
|
||||
|
||||
|
@ -122,8 +122,6 @@ int sigar_parse_proc_args(sigar_t *sigar, WCHAR *buf,
|
||||
buf = GetCommandLine();
|
||||
}
|
||||
|
||||
sigar_proc_args_create(procargs);
|
||||
|
||||
args = CommandLineToArgvW(buf, &num);
|
||||
|
||||
if (args == NULL) {
|
||||
|
@ -1272,8 +1272,8 @@ static int sigar_remote_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
return status;
|
||||
}
|
||||
|
||||
SIGAR_DECLARE(int) sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
if (pid == sigar->pid) {
|
||||
return sigar_parse_proc_args(sigar, NULL, procargs);
|
||||
|
10
src/sigar.c
10
src/sigar.c
@ -537,7 +537,7 @@ SIGAR_DECLARE(int) sigar_proc_list_get(sigar_t *sigar,
|
||||
return sigar_os_proc_list_get(sigar, proclist);
|
||||
}
|
||||
|
||||
int sigar_proc_args_create(sigar_proc_args_t *procargs)
|
||||
static int sigar_proc_args_create(sigar_proc_args_t *procargs)
|
||||
{
|
||||
procargs->number = 0;
|
||||
procargs->size = SIGAR_PROC_ARGS_MAX;
|
||||
@ -572,6 +572,14 @@ SIGAR_DECLARE(int) sigar_proc_args_destroy(sigar_t *sigar,
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
SIGAR_DECLARE(int) sigar_proc_args_get(sigar_t *sigar,
|
||||
sigar_pid_t pid,
|
||||
sigar_proc_args_t *procargs)
|
||||
{
|
||||
sigar_proc_args_create(procargs);
|
||||
return sigar_os_proc_args_get(sigar, pid, procargs);
|
||||
}
|
||||
|
||||
int sigar_file_system_list_create(sigar_file_system_list_t *fslist)
|
||||
{
|
||||
fslist->number = 0;
|
||||
|
@ -258,8 +258,6 @@ int sigar_procfs_args_get(sigar_t *sigar, sigar_pid_t pid,
|
||||
|
||||
close(fd);
|
||||
|
||||
sigar_proc_args_create(procargs);
|
||||
|
||||
/* e.g. /proc/2/cmdline */
|
||||
if (total == 0) {
|
||||
procargs->number = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user