perl
view release on metacpan or search on metacpan
ext/POSIX/POSIX.xs view on Meta::CPAN
break;
case 5:
#ifdef c99_isnormal
RETVAL = c99_isnormal(x);
#else
not_here("isnormal");
#endif
break;
case 6:
#ifdef c99_lrint
RETVAL = c99_lrint(x);
#else
not_here("lrint");
#endif
break;
case 7:
#ifdef c99_lround
RETVAL = c99_lround(x);
#else
not_here("lround");
#endif
break;
case 8:
default:
RETVAL = Perl_signbit(x);
break;
}
OUTPUT:
RETVAL
NV
getpayload(nv)
NV nv
CODE:
#ifdef DOUBLE_HAS_NAN
RETVAL = S_getpayload(nv);
#else
PERL_UNUSED_VAR(nv);
RETVAL = 0.0;
not_here("getpayload");
#endif
OUTPUT:
RETVAL
void
setpayload(nv, payload)
NV nv
NV payload
CODE:
#ifdef DOUBLE_HAS_NAN
S_setpayload(&nv, payload, FALSE);
#else
PERL_UNUSED_VAR(nv);
PERL_UNUSED_VAR(payload);
not_here("setpayload");
#endif
OUTPUT:
nv
void
setpayloadsig(nv, payload)
NV nv
NV payload
CODE:
#ifdef DOUBLE_HAS_NAN
nv = NV_NAN;
S_setpayload(&nv, payload, TRUE);
#else
PERL_UNUSED_VAR(nv);
PERL_UNUSED_VAR(payload);
not_here("setpayloadsig");
#endif
OUTPUT:
nv
int
issignaling(nv)
NV nv
CODE:
#ifdef DOUBLE_HAS_NAN
RETVAL = Perl_isnan(nv) && NV_NAN_IS_SIGNALING(&nv);
#else
PERL_UNUSED_VAR(nv);
RETVAL = 0.0;
not_here("issignaling");
#endif
OUTPUT:
RETVAL
NV
copysign(x,y)
NV x
NV y
ALIAS:
fdim = 1
fmax = 2
fmin = 3
fmod = 4
hypot = 5
isgreater = 6
isgreaterequal = 7
isless = 8
islessequal = 9
islessgreater = 10
isunordered = 11
nextafter = 12
nexttoward = 13
remainder = 14
CODE:
PERL_UNUSED_VAR(x);
PERL_UNUSED_VAR(y);
#ifdef NV_NAN
RETVAL = NV_NAN;
#else
RETVAL = 0;
#endif
switch (ix) {
case 0:
#ifdef c99_copysign
RETVAL = c99_copysign(x, y);
#else
not_here("copysign");
#endif
break;
case 1:
#ifdef c99_fdim
RETVAL = c99_fdim(x, y);
#else
not_here("fdim");
#endif
break;
ext/POSIX/POSIX.xs view on Meta::CPAN
right settings, including appropriate interpretation
of DEFAULT and IGNORE. However, why are we doing
this when we're about to do it again just below? XXX */
SvSETMAGIC(*sigsvp);
/* And here again we duplicate -- DEFAULT/IGNORE checking. */
if(SvPOK(*svp)) {
const char *s=SvPVX_const(*svp);
if(strEQ(s,"IGNORE")) {
act.sa_handler = SIG_IGN;
}
else if(strEQ(s,"DEFAULT")) {
act.sa_handler = SIG_DFL;
}
}
/* Set up any desired mask. */
svp = hv_fetchs(action, "MASK", FALSE);
if (svp && sv_isa(*svp, "POSIX::SigSet")) {
sigset = (sigset_t *) SvPV_nolen(SvRV(*svp));
act.sa_mask = *sigset;
}
else
sigemptyset(& act.sa_mask);
/* Don't worry about cleaning up *sigsvp if this fails,
* because that means we tried to disposition a
* nonblockable signal, in which case *sigsvp is
* essentially meaningless anyway.
*/
RETVAL = sigaction(sig, & act, (struct sigaction *)0);
if(RETVAL == -1) {
LEAVE;
XSRETURN_UNDEF;
}
}
LEAVE;
}
#endif
OUTPUT:
RETVAL
SysRet
sigpending(sigset)
POSIX::SigSet sigset
ALIAS:
sigsuspend = 1
CODE:
#ifdef __amigaos4__
RETVAL = not_here("sigpending");
#else
RETVAL = ix ? sigsuspend(sigset) : sigpending(sigset);
#endif
OUTPUT:
RETVAL
CLEANUP:
PERL_ASYNC_CHECK();
SysRet
sigprocmask(how, sigset, oldsigset = 0)
int how
POSIX::SigSet sigset = NO_INIT
POSIX::SigSet oldsigset = NO_INIT
INIT:
if (! SvOK(ST(1))) {
sigset = NULL;
} else if (sv_isa(ST(1), "POSIX::SigSet")) {
sigset = (sigset_t *) SvPV_nolen(SvRV(ST(1)));
} else {
croak("sigset is not of type POSIX::SigSet");
}
if (items < 3 || ! SvOK(ST(2))) {
oldsigset = NULL;
} else if (sv_isa(ST(2), "POSIX::SigSet")) {
oldsigset = (sigset_t *) SvPV_nolen(SvRV(ST(2)));
} else {
croak("oldsigset is not of type POSIX::SigSet");
}
void
_exit(status)
int status
SysRet
dup2(fd1, fd2)
int fd1
int fd2
CODE:
if (fd1 >= 0 && fd2 >= 0) {
#ifdef WIN32
/* RT #98912 - More Microsoft muppetry - failing to
actually implemented the well known documented POSIX
behaviour for a POSIX API.
http://msdn.microsoft.com/en-us/library/8syseb29.aspx */
RETVAL = dup2(fd1, fd2) == -1 ? -1 : fd2;
#else
RETVAL = dup2(fd1, fd2);
#endif
} else {
SETERRNO(EBADF,RMS_IFI);
RETVAL = -1;
}
OUTPUT:
RETVAL
SV *
lseek(fd, offset, whence)
POSIX::Fd fd
Off_t offset
int whence
CODE:
{
Off_t pos = PerlLIO_lseek(fd, offset, whence);
RETVAL = sizeof(Off_t) > sizeof(IV)
? newSVnv((NV)pos) : newSViv((IV)pos);
}
OUTPUT:
RETVAL
void
nice(incr)
int incr
PPCODE:
errno = 0;
if ((incr = nice(incr)) != -1 || errno == 0) {
if (incr == 0)
XPUSHs(newSVpvs_flags("0 but true", SVs_TEMP));
else
XPUSHs(sv_2mortal(newSViv(incr)));
}
void
pipe()
PPCODE:
int fds[2];
if (pipe(fds) != -1) {
EXTEND(SP,2);
( run in 0.499 second using v1.01-cache-2.11-cpan-71847e10f99 )