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); \
|
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);
|
||||||
|
@ -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) {
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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);
|
||||||
|
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);
|
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;
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user