make sigar_proc_list_get a wrapper
This commit is contained in:
parent
1745dcf5d4
commit
ad433cf375
|
@ -164,7 +164,8 @@ int sigar_sys_info_get_uname(sigar_sys_info_t *sysinfo);
|
|||
|
||||
int sigar_os_sys_info_get(sigar_t *sigar, sigar_sys_info_t *sysinfo);
|
||||
|
||||
int sigar_proc_list_create(sigar_proc_list_t *proclist);
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist);
|
||||
|
||||
int sigar_proc_list_grow(sigar_proc_list_t *proclist);
|
||||
|
||||
|
|
|
@ -962,14 +962,12 @@ int sigar_loadavg_get(sigar_t *sigar,
|
|||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
pid_t pid = 0;
|
||||
struct procsinfo info;
|
||||
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
for (;;) {
|
||||
int num = getprocs(&info, sizeof(info),
|
||||
NULL, 0, &pid, 1);
|
||||
|
|
|
@ -613,8 +613,8 @@ int sigar_loadavg_get(sigar_t *sigar,
|
|||
#define KERN_PROC_PROC KERN_PROC_ALL
|
||||
#endif
|
||||
|
||||
int sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
#if defined(DARWIN) || defined(SIGAR_FREEBSD5)
|
||||
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PROC, 0 };
|
||||
|
@ -634,7 +634,6 @@ int sigar_proc_list_get(sigar_t *sigar,
|
|||
}
|
||||
|
||||
num = len/sizeof(*proc);
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
for (i=0; i<num; i++) {
|
||||
if (proc[i].KI_FLAG & P_SYSTEM) {
|
||||
|
@ -656,8 +655,6 @@ int sigar_proc_list_get(sigar_t *sigar,
|
|||
}
|
||||
|
||||
proc = kvm_getprocs(sigar->kmem, KERN_PROC_PROC, 0, &num);
|
||||
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
for (i=0; i<num; i++) {
|
||||
if (proc[i].KI_FLAG & P_SYSTEM) {
|
||||
|
|
|
@ -206,14 +206,12 @@ int sigar_loadavg_get(sigar_t *sigar,
|
|||
|
||||
#define PROC_ELTS 16
|
||||
|
||||
int sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
int num, idx=0;
|
||||
struct pst_status proctab[PROC_ELTS];
|
||||
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
while ((num = pstat_getproc(proctab, sizeof(proctab[0]),
|
||||
PROC_ELTS, idx)) > 0)
|
||||
{
|
||||
|
|
|
@ -618,8 +618,8 @@ static SIGAR_INLINE int proc_isthread(sigar_t *sigar, char *pidstr, int len)
|
|||
return 1;
|
||||
}
|
||||
|
||||
int sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
DIR *dirp = opendir(PROCP_FS_ROOT);
|
||||
struct dirent *ent, dbuf;
|
||||
|
@ -632,8 +632,6 @@ int sigar_proc_list_get(sigar_t *sigar,
|
|||
sigar->proc_signal_offset = get_proc_signal_offset();
|
||||
}
|
||||
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
while (readdir_r(dirp, &dbuf, &ent) == 0) {
|
||||
if (!ent) {
|
||||
break;
|
||||
|
|
|
@ -165,8 +165,8 @@ int sigar_loadavg_get(sigar_t *sigar,
|
|||
|
||||
#define PROC_ELTS 16
|
||||
|
||||
int sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
struct tbl_procinfo procinfo[PROC_ELTS];
|
||||
int offset;
|
||||
|
@ -176,8 +176,6 @@ int sigar_proc_list_get(sigar_t *sigar,
|
|||
sigar->nproc = table(TBL_PROCINFO, 0, NULL, INT_MAX, 0);
|
||||
}
|
||||
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
for (offset=0; offset<sigar->nproc; offset+=PROC_ELTS) {
|
||||
int i;
|
||||
int elts = table(TBL_PROCINFO, offset, &procinfo,
|
||||
|
|
|
@ -631,8 +631,8 @@ static int sigar_dlinfo_get(sigar_t *sigar, const char *func,
|
|||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
return sigar_proc_list_procfs_get(sigar, proclist);
|
||||
}
|
||||
|
|
|
@ -904,8 +904,6 @@ static int sigar_proc_list_get_perf(sigar_t *sigar,
|
|||
}
|
||||
}
|
||||
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
for (i=0, inst = PdhFirstInstance(object);
|
||||
i<object->NumInstances;
|
||||
i++, inst = PdhNextInstance(inst))
|
||||
|
@ -928,8 +926,8 @@ static int sigar_proc_list_get_perf(sigar_t *sigar,
|
|||
#define sigar_EnumProcesses \
|
||||
sigar->psapi.enum_processes.func
|
||||
|
||||
SIGAR_DECLARE(int) sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
int sigar_os_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
DLLMOD_INIT(psapi, FALSE);
|
||||
|
||||
|
@ -956,16 +954,14 @@ SIGAR_DECLARE(int) sigar_proc_list_get(sigar_t *sigar,
|
|||
|
||||
pids = (DWORD *)sigar->perfbuf;
|
||||
|
||||
proclist->number = 0;
|
||||
proclist->size = retval / sizeof(DWORD);
|
||||
proclist->data =
|
||||
malloc(sizeof(*(proclist->data)) * proclist->size);
|
||||
size = retval / sizeof(DWORD);
|
||||
|
||||
for (i=0; i<proclist->size; i++) {
|
||||
for (i=0; i<size; i++) {
|
||||
DWORD pid = pids[i];
|
||||
if (pid == 0) {
|
||||
continue; /* dont include the system Idle process */
|
||||
}
|
||||
SIGAR_PROC_LIST_GROW(proclist);
|
||||
proclist->data[proclist->number++] = pid;
|
||||
}
|
||||
|
||||
|
|
|
@ -500,7 +500,7 @@ sigar_proc_cred_name_get(sigar_t *sigar, sigar_pid_t pid,
|
|||
|
||||
#endif /* WIN32 */
|
||||
|
||||
int sigar_proc_list_create(sigar_proc_list_t *proclist)
|
||||
static int sigar_proc_list_create(sigar_proc_list_t *proclist)
|
||||
{
|
||||
proclist->number = 0;
|
||||
proclist->size = SIGAR_PROC_LIST_MAX;
|
||||
|
@ -530,6 +530,13 @@ SIGAR_DECLARE(int) sigar_proc_list_destroy(sigar_t *sigar,
|
|||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
SIGAR_DECLARE(int) sigar_proc_list_get(sigar_t *sigar,
|
||||
sigar_proc_list_t *proclist)
|
||||
{
|
||||
sigar_proc_list_create(proclist);
|
||||
return sigar_os_proc_list_get(sigar, proclist);
|
||||
}
|
||||
|
||||
int sigar_proc_args_create(sigar_proc_args_t *procargs)
|
||||
{
|
||||
procargs->number = 0;
|
||||
|
|
|
@ -1424,8 +1424,6 @@ SIGAR_DECLARE(int) sigar_ptql_query_find(sigar_t *sigar,
|
|||
return status;
|
||||
}
|
||||
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
for (i=0; i<pids.number; i++) {
|
||||
int query_status =
|
||||
sigar_ptql_query_match(sigar, query, pids.data[i]);
|
||||
|
@ -1444,7 +1442,7 @@ SIGAR_DECLARE(int) sigar_ptql_query_find(sigar_t *sigar,
|
|||
sigar_proc_list_destroy(sigar, &pids);
|
||||
|
||||
if (status != SIGAR_OK) {
|
||||
sigar_proc_list_create(proclist);
|
||||
sigar_proc_list_destroy(sigar, proclist);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
@ -163,8 +163,6 @@ int sigar_proc_list_procfs_get(sigar_t *sigar,
|
|||
return errno;
|
||||
}
|
||||
|
||||
sigar_proc_list_create(proclist);
|
||||
|
||||
#ifdef HAVE_READDIR_R
|
||||
while (readdir_r(dirp, &dbuf, &ent) == 0) {
|
||||
if (ent == NULL) {
|
||||
|
|
Loading…
Reference in New Issue