make sigar_proc_args_get a wrapper

This commit is contained in:
Doug MacEachern 2007-04-22 05:37:39 +00:00
parent ad433cf375
commit 09c4138dbd
10 changed files with 25 additions and 34 deletions

View File

@ -174,8 +174,6 @@ int sigar_proc_list_grow(sigar_proc_list_t *proclist);
sigar_proc_list_grow(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); int sigar_proc_args_grow(sigar_proc_args_t *procargs);
#define SIGAR_PROC_ARGS_GROW(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); \ 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_create(sigar_file_system_list_t *fslist);
int sigar_file_system_list_grow(sigar_file_system_list_t *fslist); int sigar_file_system_list_grow(sigar_file_system_list_t *fslist);

View File

@ -1126,8 +1126,8 @@ int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
return SIGAR_OK; return SIGAR_OK;
} }
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid, int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_args_t *procargs) sigar_proc_args_t *procargs)
{ {
/* XXX if buffer is not large enough args are truncated */ /* XXX if buffer is not large enough args are truncated */
char buffer[8192], *ptr; char buffer[8192], *ptr;
@ -1141,8 +1141,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
return errno; return errno;
} }
sigar_proc_args_create(procargs);
ptr = buffer; ptr = buffer;
while (*ptr) { while (*ptr) {

View File

@ -1029,8 +1029,8 @@ static int kern_proc_args_skip_argv(sigar_kern_proc_args_t *kargs)
} }
#endif #endif
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid, int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_args_t *procargs) sigar_proc_args_t *procargs)
{ {
#if defined(DARWIN) #if defined(DARWIN)
int status, count; int status, count;
@ -1046,8 +1046,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
ptr = kargs.ptr; ptr = kargs.ptr;
end = kargs.end; end = kargs.end;
sigar_proc_args_create(procargs);
while ((ptr < end) && (count-- > 0)) { while ((ptr < end) && (count-- > 0)) {
int slen = strlen(ptr); int slen = strlen(ptr);
int alen = slen+1; int alen = slen+1;
@ -1089,8 +1087,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
return errno; return errno;
} }
sigar_proc_args_create(procargs);
if (len == 0) { if (len == 0) {
procargs->number = 0; procargs->number = 0;
return SIGAR_OK; return SIGAR_OK;

View File

@ -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 * according to HP forums there isn't a way to get them
* all if > 64 * all if > 64
*/ */
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid, int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_args_t *procargs) sigar_proc_args_t *procargs)
{ {
char *args, *arg; char *args, *arg;
struct pst_status status; struct pst_status status;
@ -392,7 +392,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
} }
args = status.pst_cmd; args = status.pst_cmd;
sigar_proc_args_create(procargs);
while (*args && (arg = sigar_getword(&args, ' '))) { while (*args && (arg = sigar_getword(&args, ' '))) {
SIGAR_PROC_ARGS_GROW(procargs); SIGAR_PROC_ARGS_GROW(procargs);

View File

@ -876,8 +876,8 @@ int sigar_proc_state_get(sigar_t *sigar, sigar_pid_t pid,
return SIGAR_OK; return SIGAR_OK;
} }
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid, int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_args_t *procargs) sigar_proc_args_t *procargs)
{ {
return sigar_procfs_args_get(sigar, pid, procargs); return sigar_procfs_args_get(sigar, pid, procargs);
} }

View File

@ -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, ' '))) { while (*args && (arg = sigar_getword(&args, ' '))) {
SIGAR_PROC_ARGS_GROW(procargs); SIGAR_PROC_ARGS_GROW(procargs);
procargs->data[procargs->number++] = arg; 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; return SIGAR_OK;
} }
int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid, int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_args_t *procargs) sigar_proc_args_t *procargs)
{ {
psinfo_t *pinfo; psinfo_t *pinfo;
int fd, status; int fd, status;
@ -916,12 +914,6 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
return errno; 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++) { for (n = 0; n < pinfo->pr_argc; n++) {
int alen; int alen;
char *arg; char *arg;
@ -940,6 +932,7 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
arg = malloc(alen); arg = malloc(alen);
memcpy(arg, buffer, alen); memcpy(arg, buffer, alen);
SIGAR_PROC_ARGS_GROW(procargs);
procargs->data[procargs->number++] = arg; procargs->data[procargs->number++] = arg;
} }

View File

@ -122,8 +122,6 @@ int sigar_parse_proc_args(sigar_t *sigar, WCHAR *buf,
buf = GetCommandLine(); buf = GetCommandLine();
} }
sigar_proc_args_create(procargs);
args = CommandLineToArgvW(buf, &num); args = CommandLineToArgvW(buf, &num);
if (args == NULL) { if (args == NULL) {

View File

@ -1272,8 +1272,8 @@ static int sigar_remote_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
return status; return status;
} }
SIGAR_DECLARE(int) sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid, int sigar_os_proc_args_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_args_t *procargs) sigar_proc_args_t *procargs)
{ {
if (pid == sigar->pid) { if (pid == sigar->pid) {
return sigar_parse_proc_args(sigar, NULL, procargs); return sigar_parse_proc_args(sigar, NULL, procargs);

View File

@ -537,7 +537,7 @@ SIGAR_DECLARE(int) sigar_proc_list_get(sigar_t *sigar,
return sigar_os_proc_list_get(sigar, proclist); 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->number = 0;
procargs->size = SIGAR_PROC_ARGS_MAX; procargs->size = SIGAR_PROC_ARGS_MAX;
@ -572,6 +572,14 @@ SIGAR_DECLARE(int) sigar_proc_args_destroy(sigar_t *sigar,
return SIGAR_OK; 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) int sigar_file_system_list_create(sigar_file_system_list_t *fslist)
{ {
fslist->number = 0; fslist->number = 0;

View File

@ -258,8 +258,6 @@ int sigar_procfs_args_get(sigar_t *sigar, sigar_pid_t pid,
close(fd); close(fd);
sigar_proc_args_create(procargs);
/* e.g. /proc/2/cmdline */ /* e.g. /proc/2/cmdline */
if (total == 0) { if (total == 0) {
procargs->number = 0; procargs->number = 0;