GTop
view release on metacpan or search on metacpan
void
_possess(ref)
SV *ref
PREINIT:
GTop self = (GTop)SvIV((SV*)SvRV(ref));
CODE:
#ifdef EXAMPLE_CLONE_DEBUG
Perl_warn(aTHX_ "(self=0x%lx)->possess was : 0x%lx\n", ST(0),
(unsigned long)self);
#endif
/* possess the guts of the original refect without changing its shell */
sv_setiv((SV*)SvRV(ref), (IV)my_gtop_new(aTHX_ self->host, self->port));
#ifdef EXAMPLE_CLONE_DEBUG
Perl_warn(aTHX_ "(self=0x%lx)->possess got : 0x%lx\n", ST(0),
(GTop)SvIV((SV*)SvRV(ref)));
#endif
void
_destroy(self)
GTop self
CODE:
#if 0 && defined(USE_ITHREADS)
Perl_warn(aTHX_ "perl=0x%lx: (self=0x%lx)->DESTROY\n",
(unsigned long)my_perl, (unsigned long)self);
#endif
if (self->do_close) {
glibtop_close();
glibtop_global_server->flags &= ~_GLIBTOP_INIT_STATE_OPEN;
}
glibtop_global_server->method = self->old_method;
if (self->host) {
my_free(self->host);
my_free(self->port);
}
my_free(self);
SV *
size_string(size)
size_t size
CODE:
RETVAL = size_string(aTHX_ size);
OUTPUT:
RETVAL
void
mountlist(gtop, all_fs)
GTop gtop
int all_fs
PREINIT:
GTop__Mountlist RETVAL;
GTop__Mountentry entry;
SV *svl, *sve;
PPCODE:
RETVAL = (glibtop_mountlist *)safemalloc(sizeof(*RETVAL));
trace_malloc(RETVAL);
entry = glibtop_get_mountlist(RETVAL, all_fs);
svl = sv_newmortal();
sv_setref_pv(svl, "GTop::Mountlist", (void*)RETVAL);
XPUSHs(svl);
if (GIMME_V == G_ARRAY) {
sve = sv_newmortal();
sv_setref_pv(sve, "GTop::Mountentry", (void*)entry);
XPUSHs(sve);
}
else {
glibtop_free(entry);
}
void
proclist(gtop, which=0, arg=0)
GTop gtop
int which
int arg
PREINIT:
GTop__Proclist RETVAL;
unsigned *ptr;
SV *svl;
AV *av;
PPCODE:
RETVAL = (glibtop_proclist *)safemalloc(sizeof(*RETVAL));
trace_malloc(RETVAL);
ptr = glibtop_get_proclist(RETVAL, which, arg);
svl = sv_newmortal();
sv_setref_pv(svl, "GTop::Proclist", (void*)RETVAL);
XPUSHs(svl);
if (GIMME_V == G_ARRAY) {
int i;
av = newAV();
av_extend(av, RETVAL->number);
for (i=0; i < RETVAL->number; i++) {
av_push(av, newSViv(ptr[i]));
}
XPUSHs(sv_2mortal(newRV_noinc((SV*)av)));
}
glibtop_free(ptr);
void
proc_args(gtop, pid, arg=0)
GTop gtop
pid_t pid
int arg
PREINIT:
GTop__ProcArgs RETVAL;
char *pargs;
SV *svl;
PPCODE:
RETVAL = (glibtop_proc_args *)safemalloc(sizeof(*RETVAL));
trace_malloc(RETVAL);
pargs = glibtop_get_proc_args(RETVAL, pid, arg);
svl = sv_newmortal();
sv_setref_pv(svl, "GTop::ProcArgs", (void*)RETVAL);
XPUSHs(svl);
if (GIMME_V == G_ARRAY) {
int len, total=0;
char *ptr = pargs;
AV *av = newAV();
while (ptr && (len = strlen(ptr))) {
av_push(av, newSVpv(ptr,len));
total += (len+1);
if (total >= RETVAL->size) {
break;
}
ptr += (len+1);
}
XPUSHs(sv_2mortal(newRV_noinc((SV*)av)));
}
glibtop_free(pargs);
void
proc_map(gtop, pid)
GTop gtop
pid_t pid
PREINIT:
GTop__ProcMap RETVAL;
GTop__MapEntry entry;
SV *svl, *sve;
PPCODE:
RETVAL = (glibtop_proc_map *)safemalloc(sizeof(*RETVAL));
trace_malloc(RETVAL);
entry = glibtop_get_proc_map(RETVAL, pid);
svl = sv_newmortal();
sv_setref_pv(svl, "GTop::ProcMap", (void*)RETVAL);
XPUSHs(svl);
if (GIMME_V == G_ARRAY) {
sve = sv_newmortal();
sv_setref_pv(sve, "GTop::MapEntry", (void*)entry);
XPUSHs(sve);
}
else {
glibtop_free(entry);
}
MODULE = GTop PACKAGE = GTop::Mountentry PREFIX = Mountlist_
void
DESTROY(entries)
GTop::Mountentry entries
CODE:
glibtop_free(entries);
#define Mountlist_devname(entries, idx) entries[idx].devname
#define Mountlist_type(entries, idx) entries[idx].type
#define Mountlist_mountdir(entries, idx) entries[idx].mountdir
#define Mountlist_dev(entries, idx) entries[idx].dev
char *
Mountlist_devname(entries, idx=0)
GTop::Mountentry entries
int idx
char *
Mountlist_type(entries, idx=0)
GTop::Mountentry entries
int idx
char *
Mountlist_mountdir(entries, idx=0)
GTop::Mountentry entries
int idx
u_int64_t
Mountlist_dev(entries, idx=0)
GTop::Mountentry entries
int idx
MODULE = GTop PACKAGE = GTop::MapEntry PREFIX = MapEntry_
void
DESTROY(entries)
GTop::MapEntry entries
CODE:
glibtop_free(entries);
( run in 0.570 second using v1.01-cache-2.11-cpan-5511b514fd6 )