|
Packit |
0965bd |
#include "EXTERN.h"
|
|
Packit |
0965bd |
#include "perl.h"
|
|
Packit |
0965bd |
#include "XSUB.h"
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
MODULE = Sys::MemInfo PACKAGE = Sys::MemInfo
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
#include <stdio.h>
|
|
Packit |
0965bd |
#include <unistd.h>
|
|
Packit |
0965bd |
#include <sys/sysi86.h>
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
void
|
|
Packit |
0965bd |
availkeys()
|
|
Packit |
0965bd |
PREINIT:
|
|
Packit |
0965bd |
PPCODE:
|
|
Packit |
0965bd |
XPUSHs(sv_2mortal(newSVpv(_totalmem, strlen(_totalmem))));
|
|
Packit |
0965bd |
XPUSHs(sv_2mortal(newSVpv(_freemem, strlen(_freemem))));
|
|
Packit |
0965bd |
XPUSHs(sv_2mortal(newSVpv(_totalswap, strlen(_totalswap))));
|
|
Packit |
0965bd |
XPUSHs(sv_2mortal(newSVpv(_freeswap, strlen(_freeswap))));
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
double
|
|
Packit |
0965bd |
totalmem()
|
|
Packit |
0965bd |
PROTOTYPE: DISABLE
|
|
Packit |
0965bd |
CODE:
|
|
Packit |
0965bd |
const long long pages = sysconf (_SC_USEABLE_MEMORY);
|
|
Packit |
0965bd |
const long long pagesize = sysconf (_SC_PAGESIZE);
|
|
Packit |
0965bd |
RETVAL = (pages * pagesize);
|
|
Packit |
0965bd |
OUTPUT:
|
|
Packit |
0965bd |
RETVAL
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
double
|
|
Packit |
0965bd |
freemem()
|
|
Packit |
0965bd |
PROTOTYPE: DISABLE
|
|
Packit |
0965bd |
CODE:
|
|
Packit |
0965bd |
const long pagesize = sysconf (_SC_PAGESIZE);
|
|
Packit |
0965bd |
long freepages = 0;
|
|
Packit |
0965bd |
long l1=0;
|
|
Packit |
0965bd |
long l2=0;
|
|
Packit |
0965bd |
double ret = 0;
|
|
Packit |
0965bd |
int kmem;
|
|
Packit |
0965bd |
if (getksym("mem_freepages", &l1, &l2) != -1) {
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
if ((kmem = open("/dev/kmem", O_RDONLY)) != -1 && lseek(kmem, l1, SEEK_SET) != -1 &&
|
|
Packit |
0965bd |
read(kmem, &freepages, sizeof(freepages)) == -1) {
|
|
Packit |
0965bd |
ret = (freepages * pagesize);
|
|
Packit |
0965bd |
}
|
|
Packit |
0965bd |
close(kmem);
|
|
Packit |
0965bd |
}
|
|
Packit |
0965bd |
RETVAL = ret;
|
|
Packit |
0965bd |
OUTPUT:
|
|
Packit |
0965bd |
RETVAL
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
double
|
|
Packit |
0965bd |
freeswap()
|
|
Packit |
0965bd |
PROTOTYPE: DISABLE
|
|
Packit |
0965bd |
CODE:
|
|
Packit |
0965bd |
double ret = 0;
|
|
Packit |
0965bd |
RETVAL = ret;
|
|
Packit |
0965bd |
OUTPUT:
|
|
Packit |
0965bd |
RETVAL
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
double
|
|
Packit |
0965bd |
totalswap()
|
|
Packit |
0965bd |
PROTOTYPE: DISABLE
|
|
Packit |
0965bd |
CODE:
|
|
Packit |
0965bd |
double ret = 0;
|
|
Packit |
0965bd |
RETVAL = ret;
|
|
Packit |
0965bd |
OUTPUT:
|
|
Packit |
0965bd |
RETVAL
|
|
Packit |
0965bd |
|
|
Packit |
0965bd |
# vim:et:ts=2:sts=2:sw=2
|