view release on metacpan or search on metacpan
void
deep_utf8_decode( SV *data )
PROTOTYPE: $
PPCODE:
struct pp_args a_args;
a_args.noskip = 0;
a_args.type = DEEP_CALL_INPLACE ;
a_args.str_pos = 1;
a_args.argc = 2;
deep_walk_imp( data, & a_args );
void
deep_utf8_encode( SV *data )
PROTOTYPE: $
PPCODE:
struct pp_args a_args;
a_args.noskip = 0;
a_args.type = DEEP_CALL_INPLACE ;
a_args.str_pos = 1;
deep_walk_imp( data, & a_args );
void
deep_from_to_00( SV *data, SV *from, SV* to )
PROTOTYPE: $$$
PPCODE:
struct pp_args a_args;
a_args.noskip = 0;
a_args.type = DEEP_FUNCTION;
a_args.callback = from_to_cb_00;
a_args.argv[0] = find_encoding( &a_args, from );
deep_walk_imp( data, & a_args );
void
deep_from_to( SV *data, SV *from, SV* to )
PROTOTYPE: $$$
PPCODE:
struct pp_args a_args;
a_args.noskip = 0;
a_args.type = DEEP_FUNCTION;
a_args.fastinit = 0;
a_args.callback = from_to_cb;
deep_walk_imp( data, & a_args );
void
deep_encode_00( SV *data, SV* encoding )
PROTOTYPE: $$
PPCODE:
struct pp_args a_args;
a_args.type = DEEP_METHOD_TEMP;
a_args.fastinit = -1;
a_args.method = "encode";
a_args.noskip = 0;
void
deep_decode_00( SV *data, SV* encoding )
PROTOTYPE: $$
PPCODE:
struct pp_args a_args;
a_args.type = DEEP_METHOD_TEMP;
a_args.fastinit = -1;
a_args.method = "decode";
a_args.noskip = 0;
void
deep_encode( SV *data, SV* encoding )
PROTOTYPE: $$
PPCODE:
struct pp_args a_args;
a_args.type = DEEP_METHOD_TEMP;
a_args.method = "encode";
a_args.noskip = 0;
a_args.str_pos = 1;
void
deep_decode( SV *data, SV* encoding )
PROTOTYPE: $$
PPCODE:
struct pp_args a_args;
a_args.type = DEEP_METHOD_TEMP;
a_args.method = "decode";
a_args.noskip = 0;
a_args.str_pos = 1;
deep_walk_imp( data, & a_args );
void
deep_utf8_off( SV *data)
PROTOTYPE: $
PPCODE:
struct pp_args a_args;
a_args.noskip = 1;
a_args.type = DEEP_FUNCTION;
a_args.callback = utf8_off_cb;
a_args.counter = 0;
mXPUSHi( a_args.counter );
void
deep_utf8_on( SV *data)
PROTOTYPE: $
PPCODE:
struct pp_args a_args;
a_args.noskip = 1;
a_args.type = DEEP_FUNCTION;
a_args.callback = utf8_on_cb;
a_args.counter = 0;
mXPUSHi( a_args.counter );
void
deep_utf8_downgrade( SV *data)
PROTOTYPE: $
PPCODE:
struct pp_args a_args;
a_args.noskip = 1;
a_args.type = DEEP_FUNCTION;
a_args.callback = utf8_downgrade_cb;
a_args.counter = 0;
mXPUSHi( a_args.counter );
void
deep_utf8_upgrade( SV *data)
PROTOTYPE: $
PPCODE:
struct pp_args a_args;
a_args.noskip = 1;
a_args.type = DEEP_FUNCTION;
a_args.callback = utf8_upgrade_cb;
a_args.counter = 0;
mXPUSHi( a_args.counter );
void
deep_utf8_check( SV *data)
PROTOTYPE: $
PPCODE:
struct pp_args a_args;
a_args.noskip = 1;
a_args.type = DEEP_FUNCTION;
a_args.callback = utf8_check_encoding_cb;
a_args.counter = 1;
mXPUSHi( a_args.counter );
void
deep_str_clone( SV *data )
PROTOTYPE: $
PPCODE:
struct pp_args a_args;
SV * R;
a_args.noskip = 0;
R = deep_clone_imp( data, &a_args );
if ( R ){
view all matches for this distribution
view release on metacpan or search on metacpan
OUTPUT:
RETVAL
void
SDL_ListModes (int rgb, int alpha)
PPCODE:
{
SDL_Rect **m;
SDL_GL_SetAttribute (SDL_GL_RED_SIZE , rgb);
SDL_GL_SetAttribute (SDL_GL_GREEN_SIZE, rgb);
int
SDL_GetModState ()
void
poll_events ()
PPCODE:
{
SDL_Event ev;
SDL_PumpEvents ();
while (SDL_PeepEvents (&ev, 1, SDL_GETEVENT, SDL_ALLEVENTS) > 0)
Mix_HookMusicFinished (music_finished);
Mix_ChannelFinished (channel_finished);
void
Mix_QuerySpec ()
PPCODE:
{
int freq, channels;
Uint16 format;
if (Mix_QuerySpec (&freq, &format, &channels))
CODE:
setsockopt (fd, IPPROTO_TCP, TCP_NODELAY, (void *)&val, sizeof (val));
void
win32_proxy_info ()
PPCODE:
{
#ifdef _WIN32
char buffer[2048];
DWORD buflen;
void
load_image_inline (SV *image_)
ALIAS:
load_image_file = 1
PPCODE:
{
STRLEN image_len;
char *image = (char *)SvPVbyte (image_, image_len);
SDL_Surface *surface, *surface2;
SDL_PixelFormat fmt;
SDL_FreeSurface (surface2);
}
void
average (int x, int y, uint32_t *data)
PPCODE:
{
uint32_t r = 0, g = 0, b = 0, a = 0;
x = y = x * y;
pango_layout_set_attributes (self->pl, attrs);
}
void
get_shapes (DC::Layout self)
PPCODE:
{
PangoLayoutIter *iter = pango_layout_get_iter (self->pl);
do
{
CODE:
pango_layout_set_single_paragraph_mode (self->pl, !!spm);
void
size (DC::Layout self)
PPCODE:
{
int w, h;
layout_get_pixel_size (self, &w, &h);
OUTPUT:
RETVAL
void
cursor_pos (DC::Layout self, int index)
PPCODE:
{
PangoRectangle pos;
pango_layout_get_cursor_pos (self->pl, index, &pos, 0);
EXTEND (SP, 3);
PUSHs (sv_2mortal (newSViv (pos.height / PANGO_SCALE)));
}
void
index_to_line_x (DC::Layout self, int index, int trailing = 0)
PPCODE:
{
int line, x;
pango_layout_index_to_line_x (self->pl, index, trailing, &line, &x);
#if !PANGO_VERSION_CHECK (1, 17, 3)
PUSHs (sv_2mortal (newSViv (x / PANGO_SCALE)));
}
void
line_x_to_index (DC::Layout self, int line, int x)
PPCODE:
{
PangoLayoutLine *lp;
int index, trailing;
if (line < 0)
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
}
void
expire_textures (DC::Map self, int texid, int count)
PPCODE:
for (; texid < self->texs && count; ++texid, --count)
{
maptex *tex = self->tex + texid;
if (tex->name)
glDisable (GL_TEXTURE_2D);
}
void
fow_texture (DC::Map self, int mx, int my, int sw, int sh)
PPCODE:
{
int x, y;
int sw1 = sw + 2;
int sh1 = sh + 2;
int sh3 = sh * 3;
OUTPUT:
RETVAL
void
set_rect (DC::Map self, int x0, int y0, SV *data_sv)
PPCODE:
{
int x, y, z;
int w, h;
int x1, y1;
STRLEN len;
PROTOTYPES: DISABLE
void
decoders ()
PPCODE:
#if SDL_MIXER_MAJOR_VERSION > 1 || SDL_MIXER_MINOR_VERSION > 2 || SDL_MIXER_PATCHLEVEL >= 10
int i, num = Mix_GetNumChunkDecoders ();
EXTEND (SP, num);
for (i = 0; i < num; ++i)
PUSHs (sv_2mortal (newSVpv (Mix_GetChunkDecoder (i), 0)));
MODULE = Deliantra::Client PACKAGE = DC::MixMusic
void
decoders ()
PPCODE:
#if SDL_MIXER_MAJOR_VERSION > 1 || SDL_MIXER_MINOR_VERSION > 2 || SDL_MIXER_PATCHLEVEL >= 10
int i, num = Mix_GetNumMusicDecoders ();
EXTEND (SP, num);
for (i = 0; i < num; ++i)
PUSHs (sv_2mortal (newSVpv (Mix_GetMusicDecoder (i), 0)));
PROTOTYPES: DISABLE
void
find_widget (SV *self, NV x, NV y)
PPCODE:
{
if (within_widget (self, x, y))
XPUSHs (self);
}
view all matches for this distribution
view release on metacpan or search on metacpan
fallback/const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
type = constant(aTHX_ s, len);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
switch (type) {
case PERL_constant_NOTFOUND:
view all matches for this distribution
view release on metacpan or search on metacpan
cv_set_call_checker(assert_cv, assert_checker, (SV*)assert_cv);
}
void
assert_on(...)
PPCODE:
{
if (items != 1) croak("Wrong number of arguments in assert() call");
if (SvTRUE(ST(0))) XSRETURN_UNDEF;
PUSHMARK(SP);
view all matches for this distribution
view release on metacpan or search on metacpan
int st_start, st_pos;
int pos = 0;
int state = 'r';
int line = 1;
int plevel = 0;
PPCODE:
base_str = SvPV(in_str, length);
if (length == 0) croak("cc_exprstr: length=0");
targ_str = SvPV(in_target, targlen);
relen = myrelen(targ_str, targlen);
while (pos < length) {
char *targ_str;
int st_start, st_pos;
int pos = 0;
int state = 'r';
int line = 1;
PPCODE:
base_str = SvPV(in_str, length);
if (length == 0) croak("cc_strstr: length=0");
targ_str = SvPV(in_target, targlen);
relen = myrelen(targ_str, targlen);
while (pos < length) {
int opens,closes;
int st_start;
int st_pos;
char state;
char paren2;
PPCODE:
/*warn("---BEGIN codeblock\n");/**/
if (!(paren1 == '(' || paren1 == '{'))
croak("extract_balanced: only works on () and {}");
paren2 = paren1 == '('? ')' : '}';
base_str = SvPV(in_str, length);
view all matches for this distribution
view release on metacpan or search on metacpan
Callsite.xs view on Meta::CPAN
callsite(level = 0)
I32 level
PREINIT:
const PERL_CONTEXT *cx, *dbcx;
int rv = 1;
PPCODE:
cx = caller_cx(level, &dbcx);
if (!cx) XSRETURN_EMPTY;
mXPUSHu(MY_RETOP(cx));
if (GIMME == G_ARRAY && CopSTASH_eq(PL_curcop, PL_debstash)) {
view all matches for this distribution
view release on metacpan or search on metacpan
void
set_criteria(flag)
unsigned flag
PREINIT:
dMY_CXT;
PPCODE:
MY_CXT.covering = flag;
/* fprintf(stderr, "Cover set to %d\n", flag); */
if (MY_CXT.replace_ops) return;
PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
void
add_criteria(flag)
unsigned flag
PREINIT:
dMY_CXT;
PPCODE:
MY_CXT.covering |= flag;
if (MY_CXT.replace_ops) return;
PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
void
remove_criteria(flag)
unsigned flag
PREINIT:
dMY_CXT;
PPCODE:
MY_CXT.covering &= ~flag;
if (MY_CXT.replace_ops) return;
PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
unsigned
OUTPUT:
RETVAL
void
set_first_init_and_end()
PPCODE:
set_firsts_if_needed(aTHX);
void
collect_inits()
PREINIT:
dMY_CXT;
PPCODE:
int i;
if (!MY_CXT.ends) MY_CXT.ends = newAV();
NDEB(svdump(MY_CXT.ends));
if (PL_initav)
for (i = 0; i <= av_len(PL_initav); i++) {
void
set_last_end()
PREINIT:
dMY_CXT;
PPCODE:
int i;
SV *end = (SV *)get_cv("last_end", 0);
av_push(PL_endav, end);
NDEB(svdump(end));
if (!MY_CXT.ends) MY_CXT.ends = newAV();
view all matches for this distribution
view release on metacpan or search on metacpan
MODULE = Devel::DProf PACKAGE = DB
void
sub(...)
PPCODE:
{
dORIGMARK;
HV * const oldstash = PL_curstash;
SV * const Sub = GvSV(PL_DBsub); /* name of current sub */
/* SP -= items; added by xsubpp */
MODULE = Devel::DProf PACKAGE = Devel::DProf
void
END()
PPCODE:
{
if (PL_DBsub) {
/* maybe the process forked--we want only
* the parent's profile.
*/
view all matches for this distribution
view release on metacpan or search on metacpan
MODULE = Devel::DTrace PACKAGE = Devel::DTrace
PROTOTYPES: ENABLE
void
_dtrace_hook_runops()
PPCODE:
{
runops_hook();
}
view all matches for this distribution
view release on metacpan or search on metacpan
@_ is not set up, because the sub is an XS.
*/
I32 noargs = (PL_op->op_flags & OPf_STACKED) ? 0 : G_NOARGS;
bool in_debugger;
int retcount;
PPCODE:
/*
We're passing through our arguments unmodified, so we can
re-push them in place, or just restore the MARK declared by
the implicit dXSARGS, and get the non-adjusted stack pointer
from the interpreter global.
view all matches for this distribution
view release on metacpan or search on metacpan
FastProf.xs view on Meta::CPAN
MODULE = Devel::FastProf PACKAGE = DB
PROTOTYPES: DISABLE
void DB(...)
PPCODE:
{
IV ticks;
if (usecputime) {
struct tms buf;
times(&buf);
FastProf.xs view on Meta::CPAN
#endif
}
}
void _finish()
PPCODE:
{
if (out) {
if (canfork) {
flock_and_header(aTHX);
fflush(out);
FastProf.xs view on Meta::CPAN
}
}
void _init(char *_outname, int _usecputime, int _canfork)
PPCODE:
{
out = fopen(_outname, "wb");
if (!out) Perl_croak(aTHX_ "unable to open file %s for writing", _outname);
fwrite("D::FP-" XS_VERSION "\0\0\0\0\0\0\0", 1, 12, out);
putmark(3);
FastProf.xs view on Meta::CPAN
MODULE = Devel::FastProf PACKAGE = Devel::FastProf::Reader
void _read_file(char *infn)
PPCODE:
{
HV *ticks = get_hv("Devel::FastProf::Reader::TICKS", TRUE);
HV *count = get_hv("Devel::FastProf::Reader::COUNT", TRUE);
AV *fn = get_av("Devel::FastProf::Reader::FN", TRUE);
AV *src = get_av("Devel::FastProf::Reader::SRC", TRUE);
view all matches for this distribution
view release on metacpan or search on metacpan
FindBlessedRefs.xs view on Meta::CPAN
PREINIT:
SV* sva;
SV* svend;
SV* sv;
PPCODE:
// this stuff is mostly from perl-5.8.8/sv.c, but cleaned up to look like ordinary XS
for (sva = PL_sv_arenaroot; sva; sva = (SV*)SvANY(sva)) {
svend = &sva[SvREFCNT(sva)];
for (sv = sva + 1; sv < svend; ++sv) {
view all matches for this distribution
view release on metacpan or search on metacpan
PROTOTYPES: ENABLE
void
find_ (SV *target_ref)
PPCODE:
{
SV *arena, *targ;
U32 rmagical;
int i;
AV *about = newAV ();
view all matches for this distribution
view release on metacpan or search on metacpan
*/
}
SV*
sweep()
PPCODE:
{
PTR_TBL_t* tbl = sweep_root();
AV* av = newAV();
{
SV* sva;
view all matches for this distribution
view release on metacpan or search on metacpan
Gladiator.xs view on Meta::CPAN
SV*
walk_arena()
PPCODE:
{
SV* sva;
I32 visited = 0;
AV* av = newAV();
for (sva = PL_sv_arenaroot; sva; sva = (SV*)SvANY(sva)) {
view all matches for this distribution
view release on metacpan or search on metacpan
PROTOTYPES: ENABLE
void
_hook_runops()
PPCODE:
{
tools_hook_runops();
}
void
_reset_counters()
PPCODE:
{
tools_reset_counters();
}
void
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Devel/LeakTrace.xs view on Meta::CPAN
PROTOTYPES: ENABLE
void
hook_runops()
PPCODE:
{
note_changes(NULL, 0);
PL_runops = runops_leakcheck;
}
void
reset_counters()
PPCODE:
{
if (used) g_hash_table_destroy( used );
used = NULL;
note_changes(NULL, 0);
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Devel/MAT.xs view on Meta::CPAN
keys(self)
HV *self
ALIAS:
keys = 0
values_at = 1
PPCODE:
{
struct pmat_sv_hash *hv = (struct pmat_sv_hash *)get_pmat_sv(self);
long i;
EXTEND(SP, hv->n_values);
view all matches for this distribution
view release on metacpan or search on metacpan
Mallinfo.xs view on Meta::CPAN
FILE *fp
void
malloc_info_string (options)
int options
PPCODE:
{
FILE *fp;
SV *ret = &PL_sv_undef;
int err;
view all matches for this distribution
view release on metacpan or search on metacpan
FileHandle.xs view on Meta::CPAN
char *pathname
char *mode
PREINIT:
NYTP_file fh = NYTP_open(pathname, mode);
SV *object;
PPCODE:
if(!fh)
XSRETURN(0);
object = newSV(0);
sv_usepvn(object, (char *) fh, sizeof(struct NYTP_file_t));
ST(0) = sv_bless(sv_2mortal(newRV_noinc(object)), gv_stashpvs("Devel::NYTProf::FileHandle", GV_ADD));
view all matches for this distribution
view release on metacpan or search on metacpan
parts/inc/SvPV view on Meta::CPAN
STRLEN nlen
SV *insv
PREINIT:
STRLEN slen;
const char *str;
PPCODE:
str = SvPV_const(insv, slen);
XPUSHs(sv);
mXPUSHi(SvLEN(sv));
SvPV_renew(sv, nlen);
Copy(str, SvPVX(sv), slen + 1, char);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Devel/PatchPerl.pm view on Meta::CPAN
RETVAL = (NV)ualarm( useconds, uinterval ) / NV_1E6;
#endif
}
@@ -1266,7 +1326,9 @@ setitimer(which, seconds, interval = 0)
struct itimerval oldit;
PPCODE:
if (seconds < 0.0 || interval < 0.0)
- croak("Time::HiRes::setitimer(%"IVdf", %"NVgf", %"NVgf"): negative time not invented yet", (IV)which, seconds, interval);
+ croak("Time::HiRes::setitimer(%" IVdf ", %" NVgf ", %" NVgf
+ "): negative time not invented yet",
+ (IV)which, seconds, interval);
view all matches for this distribution
view release on metacpan or search on metacpan
PtrTable.xs view on Meta::CPAN
void
_PtrTable_init (self)
SV * self
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
_PtrTable_init(self);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
PtrTable.xs view on Meta::CPAN
void
_PtrTable_make_our_table (self)
SV * self
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
_PtrTable_make_our_table(self);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
PtrTable.xs view on Meta::CPAN
void
_PtrTable_freecopied (self)
SV * self
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
_PtrTable_freecopied(self);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
view all matches for this distribution
view release on metacpan or search on metacpan
void
match(rx, match = -1, base = NULL)
regexp *rx
I32 match
char *base
PPCODE:
{
I32 mx;
char *s = rx->subbase, *b, *e;
if (s == 0) {
view all matches for this distribution
view release on metacpan or search on metacpan
RingBuffer.xs view on Meta::CPAN
_get_ring_size(slots, slotsz, msgarea_size)
int slots
int slotsz
int msgarea_size
PROTOTYPE: $$
PPCODE:
int ringsz = sizeof(ring_header_t) +
(slots * (slotsz + sizeof(ring_slothdr_t))) +
msgarea_size;
ST(0) = sv_2mortal(newSViv(ringsz));
XSRETURN(1);
RingBuffer.xs view on Meta::CPAN
int slots
int slotsz
int msgarea_size
int global_size
PROTOTYPE: $$$$
PPCODE:
int ringsz = sizeof(ring_header_t) +
(slots * (slotsz + sizeof(ring_slothdr_t))) +
msgarea_size;
int total = sizeof(ring_buffers_t) + global_size + count + (ringsz * count);
ST(0) = sv_2mortal(newSViv(total));
RingBuffer.xs view on Meta::CPAN
_get_rings_addr(addr, count, global_size)
SV * addr
int count
int global_size
PROTOTYPE: $$$
PPCODE:
UV tmp = SvUV(addr);
tmp += sizeof(ring_bufhdr_t) + count + global_size;
ST(0) = sv_2mortal(newSVuv(tmp));
XSRETURN(1);
RingBuffer.xs view on Meta::CPAN
UV ringnum
int slots
int slotsz
int msgarea_size
PROTOTYPE: $$$$
PPCODE:
UV tmp = SvUV(addr);
#
# computation needs to account for dynamic sized
# fields
#
RingBuffer.xs view on Meta::CPAN
void
_alloc_ring(mapaddr, count)
SV * mapaddr
int count
PROTOTYPE: $$
PPCODE:
IV tmp = SvIV(mapaddr);
char * freemap = INT2PTR(caddr_t,tmp);
int i = 0;
for (; ((i < count) && (! *freemap)); i++, freemap++);
RingBuffer.xs view on Meta::CPAN
SV * mapaddr
SV * ringaddr
int ringbufsz
int ringnum
PROTOTYPE: $$$$
PPCODE:
UV tmp = SvUV(mapaddr);
char * freemap = INT2PTR(caddr_t,tmp);
ring_bufptr_t ring;
tmp = SvUV(ringaddr);
RingBuffer.xs view on Meta::CPAN
int ringbufsz
int count
int pid
int tid
PROTOTYPE: $$$$$
PPCODE:
UV tmp = SvUV(ringaddr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t,tmp);
int i = 0;
while ((i < count) &&
RingBuffer.xs view on Meta::CPAN
SV * addr
int pid
int tid
SV * baseaddr
PROTOTYPE: $$$$
PPCODE:
UV tmp = SvUV(addr);
UV basetmp = SvUV(baseaddr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ringbuf_hdrptr_t ringbuf = INT2PTR(ringbuf_hdrptr_t, basetmp);
UV slotsaddr = tmp + sizeof(ring_header_t) + ringbuf->msgarea_sz;
RingBuffer.xs view on Meta::CPAN
#
void
_get_slots_addr(addr)
SV * addr
PROTOTYPE: $
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ringbuf_hdrptr_t ringbuf = INT2PTR(ringbuf_hdrptr_t, (tmp - ring->hdr.baseoff));
UV slotsaddr = tmp + sizeof(ring_header_t) + ringbuf->msgarea_sz;
ST(0) = sv_2mortal(newSVuv(slotsaddr));
RingBuffer.xs view on Meta::CPAN
#
void
_get_header(addr)
SV * addr
PROTOTYPE: $
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
EXTEND(SP, 4);
PUSHs(sv_2mortal(newSViv(ring->hdr.pid)));
RingBuffer.xs view on Meta::CPAN
#
void
updateSlot(addr, lineno)
SV * addr
int lineno
PPCODE:
UV tmp;
ring_bufptr_t ring;
ringbuf_hdrptr_t ringbuf;
UV slotsaddr;
ring_slotptr_t slot;
RingBuffer.xs view on Meta::CPAN
#
void
nextSlot(addr, entry)
SV * addr
SV * entry
PPCODE:
UV tmp;
ring_bufptr_t ring;
ringbuf_hdrptr_t ringbuf;
UV slotsaddr;
ring_slotptr_t slot = NULL;
RingBuffer.xs view on Meta::CPAN
# backs up one slot
#
void
freeSlot(addr)
SV * addr
PPCODE:
UV tmp;
ring_bufptr_t ring;
ringbuf_hdrptr_t ringbuf;
UV slotsaddr;
ring_slotptr_t slots = NULL;
RingBuffer.xs view on Meta::CPAN
void
_get_slot(addr, slotnum)
SV * addr
int slotnum
PROTOTYPE: $$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ringbuf_hdrptr_t ringbuf = INT2PTR(ringbuf_hdrptr_t, (tmp - ring->hdr.baseoff));
UV slotsaddr = tmp + sizeof(ring_header_t) + ringbuf->msgarea_sz +
(slotnum * (ringbuf->slot_sz + sizeof(ring_slothdr_t)));
RingBuffer.xs view on Meta::CPAN
# DB control variables
#
void
getFlags(addr)
SV * addr
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ringbuf_hdrptr_t ringbuf = INT2PTR(ringbuf_hdrptr_t, (tmp - ring->hdr.baseoff));
int retval = (ringbuf->single ? 1 : 0) | (ring->hdr.trace ? 2 : 0) | (ring->hdr.signal ? 4 : 0);
ST(0) = sv_2mortal(newSViv(retval));
RingBuffer.xs view on Meta::CPAN
void
_get_trace(addr)
SV * addr
PROTOTYPE: $
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ST(0) = sv_2mortal(newSViv(ring->hdr.trace));
XSRETURN(1);
RingBuffer.xs view on Meta::CPAN
void
_set_trace(addr, val)
SV * addr
int val
PROTOTYPE: $$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ST(0) = sv_2mortal(newSViv(ring->hdr.trace));
ring->hdr.trace = val;
XSRETURN(1);
void
_get_signal(addr)
SV * addr
PROTOTYPE: $
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ST(0) = sv_2mortal(newSViv(ring->hdr.signal));
XSRETURN(1);
RingBuffer.xs view on Meta::CPAN
void
_set_signal(addr, val)
SV * addr
int val
PROTOTYPE: $$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ST(0) = sv_2mortal(newSViv(ring->hdr.signal));
ring->hdr.signal = val;
XSRETURN(1);
RingBuffer.xs view on Meta::CPAN
SV * addr
SV * resp
SV * msg
int state
PROTOTYPE: $$$$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ringbuf_hdrptr_t ringbuf = INT2PTR(ringbuf_hdrptr_t, (tmp - ring->hdr.baseoff));
int resplen = SvCUR(resp);
RingBuffer.xs view on Meta::CPAN
void
_check_for_cmd_msg(addr, state)
SV * addr
int state
PROTOTYPE: $$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
int msglen = ring->hdr.msglen;
char lclcmd[5];
RingBuffer.xs view on Meta::CPAN
void
_get_watch_expr(addr, watch)
SV * addr
int watch
PROTOTYPE: $$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ST(0) = &PL_sv_undef;
RingBuffer.xs view on Meta::CPAN
SV * addr
int watch
SV * result
SV * error
PROTOTYPE: $$$$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
int len;
ST(0) = &PL_sv_undef;
RingBuffer.xs view on Meta::CPAN
void
_get_watch_result(addr, watch)
SV * addr
int watch
PROTOTYPE: $$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
int len;
char *zerobuttrue = "0E0";
RingBuffer.xs view on Meta::CPAN
void
_add_watch_expr(addr, expr)
SV * addr
SV * expr
PROTOTYPE: $$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
int watch = 0;
ST(0) = &PL_sv_undef;
RingBuffer.xs view on Meta::CPAN
void
_free_watch_expr(addr, watch)
SV * addr
int watch
PROTOTYPE: $$
PPCODE:
UV tmp = SvUV(addr);
ring_bufptr_t ring = INT2PTR(ring_bufptr_t, tmp);
ring->hdr.watches[watch].inuse = -2;
ST(0) = &PL_sv_yes;
XSRETURN(1);
view all matches for this distribution
view release on metacpan or search on metacpan
RunBlock.xs view on Meta::CPAN
RETVAL
void
_long_wantarray(up)
int up;
PPCODE:
{
I32 cxix;
for( cxix = cxstack_ix; up>=0; --up, --cxix )
{
cxix = S_dopoptosub_at(aTHX_ cxstack, cxix);
RunBlock.xs view on Meta::CPAN
}
void
_long_return(up)
int up;
PPCODE:
{
I32 cxix;
CV* cv_retops;
#if DEBUG_MESSAGES
fprintf(stderr, "_long_return:enter(up=%d)\n", up)
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Devel/cst.xs view on Meta::CPAN
}
MODULE = Devel::cst PACKAGE = Devel::CStacktrace
void stacktrace(size_t depth)
PPCODE:
void** buffer;
Newx(buffer, depth, void*);
size_t len = backtrace(buffer, depth);
char** values = backtrace_symbols(buffer, len);
int i;
view all matches for this distribution
view release on metacpan or search on metacpan
PROTOTYPES: ENABLE
void
profile(flag)
int flag
PPCODE:
profiling = flag;
void
op_count()
PPCODE:
int i;
EXTEND(sp, PL_maxo);
for (i = 0; i < PL_maxo; i++)
PUSHs(sv_2mortal(newSViv(op_count[i])));
void
zero_stats()
PPCODE:
Zero(op_count, PL_maxo, unsigned long);
BOOT:
Newz(0, op_count, PL_maxo, unsigned long);
PL_runops = runops_opprof;
view all matches for this distribution
view release on metacpan or search on metacpan
fallback/const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
/* Change this to constant(aTHX_ s, len, &iv, &nv);
if you need to return both NVs and IVs */
type = constant(aTHX_ s, len, &iv);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
view all matches for this distribution
view release on metacpan or search on metacpan
perliso9660_wrap.c view on Meta::CPAN
// result is of type IsoStatList_t
iso9660_stat_t *p_statbuf = result;
if (!result) goto out;
PPCODE:
/* Have Perl compute the length of the string using strlen() */
XPUSHs(sv_2mortal(newSVpv(p_statbuf->filename, 0)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->lsn)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->size)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->secsize)));
perliso9660_wrap.c view on Meta::CPAN
// result is of type IsoStatList_t
iso9660_stat_t *p_statbuf = result;
if (!result) goto out;
PPCODE:
/* Have Perl compute the length of the string using strlen() */
XPUSHs(sv_2mortal(newSVpv(p_statbuf->filename, 0)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->lsn)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->size)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->secsize)));
perliso9660_wrap.c view on Meta::CPAN
// result is of type IsoStatList_t
iso9660_stat_t *p_statbuf = result;
if (!result) goto out;
PPCODE:
/* Have Perl compute the length of the string using strlen() */
XPUSHs(sv_2mortal(newSVpv(p_statbuf->filename, 0)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->lsn)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->size)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->secsize)));
perliso9660_wrap.c view on Meta::CPAN
// result is of type IsoStatList_t
iso9660_stat_t *p_statbuf = result;
if (!result) goto out;
PPCODE:
/* Have Perl compute the length of the string using strlen() */
XPUSHs(sv_2mortal(newSVpv(p_statbuf->filename, 0)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->lsn)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->size)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->secsize)));
perliso9660_wrap.c view on Meta::CPAN
// result is of type IsoStatList_t
iso9660_stat_t *p_statbuf = result;
if (!result) goto out;
PPCODE:
/* Have Perl compute the length of the string using strlen() */
XPUSHs(sv_2mortal(newSVpv(p_statbuf->filename, 0)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->lsn)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->size)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->secsize)));
perliso9660_wrap.c view on Meta::CPAN
// result is of type IsoStatList_t
iso9660_stat_t *p_statbuf = result;
if (!result) goto out;
PPCODE:
/* Have Perl compute the length of the string using strlen() */
XPUSHs(sv_2mortal(newSVpv(p_statbuf->filename, 0)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->lsn)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->size)));
XPUSHs(sv_2mortal(newSViv(p_statbuf->secsize)));
perliso9660_wrap.c view on Meta::CPAN
CdioListNode_t *p_entnode;
unsigned int num = 0;
if (!result) goto out;
PPCODE:
/* For each element in the array of strings, create a new
* mortalscalar, and stuff it into the above array. */
_CDIO_LIST_FOREACH (p_entnode, p_entlist) {
iso9660_stat_t *p_statbuf =
(iso9660_stat_t *) _cdio_list_node_data (p_entnode);
perliso9660_wrap.c view on Meta::CPAN
CdioListNode_t *p_entnode;
unsigned int num = 0;
if (!result) goto out;
PPCODE:
/* For each element in the array of strings, create a new
* mortalscalar, and stuff it into the above array. */
_CDIO_LIST_FOREACH (p_entnode, p_entlist) {
iso9660_stat_t *p_statbuf =
(iso9660_stat_t *) _cdio_list_node_data (p_entnode);
view all matches for this distribution