#ifndef ZABBIX_PROCSTAT_H
#define ZABBIX_PROCSTAT_H
#ifdef ZBX_PROCSTAT_COLLECTOR
#define ZBX_PROCSTAT_CPU_USER 0x01
#define ZBX_PROCSTAT_CPU_SYSTEM 0x02
#define ZBX_PROCSTAT_CPU_TOTAL (ZBX_PROCSTAT_CPU_USER | ZBX_PROCSTAT_CPU_SYSTEM)
#define ZBX_PROCSTAT_FLAGS_ZONE_CURRENT 0
#define ZBX_PROCSTAT_FLAGS_ZONE_ALL 1
void zbx_procstat_init(void);
void zbx_procstat_destroy(void);
int zbx_procstat_collector_started(void);
int zbx_procstat_get_util(const char *procname, const char *username, const char *cmdline, zbx_uint64_t flags,
int period, int type, double *value, char **errmsg);
void zbx_procstat_collect(void);
int zbx_proc_get_processes(zbx_vector_ptr_t *processes, unsigned int flags);
void zbx_proc_get_matching_pids(const zbx_vector_ptr_t *processes, const char *procname, const char *username,
const char *cmdline, zbx_uint64_t flags, zbx_vector_uint64_t *pids);
void zbx_proc_get_process_stats(zbx_procstat_util_t *procs, int procs_num);
void zbx_proc_free_processes(zbx_vector_ptr_t *processes);