BSD-Itimer
view release on metacpan or search on metacpan
static double
constant(name, arg)
char *name;
int arg;
{
errno = 0;
switch (*name) {
case 'I':
if (strEQ(name, "ITIMER_PROF"))
#ifdef ITIMER_PROF
return ITIMER_PROF;
#else
goto not_there;
#endif
if (strEQ(name, "ITIMER_REAL"))
#ifdef ITIMER_REAL
return ITIMER_REAL;
#else
goto not_there;
#endif
if (strEQ(name, "ITIMER_REALPROF"))
#ifdef ITIMER_REALPROF
return ITIMER_REALPROF;
#else
goto not_there;
#endif
if (strEQ(name, "ITIMER_VIRTUAL"))
#ifdef ITIMER_VIRTUAL
return ITIMER_VIRTUAL;
#else
goto not_there;
#endif
break;
}
errno = EINVAL;
return 0;
not_there:
errno = ENOENT;
return 0;
}
MODULE = BSD::Itimer PACKAGE = BSD::Itimer
PROTOTYPES: enable
double
constant(name,arg)
char * name
int arg
MODULE = BSD::Itimer PACKAGE = BSD::Itimer PREFIX=bsd_
void
bsd_getitimer(which)
int which
PREINIT:
struct itimerval it;
int err;
PPCODE:
err = getitimer(which, &it);
if(err < 0) {
XSRETURN_EMPTY;
}
EXTEND(sp, 4);
PUSHs(sv_2mortal(newSViv(it.it_interval.tv_sec)));
PUSHs(sv_2mortal(newSViv(it.it_interval.tv_usec)));
PUSHs(sv_2mortal(newSViv(it.it_value.tv_sec)));
PUSHs(sv_2mortal(newSViv(it.it_value.tv_usec)));
void
bsd_setitimer(which, ival_sec, ival_usec, val_sec, val_usec)
int which
int ival_sec
int ival_usec
int val_sec
int val_usec
PREINIT:
struct itimerval setiv, getiv;
int err;
PPCODE:
setiv.it_interval.tv_sec = ival_sec;
setiv.it_interval.tv_usec = ival_usec;
setiv.it_value.tv_sec = val_sec;
setiv.it_value.tv_usec = val_usec;
err = setitimer(which, &setiv, &getiv);
if(err < 0) {
XSRETURN_EMPTY;
}
EXTEND(sp, 4);
PUSHs(sv_2mortal(newSViv(getiv.it_interval.tv_sec)));
PUSHs(sv_2mortal(newSViv(getiv.it_interval.tv_usec)));
PUSHs(sv_2mortal(newSViv(getiv.it_value.tv_sec)));
PUSHs(sv_2mortal(newSViv(getiv.it_value.tv_usec)));
( run in 1.349 second using v1.01-cache-2.11-cpan-71847e10f99 )