view release on metacpan or search on metacpan
UserXAttr.xs view on Meta::CPAN
setxattr(handle, name, value, flags=0)
SV* handle
char *name
SV *value
int flags
PPCODE:
{
STRLEN vlen;
int fd=handle2fd(handle);
char *vcp;
vcp=SvPV(value, vlen);
UserXAttr.xs view on Meta::CPAN
void
getxattr(handle, name)
SV* handle
char *name
PPCODE:
{
int fd=handle2fd(handle);
char buf[4096];
ssize_t rc;
UserXAttr.xs view on Meta::CPAN
}
void
listxattr(handle)
SV* handle
PPCODE:
{
int fd=handle2fd(handle);
char buf[4096];
ssize_t rc;
UserXAttr.xs view on Meta::CPAN
void
removexattr(handle, name)
SV* handle
char *name
PPCODE:
{
int fd=handle2fd(handle);
if( fd>=0 ) {
if( !fremovexattr(fd, name) ) {
UserXAttr.xs view on Meta::CPAN
lsetxattr(path, name, value, flags=0)
char *path
char *name
SV *value
int flags
PPCODE:
{
STRLEN len;
char *cp=SvPV(value, len);
if( !lsetxattr(path, name, cp, len, flags) ) {
mPUSHi(1);
UserXAttr.xs view on Meta::CPAN
void
lgetxattr(path, name)
char *path
char *name
PPCODE:
{
char buf[4096];
ssize_t rc;
errno=0;
UserXAttr.xs view on Meta::CPAN
void
lremovexattr(path, name)
char *path
char *name
PPCODE:
{
if( !lremovexattr(path, name) ) {
mPUSHi(1);
}
}
void
llistxattr(path)
char *path
PPCODE:
{
char buf[4096];
ssize_t rc;
errno=0;
view all matches for this distribution
view release on metacpan or search on metacpan
WireGuard.xs view on Meta::CPAN
PROTOTYPES: DISABLE
void
list_device_names()
PPCODE:
char *device_names, *device_name;
size_t len;
device_names = wg_list_device_names();
if (!device_names) {
view all matches for this distribution
view release on metacpan or search on metacpan
PROTOTYPE: ;$
PREINIT:
double loadavg[3];
int rc, i;
int nelem;
PPCODE:
if (items == 0) {
nelem = 3;
} else {
nelem = atoi(SvPV_nolen(ST(0)));
}
view all matches for this distribution
view release on metacpan or search on metacpan
0.04 2013-09-17
- Improvements to auto-generated META.* files.
0.03 2013-09-06
- Micro-optimization in XS code for binsearch (Consolidated output code
into PPCODE section.
- Remove "DEV RELEASE" mention in POD.
0.02 2013-09-05
- PUBLIC RELEASE
- Enough smoke tests have trickled in that I'm comfortable with portability
view all matches for this distribution
view release on metacpan or search on metacpan
lib/List/Flatten/XS.xs view on Meta::CPAN
void *
flatten(ref, svlevel = sv_2mortal(newSViv(-1)))
SV *ref;
SV *svlevel;
PPCODE:
{
if (!SvROK(ref) || SvTYPE(SvRV(ref)) != SVt_PVAV)
Perl_croak(aTHX_ "Please pass an array reference to the first argument");
IV level = SvIV(svlevel);
view all matches for this distribution
view release on metacpan or search on metacpan
#endif
AV* random_slice (av, num)
AV* av
IV num
PPCODE:
if (num < 0)
croak("The slice's size can't be less than 0");
if (num != 0) {
XSRETURN(1);
void shuffle (av)
AV *av
PPCODE:
SSize_t len = av_len(av);
/* it's faster than "shuffle_av_first_num_elements" */
shuffle_av_last_num_elements(av, len, len);
XSRETURN_EMPTY;
void shuffle_multi(av, ...)
AV* av;
PPCODE:
static SSize_t i;
static SSize_t len;
SV* sv;
SV *ref;
view all matches for this distribution
view release on metacpan or search on metacpan
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
pairwise (code, list1, list2)
SV *code;
AV *list1;
AV *list2;
PROTOTYPE: &\@\@
PPCODE:
{
dMULTICALL;
dMULTICALLSVCV;
int i, maxitems;
AV *rc = newAV();
view all matches for this distribution
view release on metacpan or search on metacpan
head(size,...)
PROTOTYPE: $@
ALIAS:
head = 0
tail = 1
PPCODE:
{
int size = 0;
int start = 0;
int end = 0;
int i = 0;
view all matches for this distribution
view release on metacpan or search on metacpan
void
pairwise (code, ...)
SV *code;
PROTOTYPE: &\@\@
PPCODE:
{
#define av_items(a) (av_len(a)+1)
/* This function is not quite as efficient as it ought to be: We call
* 'code' multiple times and want to gather its return values all in one
RETVAL
void
mode (...)
PROTOTYPE: @
PPCODE:
{
int i;
unsigned int max = 0;
unsigned int c = 0;
unsigned int modality = 0;
view all matches for this distribution
view release on metacpan or search on metacpan
void
uniqnum (input_sv, ...)
SV * input_sv
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
uniqnum(aTHX_ input_sv);
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
double lat
double lon
double tlat
double tlon
PPCODE:
double e2,r,tu1,tu2;
double cu1,su1,cu2,s1,b1,f1,x,d;
double sx,cx,sy,cy,y,sa,c2a,cz,e,c;
double dir,dis;
int iter;
double lat
double lon
double dir
double dis
PPCODE:
double r,tu,sf,cf,b,cu,su,sa,c2a,x;
double c,d,y,sy,cy,cz,e;
double rlat,rlon;
lat = lat *rd;
double dx
double dy
double dz
double rd
PPCODE:
double bda,e2,da,df,db,dl,dh;
double sb,cb,sl,cl,rn,rm;
double rb,rl,rh;
b *= rd;
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
# of parameters
void
lua_checkstack(L, sz, ...)
lua_State * L
int sz
PPCODE:
/* call lua_checkstack */
if ( items == 2 )
{
int status = lua_checkstack( L, sz );
EXTEND(SP, 1);
int n
void
lua_getmetatable(L, ...)
lua_State * L
PPCODE:
if ( items != 1 )
croak_xs_usage( cv, "L,(objindex|name)" );
if ( looks_like_number( ST(1) ) )
{
int objindex = (int)SvIV(ST(1));
char *CLASS = NO_INIT
PROTOTYPE: $
ALIAS:
open = 1
new = 2
PPCODE:
RETVAL = luaL_newstate();
ST(0) = sv_newmortal();
sv_setref_iv(ST(0), "Lua::API::State", PTR2IV(RETVAL));
set_Perl_object( RETVAL, ST(0) );
XSRETURN(1);
lua_Debug *
new(CLASS)
char *CLASS = NO_INIT
PROTOTYPE: $
PPCODE:
Newxz( RETVAL, 1, lua_Debug );
ST(0) = sv_newmortal();
sv_setref_iv(ST(0), "Lua::API::Debug", PTR2IV(RETVAL));
set_Perl_object( RETVAL, ST(0) );
XSRETURN(1);
luaL_Buffer *
new(CLASS)
char *CLASS = NO_INIT
PROTOTYPE: $
PPCODE:
Newxz( RETVAL, 1, luaL_Buffer );
ST(0) = sv_newmortal();
sv_setref_iv(ST(0), "Lua::API::Buffer", PTR2IV(RETVAL));
set_Perl_object( RETVAL, ST(0) );
XSRETURN(1);
view all matches for this distribution
view release on metacpan or search on metacpan
buildlib/Lucy/Build/Binding/Analysis.pm view on Meta::CPAN
void
set_text(self, sv)
lucy_Token *self;
SV *sv;
PPCODE:
{
STRLEN len;
char *ptr = SvPVutf8(sv, len);
LUCY_Token_Set_Text(self, ptr, len);
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Lugh.xs view on Meta::CPAN
OUTPUT:
RETVAL
void
available_backends()
PPCODE:
{
size_t i, count;
/* Always include "auto" option */
count = ggml_backend_reg_count();
EXTEND(SP, count + 1);
lib/Lugh.xs view on Meta::CPAN
PREINIT:
HV *hv;
LughForwardOpts opts;
LughForwardResult result;
int i, j;
PPCODE:
hv = (HV*)SvRV(self);
Zero(&opts, 1, LughForwardOpts);
/* Parse named parameters: forward(tokens => \@t, lora => $l, ...) */
parse_forward_options(aTHX_ &opts, &ST(0), 1, items);
lib/Lugh.xs view on Meta::CPAN
PREINIT:
HV *hv;
LughForwardOpts opts;
LughForwardResult result;
int j;
PPCODE:
if (!SvROK(tokens_ref) || SvTYPE(SvRV(tokens_ref)) != SVt_PVAV) {
croak("forward_simple() requires an array reference");
}
hv = (HV*)SvRV(self);
lib/Lugh.xs view on Meta::CPAN
PREINIT:
HV *hv;
LughForwardOpts opts;
LughForwardResult result;
int j;
PPCODE:
hv = (HV*)SvRV(self);
Zero(&opts, 1, LughForwardOpts);
/* Detect positional: forward_cache($cache, \@tokens, ...) */
if (items >= 3 && sv_isobject(ST(1)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVAV) {
lib/Lugh.xs view on Meta::CPAN
HV *hv;
LughForwardOpts opts;
LughForwardResult result;
int j;
SV **svp;
PPCODE:
hv = (HV*)SvRV(self);
Zero(&opts, 1, LughForwardOpts);
/* Detect positional: forward_pool($pool, \@tokens, ...) */
if (items >= 3 && sv_isobject(ST(1)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVAV) {
lib/Lugh.xs view on Meta::CPAN
PREINIT:
HV *hv;
LughForwardOpts opts;
LughForwardResult result;
int i, j;
PPCODE:
hv = (HV*)SvRV(self);
Zero(&opts, 1, LughForwardOpts);
/* Detect positional: forward_batch(\@sequences, ...) */
if (items >= 2 && SvROK(ST(1)) && SvTYPE(SvRV(ST(1))) == SVt_PVAV) {
lib/Lugh.xs view on Meta::CPAN
HV *hv;
LughForwardOpts opts;
LughForwardResult result;
int j;
SV **svp;
PPCODE:
hv = (HV*)SvRV(self);
Zero(&opts, 1, LughForwardOpts);
/* Detect positional: forward_cache_pool($cache, $pool, \@tokens, ...) */
if (items >= 4 && sv_isobject(ST(1)) && sv_isobject(ST(2)) &&
lib/Lugh.xs view on Meta::CPAN
HV *hv;
LughForwardOpts opts;
LughForwardResult result;
int i, j;
SV **svp;
PPCODE:
hv = (HV*)SvRV(self);
Zero(&opts, 1, LughForwardOpts);
/* Detect positional: forward_batch_pool($pool, \@sequences, ...) */
if (items >= 3 && sv_isobject(ST(1)) && SvROK(ST(2)) && SvTYPE(SvRV(ST(2))) == SVt_PVAV) {
lib/Lugh.xs view on Meta::CPAN
int greedy = 0;
SV *callback = NULL;
int i;
int n_result;
SV **orig_sp;
PPCODE:
orig_sp = SP; /* Save original stack pointer */
/* Get model */
hv = (HV*)SvRV(self);
svp = hv_fetch(hv, "_model", 6, 0);
lib/Lugh.xs view on Meta::CPAN
AV *tokens;
int add_bos = 1;
int bos_id, eos_id, unk_id;
size_t pos;
int i;
PPCODE:
hv = (HV*)SvRV(self);
svp = hv_fetch(hv, "_token_to_id", 12, 0);
if (!svp || !SvROK(*svp)) croak("Tokenizer not initialized");
token_to_id = (HV*)SvRV(*svp);
lib/Lugh.xs view on Meta::CPAN
get_f32(self)
SV *self
PREINIT:
struct ggml_tensor *tensor;
int64_t i, n_elements;
PPCODE:
tensor = INT2PTR(struct ggml_tensor *, SvIV(SvRV(self)));
n_elements = ggml_nelements(tensor);
EXTEND(SP, n_elements);
for (i = 0; i < n_elements; i++) {
lib/Lugh.xs view on Meta::CPAN
shape(self)
SV *self
PREINIT:
struct ggml_tensor *tensor;
int i, n_dims;
PPCODE:
tensor = INT2PTR(struct ggml_tensor *, SvIV(SvRV(self)));
n_dims = ggml_n_dims(tensor);
EXTEND(SP, n_dims);
for (i = 0; i < n_dims; i++) {
lib/Lugh.xs view on Meta::CPAN
SV *self
const char *name
PREINIT:
LughModel *lm;
struct ggml_tensor *t;
PPCODE:
lm = get_lugh_model(aTHX_ self);
t = ggml_get_tensor(lm->ctx, name);
if (t) {
/* Return: type, n_dims, ne[0], ne[1], ne[2], ne[3] */
EXTEND(SP, 6);
lib/Lugh.xs view on Meta::CPAN
tensor_names(self)
SV *self
PREINIT:
LughModel *lm;
int64_t i;
PPCODE:
lm = get_lugh_model(aTHX_ self);
EXTEND(SP, lm->n_tensors);
for (i = 0; i < lm->n_tensors; i++) {
mPUSHs(newSVpv(gguf_get_tensor_name(lm->gguf, i), 0));
}
lib/Lugh.xs view on Meta::CPAN
kv_keys(self)
SV *self
PREINIT:
LughModel *lm;
int64_t i;
PPCODE:
lm = get_lugh_model(aTHX_ self);
EXTEND(SP, lm->n_kv);
for (i = 0; i < lm->n_kv; i++) {
mPUSHs(newSVpv(gguf_get_key(lm->gguf, i), 0));
}
lib/Lugh.xs view on Meta::CPAN
SV *self
PREINIT:
LughLoRAAdapter *lora;
MAGIC *mg;
int i;
PPCODE:
if (!SvROK(self)) croak("Not a reference");
mg = mg_findext(SvRV(self), PERL_MAGIC_ext, &lugh_lora_vtbl);
if (!mg) croak("Invalid LoRA object");
lora = get_lora_by_id((int)(IV)mg->mg_ptr);
if (!lora) croak("LoRA adapter not found");
lib/Lugh.xs view on Meta::CPAN
LughLoRAAdapter *lora;
LughTensor *lt;
MAGIC *mg;
int i, count = 0;
HV *result_hv;
PPCODE:
if (!SvROK(self)) croak("Not a reference");
mg = mg_findext(SvRV(self), PERL_MAGIC_ext, &lugh_lora_vtbl);
if (!mg) croak("Invalid LoRA object");
lora = get_lora_by_id((int)(IV)mg->mg_ptr);
if (!lora) croak("LoRA adapter not found");
lib/Lugh.xs view on Meta::CPAN
SV **svp;
LughSpeculative *spec;
AV *input_av, *draft_av;
int i, n_input;
int *input_tokens;
PPCODE:
if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV)
croak("Invalid Lugh::Speculative object");
hv = (HV*)SvRV(self);
svp = hv_fetch(hv, "_spec_id", 8, 0);
lib/Lugh.xs view on Meta::CPAN
SV **svp;
LughSpeculative *spec;
AV *input_av, *draft_av_in, *accepted_av;
int i, n_input, n_draft;
int *input_tokens, *draft_tokens;
PPCODE:
if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV)
croak("Invalid Lugh::Speculative object");
hv = (HV*)SvRV(self);
svp = hv_fetch(hv, "_spec_id", 8, 0);
lib/Lugh.xs view on Meta::CPAN
SV **svp;
LughSpeculative *spec;
AV *input_av, *accepted_av;
int *input_tokens;
int n_input, i;
PPCODE:
if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV)
croak("Invalid Lugh::Speculative object");
hv = (HV*)SvRV(self);
svp = hv_fetch(hv, "_spec_id", 8, 0);
lib/Lugh.xs view on Meta::CPAN
LughSpeculative *spec;
AV *input_av, *output_av, *accepted_av;
int *current_tokens;
int n_current, n_generated;
int i;
PPCODE:
if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV)
croak("Invalid Lugh::Speculative object");
hv = (HV*)SvRV(self);
svp = hv_fetch(hv, "_spec_id", 8, 0);
lib/Lugh.xs view on Meta::CPAN
PREINIT:
HV *hv;
SV **svp;
LughTensor *lt;
int64_t i, n_elements;
PPCODE:
if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV)
croak("Invalid Lugh::Autograd::Tensor object");
hv = (HV*)SvRV(self);
svp = hv_fetch(hv, "_tensor_id", 10, 0);
if (!svp) croak("Invalid tensor object");
lib/Lugh.xs view on Meta::CPAN
PREINIT:
HV *hv;
SV **svp;
LughTensor *lt;
int i, n_dims;
PPCODE:
if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVHV)
croak("Invalid Lugh::Autograd::Tensor object");
hv = (HV*)SvRV(self);
svp = hv_fetch(hv, "_tensor_id", 10, 0);
if (!svp) croak("Invalid tensor object");
lib/Lugh.xs view on Meta::CPAN
STRLEN batch_size = 32;
int shuffle = 0;
STRLEN data_len, i, j;
STRLEN *indices = NULL;
AV *result_av;
PPCODE:
PERL_UNUSED_VAR(class);
/* Parse optional args - items includes class and data_av, so remaining must be even */
if (items > 2) {
if ((items - 2) % 2 != 0) croak("Expected key-value pairs after data");
lib/Lugh.xs view on Meta::CPAN
STRLEN max_length = 512;
STRLEN i, n_texts;
AV *all_input_ids;
AV *all_targets;
AV *result;
PPCODE:
PERL_UNUSED_VAR(class);
if (!tokenizer || !SvOK(tokenizer)) {
croak("tokenizer required");
}
lib/Lugh.xs view on Meta::CPAN
void
zero_grad(class, ...)
SV* class
PREINIT:
STRLEN i;
PPCODE:
PERL_UNUSED_VAR(class);
for (i = 1; i < (STRLEN)items; i++) {
SV *tensor_sv = ST(i);
if (!SvOK(tensor_sv)) continue;
lib/Lugh.xs view on Meta::CPAN
float total_norm = 0.0f;
float clip_coef;
STRLEN i;
AV* tensors_av = NULL;
AV* all_grads = NULL;
PPCODE:
PERL_UNUSED_VAR(class);
if (max_norm <= 0) {
croak("max_norm must be positive");
}
lib/Lugh.xs view on Meta::CPAN
clip_grad_value(class, max_value, ...)
SV* class
float max_value
PREINIT:
STRLEN i;
PPCODE:
PERL_UNUSED_VAR(class);
if (max_value <= 0) {
croak("max_value must be positive");
}
view all matches for this distribution
view release on metacpan or search on metacpan
MCDB_File.xs view on Meta::CPAN
PREINIT:
SV *k, *v;
char *kp, *vp;
STRLEN klen, vlen;
int x;
PPCODE:
for (x = 1; x+1 < items; x += 2) {
k = ST(x); v = ST(x+1);
if (SvOK(k) && SvOK(v)) {
kp = SvPV(k, klen); vp = SvPV(v, vlen);
if (mcdb_make_add(mk, kp, klen, vp, vlen) != 0)
view all matches for this distribution
view release on metacpan or search on metacpan
SV *source
PREINIT:
STRLEN srcl;
unsigned long len;
unsigned char *s;
PPCODE:
s = (unsigned char*)SvPV(source, srcl);
if(s = _rfc822_qprint(s, (unsigned long)srcl, &len)) {
XPUSHs(sv_2mortal(newSVpv((char*)s, (STRLEN)len)));
Safefree(s);
}
SV *source
PREINIT:
STRLEN srcl;
unsigned long len;
unsigned char *s;
PPCODE:
s = (unsigned char*)SvPV(source, srcl);
if(s = _rfc822_base64(s, (unsigned long)srcl, &len)) {
XPUSHs(sv_2mortal(newSVpv((char*)s, (STRLEN)len)));
Safefree(s);
}
PREINIT:
STRLEN srcl;
unsigned char *s;
char *base = NULL;
char *mt;
PPCODE:
if(items == 2) base = SvPV(ST(1), PL_na);
s = (unsigned char*)SvPV(source, srcl);
mt = set_mime_type(s, (unsigned long)srcl, base);
XPUSHs(sv_2mortal(newSVpv(mt, (STRLEN)strlen(mt))));
bool action = TRUE;
char mimetype[BUFFLEN] = "";
AV *av_ret = newAV();
char tmp[TMPBUFFLEN];
unsigned long tmplen = 0;
PPCODE:
if((avlen = av_len(av_fhs)) != -1) {
fpin = IoIFP(sv_2io(*av_fetch(av_fhs, 0, 0)));
if(avlen == 1)
fptmp = IoIFP(sv_2io(*av_fetch(av_fhs, 1, 0)));
} else
char tmp[TMPBUFFLEN];
unsigned long tmplen = 0;
answers findmbox = NO;
answers endbase64 = NO;
char *mimetype;
PPCODE:
if((avlen = av_len(av_fhs)) != -1) {
fpin = IoIFP(sv_2io(*av_fetch(av_fhs, 0, 0)));
if(avlen == 1)
fptmp = IoIFP(sv_2io(*av_fetch(av_fhs, 1, 0)));
} else
view all matches for this distribution
view release on metacpan or search on metacpan
Fast/Hash.xs view on Meta::CPAN
PREINIT:
MIME__Fast__Message msg;
GList *gret = NULL, *item;
AV * retav;
I32 gimme = GIMME_V;
PPCODE:
msg = obj->objptr;
/* THE HACK - FETCH method would get value indirectly from NEXTKEY */
if (obj->keyindex != -1 && obj->fetchvalue != NULL) {
XPUSHs(sv_2mortal(newSVpv(obj->fetchvalue,0)));
Fast/Hash.xs view on Meta::CPAN
struct raw_header *h;
INIT:
if (ix == 1) {
obj->keyindex = -1;
}
PPCODE:
msg = obj->objptr;
++obj->keyindex;
if (gmime_debug)
warn("hash_NEXTKEY");
i = obj->keyindex;
view all matches for this distribution
view release on metacpan or search on metacpan
PROTOTYPES: DISABLED
void
index_lookup(I, ...)
MMapDB I;
PPCODE:
if( expect_true(items>1) ) {
UV pos=SvUV(ST(1));
STRLEN keylen;
char *datap, *intfmt, *keyp;
SV **svp=av_fetch(I, MMDB_DATA, 0);
END:
void
index_lookup_position(I, ...)
MMapDB I;
PPCODE:
if( expect_true(items>1) ) {
UV pos=SvUV(ST(1));
STRLEN keylen;
char *datap, *intfmt, *keyp;
SV **svp=av_fetch(I, MMDB_DATA, 0);
void
id_index_lookup(I, id)
MMapDB I;
UV id;
PPCODE:
{
char *datap, *intfmt;
UV pos;
SV **svp=av_fetch(I, MMDB_DATA, 0);
}
void
data_record(I, ...)
MMapDB I;
PPCODE:
if( items>1 ) {
int i;
UV pos;
char *datap, *intfmt;
UV dataend, dbfmt;
}
void
index_lookup_records(I, ...)
MMapDB I;
PPCODE:
if( expect_true(items>1) ) {
UV pos=SvUV(ST(1));
STRLEN keylen;
char *datap, *intfmt, *keyp;
SV **svp=av_fetch(I, MMDB_DATA, 0);
END:
void
data_value(I, ...)
MMapDB I;
PPCODE:
if( items>1 ) {
int i;
UV pos;
char *datap, *intfmt;
UV dataend, dbfmt;
}
void
index_lookup_values(I, ...)
MMapDB I;
PPCODE:
if( expect_true(items>1) ) {
UV pos=SvUV(ST(1));
STRLEN keylen;
char *datap, *intfmt, *keyp;
SV **svp=av_fetch(I, MMDB_DATA, 0);
END:
void
data_sort(I, ...)
MMapDB I;
PPCODE:
if( items>1 ) {
int i;
UV pos;
char *datap, *intfmt;
UV dataend, dbfmt;
}
void
index_lookup_sorts(I, ...)
MMapDB I;
PPCODE:
if( expect_true(items>1) ) {
UV pos=SvUV(ST(1));
STRLEN keylen;
char *datap, *intfmt, *keyp;
SV **svp=av_fetch(I, MMDB_DATA, 0);
view all matches for this distribution
view release on metacpan or search on metacpan
MODULE = MP3::Cut::Gapless PACKAGE = MP3::Cut::Gapless
void
__init(HV *self)
PPCODE:
{
SV *pv = NEWSV(0, sizeof(mp3cut));
mp3cut *mp3c = (mp3cut *)SvPVX(pv);
SvPOK_only(pv);
view all matches for this distribution
view release on metacpan or search on metacpan
get_header(filename)
char * filename;
PROTOTYPE: $
INIT:
mpeg_header * header;
PPCODE:
header = mp_get_mpeg_header_from_file(filename);
if (header == NULL)
XSRETURN_UNDEF;
EXTEND(SP, 1);
int ver;
PROTOTYPE: $$
INIT:
id3_tag_list * taglist;
id3_tag * tag;
PPCODE:
taglist = mp_get_tag_list_from_file(filename);
if (taglist == NULL)
XSRETURN_UNDEF;
tag = get_tag(taglist, ver);
char * filename;
PROTOTYPE: $
INIT:
id3_tag_list * taglist;
id3_tag * tag;
PPCODE:
taglist = mp_get_tag_list_from_file(filename);
if (taglist == NULL)
XSRETURN_UNDEF;
tag = get_tag(taglist, 2);
if (tag == NULL)
SV * tag;
int enc;
PREINIT:
int ret;
PROTOTYPE: $$$;$
PPCODE:
if ( (!SvROK(tag)) ||
(SvTYPE(SvRV(tag)) != SVt_PVHV) )
croak("MP3::Mplib::set_tag expects a hash-ref as third arg");
if (ver == 1)
void
delete_tags(filename, ver)
char * filename;
int ver;
PROTOTYPE: $$
PPCODE:
EXTEND(SP, 1);
switch(mp_del_tags_by_ver_from_file(filename, ver)) {
case 0:
PUSHs(sv_2mortal(newSVuv(1)));
break;
void
_clean_up(filename)
char * filename;
PROTOTYPE: $
PPCODE:
id3_tag_list *taglist;
id3_tag * tag;
int i, j;
taglist = mp_get_tag_list_from_file(filename);
char * filename;
INIT:
id3_tag_list * taglist, *iter;
int c = 0;
PROTOTYPE: $
PPCODE:
taglist = mp_get_tag_list_from_file(filename);
if (taglist == NULL) {
printf("No tags found\n");
XSRETURN_UNDEF;
}
view all matches for this distribution
view release on metacpan or search on metacpan
Player/PktConcert/PktConcert.xs view on Meta::CPAN
usage( self )
ipc_t *self
PREINIT:
u_int32_t *bfree;
u_int32_t *btotal;
PPCODE:
bfree = (u_int32_t *)safemalloc( sizeof( u_int32_t ));
btotal = (u_int32_t *)safemalloc( sizeof( u_int32_t ));
IPC_Get_Usage( self, bfree, btotal );
EXTEND( SP, 2 );
PUSHs( sv_2mortal( newSViv( *bfree )));
view all matches for this distribution
view release on metacpan or search on metacpan
OUTPUT:
RETVAL
void
MP4FILE::DESTROY()
PPCODE:
if (MP4_IS_VALID_FILE_HANDLE(THIS->fh))
{
MP4Close(THIS->fh);
}
Safefree(THIS);
bool
MP4FILE::Close()
PPCODE:
if (MP4_IS_VALID_FILE_HANDLE(THIS->fh))
{
MP4Close(THIS->fh);
THIS->fh = MP4_INVALID_FILE_HANDLE;
}
void
MP4FILE::SetVerbosity(verbosity)
u_int32_t verbosity;
PPCODE:
MP4SetVerbosity(THIS->fh, verbosity);
MP4TrackId
MP4FILE::FindTrackId(index, type = NULL, subType = 0)
u_int16_t index;
MP4GetMetadataGenre,
MP4GetMetadataGrouping
};
char *value;
PPCODE:
if (fp[ix](THIS->fh, &value) && value != NULL)
{
ST(0) = newSVpv(value, 0);
SvUTF8_on(ST(0));
free(value);
PREINIT:
u_int8_t *data;
u_int32_t length;
PPCODE:
if (MP4GetMetadataCoverArt(THIS->fh, &data, &length _v19ARG(index)))
{
if (data != NULL)
{
ST(0) = newSVpvn((const char *) data, length);
MP4GetMetadataTrack,
MP4GetMetadataDisk
};
u_int16_t curr, total;
PPCODE:
if (fp[ix](THIS->fh, &curr, &total))
{
EXTEND(SP, 2);
ST(0) = newSVuv(curr);
ST(1) = newSVuv(total);
void
MP4FILE::GetMetadataTempo()
PREINIT:
u_int16_t tempo;
PPCODE:
if (MP4GetMetadataTempo(THIS->fh, &tempo))
{
XSRETURN_UV(tempo);
}
void
MP4FILE::GetMetadataCompilation()
PREINIT:
u_int8_t cpl;
PPCODE:
if (MP4GetMetadataCompilation(THIS->fh, &cpl))
{
if (cpl)
XSRETURN_YES;
else
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
MQClient/MQSeries.xs.in/21core view on Meta::CPAN
void
constant_hex(name)
char * name
PPCODE:
{
SV *Return;
MQULONG Result;
Result = constant_hex(name);
MQClient/MQSeries.xs.in/21core view on Meta::CPAN
void
constant_numeric(name)
char * name
PPCODE:
{
SV *Return;
MQLONG Result;
Result = constant_numeric(name);
MQClient/MQSeries.xs.in/21core view on Meta::CPAN
void
constant_string(name)
char * name
PPCODE:
{
char tmp[256];
int status;
SV *Return;
MQClient/MQSeries.xs.in/21core view on Meta::CPAN
void
constant_char(name)
char * name
PPCODE:
{
char tmp[1];
int status;
SV *Return;
view all matches for this distribution
view release on metacpan or search on metacpan
AppleScript.xs view on Meta::CPAN
MODULE = Mac::AppleScript PACKAGE = Mac::AppleScript
SV *
RunAppleScript(SV *text)
PPCODE:
{
ComponentInstance theComponent;
AEDesc scriptTextDesc;
AEDesc resultData;
OSStatus err = noErr;
view all matches for this distribution
view release on metacpan or search on metacpan
AppleEvents/AppleEvents.xs view on Meta::CPAN
void
AEGetNthDesc(theAEDescList, index, desiredType=typeWildCard)
AEDesc &theAEDescList
long index
OSType desiredType
PPCODE:
{
OSType kw;
AEDesc desc;
AEFail(AEGetNthDesc(&theAEDescList, index, desiredType, &kw, &desc));
AppleEvents/AppleEvents.xs view on Meta::CPAN
void
AEGetEventHandler(theAEEventClass, theAEEventID, isSysHandler=0)
OSType theAEEventClass
OSType theAEEventID
Boolean isSysHandler
PPCODE:
{
SV * handler = sv_newmortal();
SV * refCon = sv_newmortal();
AEFail(
AppleEvents/AppleEvents.xs view on Meta::CPAN
=cut
void
AEGetNthSubDesc(subdesc,index)
AESubDesc &subdesc
long index
PPCODE:
{
#ifndef MACOS_TRADITIONAL
croak("Usage: Mac::AppleEvents::AEGetNthSubDesc unsupported in Carbon");
#else
OSType kw;
view all matches for this distribution
view release on metacpan or search on metacpan
FSEvents.xs view on Meta::CPAN
PROTOTYPES: DISABLE
void
_new (char *klass, HV *args)
PPCODE:
{
SV *pv = NEWSV(0, sizeof(FSEvents));
SV **svp;
AV *ppaths;
SSize_t numPaths;
FSEvents.xs view on Meta::CPAN
pthread_mutex_destroy(&self->mutex);
}
void
watch(FSEvents *self)
PPCODE:
{
int err;
FILE *fh;
struct watch_data wd;
GV *glob;
FSEvents.xs view on Meta::CPAN
stop_impl(self);
}
void
read_events(FSEvents *self)
PPCODE:
{
HV *event;
char buf;
struct event *e;
view all matches for this distribution
view release on metacpan or search on metacpan
NSGetExecutablePath.xs view on Meta::CPAN
PREINIT:
char buf[1];
uint32_t size = sizeof buf;
SV *dst;
char *buffer;
PPCODE:
_NSGetExecutablePath(buf, &size);
if (size >= MAXPATHLEN * MAXPATHLEN)
croak(nsgep_too_long);
dst = sv_newmortal();
sv_upgrade(dst, SVt_PV);
view all matches for this distribution