blob: 8ebe801f9d1c8e4d3bd9d91be9935c3bf1a8e1a4 [file] [log] [blame]
#ifndef MODPERL_GTOP_H
#define MODPERL_GTOP_H
#ifndef MP_TRACE
# undef MP_USE_GTOP
#endif
#ifdef MP_USE_GTOP
#include <glibtop.h>
#include <glibtop/open.h>
#include <glibtop/close.h>
#include <glibtop/xmalloc.h>
#include <glibtop/parameter.h>
#include <glibtop/union.h>
#include <glibtop/sysdeps.h>
#define MP_GTOP_SSS 16
typedef struct {
char size[MP_GTOP_SSS];
char vsize[MP_GTOP_SSS];
char resident[MP_GTOP_SSS];
char share[MP_GTOP_SSS];
char rss[MP_GTOP_SSS];
} modperl_gtop_proc_mem_ss;
typedef struct {
glibtop_union before;
glibtop_union after;
pid_t pid;
modperl_gtop_proc_mem_ss proc_mem_ss;
} modperl_gtop_t;
modperl_gtop_t *modperl_gtop_new(apr_pool_t *p);
void modperl_gtop_get_proc_mem_before(modperl_gtop_t *gtop);
void modperl_gtop_get_proc_mem_after(modperl_gtop_t *gtop);
void modperl_gtop_report_proc_mem(modperl_gtop_t *gtop,
char *when, const char *func, char *msg);
void modperl_gtop_report_proc_mem_diff(modperl_gtop_t *gtop, const char* func, char *msg);
void modperl_gtop_report_proc_mem_before(modperl_gtop_t *gtop, const char* func, char *msg);
void modperl_gtop_report_proc_mem_after(modperl_gtop_t *gtop, const char* func, char *msg);
#define modperl_gtop_do_proc_mem_before(func, msg) \
modperl_gtop_get_proc_mem_before(scfg->gtop); \
modperl_gtop_report_proc_mem_before(scfg->gtop, func, msg)
#define modperl_gtop_do_proc_mem_after(func, msg) \
modperl_gtop_get_proc_mem_after(scfg->gtop); \
modperl_gtop_report_proc_mem_after(scfg->gtop, func, msg); \
modperl_gtop_report_proc_mem_diff(scfg->gtop, func, msg)
#endif /* MP_USE_GTOP */
#endif /* MODPERL_GTOP_H */