view release on metacpan or search on metacpan
MODULE = DBD::Cego PACKAGE = DBD::Cego::dr
void
dbixs_revision(...)
PPCODE:
ST(0) = sv_2mortal(newSViv(DBIXS_REVISION));
#ifdef dbd_discon_all
void
data_sources(drh, attr = Nullsv)
SV *drh
SV *attr
PPCODE:
{
D_imp_drh(drh);
AV *av = dbd_dr_data_sources(drh, imp_drh, attr);
if (av) {
int i;
PREINIT:
int is_selectrow_array = (ix == 1);
imp_sth_t *imp_sth;
SV *sth;
AV *row_av;
PPCODE:
if (SvROK(ST(1))) {
MAGIC *mg;
sth = ST(1);
/* switch to inner handle if not already */
if ( (mg = mg_find(SvRV(sth),'P')) )
void
DESTROY(dbh)
SV * dbh
PPCODE:
/* keep in sync with default DESTROY in DBI.xs */
D_imp_dbh(dbh);
ST(0) = &PL_sv_yes;
if (!DBIc_IMPSET(imp_dbh)) { /* was never fully set up */
STRLEN lna;
void
data_sources(dbh, attr = Nullsv)
SV *dbh
SV *attr
PPCODE:
{
D_imp_dbh(dbh);
AV *av = dbd_db_data_sources(dbh, imp_dbh, attr);
if (av) {
int i;
void
fetchrow_array(sth)
SV * sth
ALIAS:
fetchrow = 1
PPCODE:
D_imp_sth(sth);
AV *av;
av = dbd_st_fetch(sth, imp_sth);
if (av) {
int i;
void
DESTROY(sth)
SV * sth
PPCODE:
/* keep in sync with default DESTROY in DBI.xs */
D_imp_sth(sth);
ST(0) = &PL_sv_yes;
if (!DBIc_IMPSET(imp_sth)) { /* was never fully set up */
STRLEN lna;
view all matches for this distribution
view release on metacpan or search on metacpan
SV * drh
char * host
char * port
char * user
char * password
PPCODE:
{
drizzle_return_t ret;
drizzle_st drizzle;
drizzle_con_st con;
char* dbname
char* host
char* port
char* user
char* password
PPCODE:
{
drizzle_return_t retval;
drizzle_st *drizzle;
drizzle_con_st *con = NULL;
drizzle_result_st res;
void
type_info_all(dbh)
SV* dbh
PPCODE:
{
/* static AV* types = NULL; */
/* if (!types) { */
/* D_imp_dbh(dbh); */
/* if (!(types = dbd_db_type_info_all(dbh, imp_dbh))) { */
void
_ListDBs(dbh)
SV* dbh
PPCODE:
{
drizzle_result_st res;
drizzle_row_t cur;
drizzle_return_t ret;
quote(dbh, str, type=NULL)
SV* dbh
SV* str
SV* type
PROTOTYPE: $$;$
PPCODE:
{
SV* quoted = dbd_db_quote(dbh, str, type);
ST(0) = quoted ? sv_2mortal(quoted) : str;
XSRETURN(1);
}
view all matches for this distribution
view release on metacpan or search on metacpan
SV * drh
char * host
char * port
char * user
char * password
PPCODE:
{
MYSQL mysql;
mysql.net.fd = -1;
MYSQL* sock = mysql_dr_connect(drh, &mysql, NULL, host, port, user, password,
NULL, NULL);
void
type_info_all(dbh)
SV* dbh
PPCODE:
{
/* static AV* types = NULL; */
/* if (!types) { */
/* D_imp_dbh(dbh); */
/* if (!(types = dbd_db_type_info_all(dbh, imp_dbh))) { */
void
_ListDBs(dbh)
SV* dbh
PPCODE:
MYSQL_RES* res;
MYSQL_ROW cur;
D_imp_dbh(dbh);
quote(dbh, str, type=NULL)
SV* dbh
SV* str
SV* type
PROTOTYPE: $$;$
PPCODE:
{
SV* quoted;
D_imp_dbh(dbh);
ASYNC_CHECK_XS(dbh);
XSRETURN(1);
}
void mysql_fd(dbh)
SV* dbh
PPCODE:
{
D_imp_dbh(dbh);
if(imp_dbh->pmysql->net.fd != -1) {
XSRETURN_IV(imp_dbh->pmysql->net.fd);
} else {
}
}
void mysql_async_result(dbh)
SV* dbh
PPCODE:
{
int retval;
retval = mysql_db_async_result(dbh, NULL);
}
}
void mysql_async_ready(dbh)
SV* dbh
PPCODE:
{
int retval;
retval = mysql_db_async_ready(dbh);
if(retval > 0) {
}
}
void _async_check(dbh)
SV* dbh
PPCODE:
{
D_imp_dbh(dbh);
ASYNC_CHECK_XS(dbh);
XSRETURN_YES;
}
OUTPUT:
RETVAL
void mysql_async_ready(sth)
SV* sth
PPCODE:
{
int retval;
retval = mysql_db_async_ready(sth);
if(retval > 0) {
}
}
void _async_check(sth)
SV* sth
PPCODE:
{
D_imp_sth(sth);
D_imp_dbh_from_sth;
ASYNC_CHECK_XS(sth);
XSRETURN_YES;
view all matches for this distribution
view release on metacpan or search on metacpan
# Utility function to list available databases
void
data_sources(drh)
SV *drh
PPCODE:
# Note that a database name could consist of up to 18 characters in OnLine,
# plus the name of the server (no limit defined, assume 18 again), plus the
# at sign and the NUL at the end.
#define MAXDBS 100
#define MAXDBSSIZE (18+18+2)
view all matches for this distribution
view release on metacpan or search on metacpan
SV * class
SV * parent
SV * attr_ref
SV * imp_datasv
SV * imp_class
PPCODE:
dMY_CXT;
HV *outer;
SV *outer_ref;
HV *class_stash = gv_stashsv(class, GV_ADDWARN);
void
_handles(sv)
SV * sv
PPCODE:
/* return the outer and inner handle for any given handle */
D_imp_xxh(sv);
SV *ih = sv_mortalcopy( dbih_inner(aTHX_ sv, "_handles") );
SV *oh = sv_2mortal(newRV_inc((SV*)DBIc_MY_H(imp_xxh))); /* XXX dangerous */
(void)cv;
OUTPUT:
RETVAL
void
looks_like_number(...)
PPCODE:
int i;
EXTEND(SP, items);
(void)cv;
for(i=0; i < items ; ++i) {
SV *sv = ST(i);
void
fetchrow_array(sth)
SV * sth
ALIAS:
fetchrow = 1
PPCODE:
SV *retsv;
if (CvDEPTH(cv) == 99) {
PERL_UNUSED_VAR(ix);
croak("Deep recursion, probably fetchrow-fetch-fetchrow loop");
}
void
DESTROY(sth)
SV * sth
PPCODE:
/* keep in sync with DESTROY in Driver.xst */
D_imp_sth(sth);
ST(0) = &PL_sv_yes;
/* we don't test IMPSET here because this code applies to pure-perl drivers */
if (DBIc_IADESTROY(imp_sth)) { /* want's ineffective destroy */
SV * err
SV * errstr
SV * state
SV * method
SV * result
PPCODE:
{
D_imp_xxh(h);
SV **sem_svp;
(void)cv;
view all matches for this distribution
view release on metacpan or search on metacpan
SpatialKey.xs view on Meta::CPAN
void
unpack(obj,key)
SV * obj
SV * key
PPCODE:
keydef *kd = (keydef*)SvIV(SvRV(obj));
U32 *val;
U32 mask;
u8 *out;
u8 out_mask;
SpatialKey.xs view on Meta::CPAN
Safefree (val);
void
ranges(obj,...)
SV * obj
PPCODE:
keydef *kd = (keydef*)SvIV(SvRV(obj));
#if 1
croak ("ranges not supported in this version");
#else
U32 *min, *max;
view all matches for this distribution
view release on metacpan or search on metacpan
TextIndex.xs view on Meta::CPAN
}
void
term_docs_hashref(packed)
SV *packed
PPCODE:
{
HV *freqs;
char *string;
STRLEN len;
int length;
TextIndex.xs view on Meta::CPAN
void
term_docs_arrayref(packed)
SV *packed
PPCODE:
{
AV *results;
char *string;
STRLEN len;
int length;
TextIndex.xs view on Meta::CPAN
}
void
term_doc_ids_arrayref(packed)
SV *packed
PPCODE:
{
AV *results;
char *string;
STRLEN len;
int length;
TextIndex.xs view on Meta::CPAN
void
term_docs_array(packed)
SV *packed
PPCODE:
{
char *string;
STRLEN len;
int length;
unsigned int value;
TextIndex.xs view on Meta::CPAN
void
term_docs_and_freqs(packed)
SV *packed
PPCODE:
{
AV *docs;
AV *freqs;
char *string;
STRLEN len;
TextIndex.xs view on Meta::CPAN
void
pack_vint(ints_arrayref)
SV *ints_arrayref
PPCODE:
{
char *packed;
AV *term_freqs;
I32 length = 0;
unsigned int i, j, value;
TextIndex.xs view on Meta::CPAN
void
pack_vint_delta(ints_arrayref)
SV *ints_arrayref
PPCODE:
{
char *packed;
AV *ints_array;
I32 length = 0;
unsigned int i, j, value, last_value, delta_value;
TextIndex.xs view on Meta::CPAN
}
void
pack_term_docs(term_docs_arrayref)
SV *term_docs_arrayref
PPCODE:
{
char *packed;
I32 length = 0;
unsigned int i, j, last_doc, value;
register unsigned long buff;
TextIndex.xs view on Meta::CPAN
void
pack_term_docs_append_vint(packed, vint)
SV *packed
SV *vint
PPCODE:
{
char *str_a, *str_b, *newpack;
STRLEN len_a, len_b;
I32 length_a = 0;
I32 length_b = 0;
TextIndex.xs view on Meta::CPAN
SV *term_docs_arrayref
SV *term_pos_arrayref
SV *prox_SV
SV *and_vec_min_SV
SV *and_vec_max_SV
PPCODE:
{
I32 *length_td,
*length_tp;
unsigned int term_count,
prox = SvIV(prox_SV),
TextIndex.xs view on Meta::CPAN
SV *W_D_arrayref
SV *avg_W_d_SV
SV *w_qt_SV
SV *k1_SV
SV *b_SV
PPCODE:
{
int acc_size,
length;
unsigned int acc_lim = SvIV(acc_lim_SV),
f_t = SvIV(f_t_SV),
view all matches for this distribution
view release on metacpan or search on metacpan
fallback.xs 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
void
sec_acl_DESTROY(handle)
DCE::ACL::handle handle
PPCODE:
{
error_status_t status;
/* some problems here on DEC & Solaris */
#ifdef HPUX
sec_acl_release_handle(handle, &status);
sec_acl_get_manager_types(handle, sec_acl_type=sec_acl_type_object, size_avail=1)
DCE::ACL::handle handle
sec_acl_type_t sec_acl_type
unsigned32 size_avail
PPCODE:
{
unsigned32 size_used, num_types;
uuid_t *manager_types = malloc(sizeof(uuid_t) * size_avail);
error_status_t status;
SV *uuid_sv;
DCE::ACL::handle handle
SV *mgr_sv
sec_acl_type_t sec_acl_type
DCE::ACL::list l
PPCODE:
{
error_status_t status;
uuid_t manager_type;
SNAG_FIRST_MANAGER(handle, manager_type, sec_acl_type, mgr_sv);
sec_acl_get_printstring(handle, mgr_sv=&PL_sv_undef, printstring_len=32)
DCE::ACL::handle handle
SV *mgr_sv
unsigned32 printstring_len
PPCODE:
{
uuid_t manager_type, manager_type_chain;
sec_acl_printstring_t manager_info;
boolean32 tokenize;
unsigned32 total_num_printstrings, num_printstrings;
sec_acl_test_access(handle, mgr_sv, permset)
DCE::ACL::handle handle
SV *mgr_sv
sec_acl_permset_t permset
PPCODE:
{
uuid_t manager_type;
error_status_t status;
boolean32 res;
DCE::ACL::handle handle
SV *uuid
SV *pac
sec_acl_permset_t desired_permset
PPCODE:
{
uuid_t mgr_type;
sec_id_pac_t subject;
error_status_t status;
boolean32 res;
void
sec_acl_get_access(handle, mgr_sv)
DCE::ACL::handle handle
SV *mgr_sv
PPCODE:
{
sec_acl_permset_t permset;
uuid_t manager_type;
error_status_t status;
sec_acl_lookup(handle, mgr_sv, sec_acl_type=sec_acl_type_object)
DCE::ACL::handle handle
SV *mgr_sv
sec_acl_type_t sec_acl_type
PPCODE:
{
sec_acl_list_t *l =
(sec_acl_list_t *)safemalloc(sizeof(sec_acl_list_t));
uuid_t manager_type;
error_status_t status, rstatus;
DCE::ACL
acls(l, ...)
DCE::ACL::list l
PPCODE:
{
int i;
if(items > 1) {
i = (int)SvIV(ST(1));
BLESS_ACL(l->sec_acls[i]);
void
dce_acl_obj_init(self, mgr_sv)
SV *self
SV *mgr_sv
PPCODE:
{
uuid_t manager_type;
sec_acl_t *acl = (sec_acl_t *)safemalloc(sizeof(sec_acl_t));
error_status_t status;
void
dce_acl_obj_add_any_other_entry(acl, permset)
DCE::ACL acl
sec_acl_permset_t permset
PPCODE:
{
error_status_t status;
dce_acl_obj_add_any_other_entry(acl, permset, &status);
DCESTATUS;
}
sec_acl_bind(package, entry_name, bind_to_entry=FALSE)
char *package
unsigned char *entry_name
boolean32 bind_to_entry
PPCODE:
{
sec_acl_handle_t handle;
error_status_t status;
SV *sv;
package = "DCE::ACL::handle";
sec_acl_bind_to_addr(package, site_addr, component_name)
char *package
unsigned char *site_addr
unsigned char *component_name
PPCODE:
{
sec_acl_handle_t handle;
error_status_t status;
SV *sv;
package = "DCE::ACL::handle";
void
entries(acl, ...)
DCE::ACL acl
PPCODE:
{
int i;
if(items > 1) {
i = (int)SvIV(ST(1));
BLESS_ACL_ENTRY(&acl->sec_acl_entries[i]);
void
add(acl, e)
DCE::ACL acl
DCE::ACL::entry e
PPCODE:
{
int i;
sec_acl_entry_t *new_sec_acl_entries;
boolean32 entry_found = FALSE;
error_status_t status;
void
remove(acl, e)
DCE::ACL acl
DCE::ACL::entry e
PPCODE:
{
int i, j;
boolean32 entry_found = FALSE;
error_status_t status;
view all matches for this distribution
view release on metacpan or search on metacpan
DFS-full.xs view on Meta::CPAN
RETVAL
void
fid(path)
char *path
PPCODE:
{
struct afs_ioctl ioctl_buf;
DCE__DFS__fid fid;
error_status_t status = 0;
SV *sv = &PL_sv_undef;
DFS-full.xs view on Meta::CPAN
}
void
flserver(cell_fs = "/.:/fs")
char *cell_fs
PPCODE:
{
SV *sv;
DCE__DFS__flserver flserver;
error_status_t status;
DFS-full.xs view on Meta::CPAN
free((void *)fid);
void
id(fid)
DCE::DFS::fid fid
PPCODE:
{
char buf[32];
sprintf(buf, "%d,,%d", AFS_hgethi(fid->Volume), AFS_hgetlo(fid->Volume));
XPUSHs(sv_2mortal(newSVpv(buf, strlen(buf))));
DFS-full.xs view on Meta::CPAN
}
void
ftserver(flserver)
DCE::DFS::flserver flserver
PPCODE:
{
DCE__DFS__ftserver ftserver;
error_status_t status = 0;
int index;
SV *sv = &PL_sv_undef;
DFS-full.xs view on Meta::CPAN
void
ftserver_by_name(flserver, name)
DCE::DFS::flserver flserver
char *name
PPCODE:
{
DCE__DFS__ftserver ftserver;
error_status_t status;
u_long addr = 0;
struct hostent *host;
DFS-full.xs view on Meta::CPAN
}
void
fileset(flserver)
DCE::DFS::flserver flserver
PPCODE:
{
DCE__DFS__fileset fileset;
error_status_t status = 0;
unsigned32 dummy, dummy2;
int index;
DFS-full.xs view on Meta::CPAN
void
fileset_by_name(flserver, name)
DCE::DFS::flserver flserver
char *name
PPCODE:
{
error_status_t status;
DCE__DFS__fileset fileset;
SV *sv = &PL_sv_undef;
int index;
DFS-full.xs view on Meta::CPAN
void
fileset_by_id(flserver, fid)
DCE::DFS::flserver flserver
DCE::DFS::fid fid
PPCODE:
{
error_status_t status;
DCE__DFS__fileset fileset;
SV *sv = &PL_sv_undef;
int index;
DFS-full.xs view on Meta::CPAN
void
aggregate(ftserver)
DCE::DFS::ftserver ftserver
PPCODE:
{
DCE__DFS__aggregate aggr;
error_status_t status = 0;
SV *sv = &PL_sv_undef;
DFS-full.xs view on Meta::CPAN
}
void
ftserver(aggr)
DCE::DFS::aggregate aggr
PPCODE:
{
DCE__DFS__ftserver ftserver;
error_status_t status = 0;
SV *sv = &PL_sv_undef;
DFS-full.xs view on Meta::CPAN
void
ftserver(fileset, ftserver_index = -1)
DCE::DFS::fileset fileset
int ftserver_index
PPCODE:
{
DCE__DFS__ftserver ftserver;
error_status_t status = 0;
SV *sv = &PL_sv_undef;
int index = ((ftserver_index == -1) ? fileset->ftserver_rw_index : ftserver_index);
DFS-full.xs view on Meta::CPAN
void
aggregate(fileset, ftserver_index = -1)
DCE::DFS::fileset fileset
int ftserver_index
PPCODE:
{
DCE__DFS__aggregate aggr;
error_status_t status = 0;
int index = ((ftserver_index == -1) ? fileset->ftserver_rw_index : ftserver_index);
SV *sv = &PL_sv_undef;
DFS-full.xs view on Meta::CPAN
void
usage(fileset, ftserver_index = -1, fileset_type = 0)
DCE::DFS::fileset fileset
int ftserver_index
int fileset_type
PPCODE:
{
SV *sv;
error_status_t status;
int index = ((ftserver_index == -1) ? fileset->ftserver_rw_index : ftserver_index);
ftserver_status *ft_status = NULL;
DFS-full.xs view on Meta::CPAN
}
void
quota(fileset)
DCE::DFS::fileset fileset
PPCODE:
{
SV *sv;
error_status_t status;
unsigned32 quota, used;
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
lib/DSP/LinPred_XS.xs view on Meta::CPAN
PROTOTYPES: DISABLE
void
get_stat(...)
PPCODE:
{
if(items != 1){
croak("Invalid argument");
}
SV* input = ST(0);
view all matches for this distribution
view release on metacpan or search on metacpan
_new(class, device)
char * class
char * device
PREINIT:
dvd_reader_t * dvd;
PPCODE:
if ((dvd = DVDOpen(device)) != NULL)
XPUSHs(sv_2mortal(sv_setref_pv(newSVpv("", 0), class, (void *)dvd)));
else
XSRETURN_UNDEF;
char *
volid(dvd)
dvd_reader_t * dvd
PREINIT:
char * volid = malloc(sizeof(char) * 33);
PPCODE:
if (DVDUDFVolumeInfo(dvd, volid, sizeof(volid), NULL, 0) >= 0 ||
DVDISOVolumeInfo(dvd, volid, sizeof(volid), NULL, 0) >= 0)
XPUSHs(sv_2mortal(newSVpv(volid, 0)));
free(volid);
PREINIT:
dvd_read_domain_t domain = -1;
dvd_file_t * dvd_file;
char * ttype[] = { "IFO", "BUP", "MENU", "VOB", NULL };
int i;
PPCODE:
for (i=0; ttype[i] != NULL; i++)
if (!strcmp(type, ttype[i]))
domain = i;
if (domain < 0)
int offset
ssize_t size
PREINIT:
ssize_t res;
unsigned char * data;
PPCODE:
data = malloc(DVD_VIDEO_LB_LEN * size);
if ((res = DVDReadBlocks(dvd_file, offset, size, data)) >= 0) {
if (GIMME_V == G_ARRAY) /* in array context,
* return the nb of block read */
XPUSHs(sv_2mortal(newSViv(res)));
char * class
dvd_reader_t * dvd
int titleno
PREINIT:
ifo_handle_t * ifo;
PPCODE:
if ((ifo = ifoOpen(dvd, titleno)))
XPUSHs(sv_2mortal(sv_setref_pv(newSVpv("", 0), class, (void *)ifo)));
else
XSRETURN_UNDEF;
MODULE = DVD::Read PACKAGE = DVD::Read::Dvd::Ifo::Vmg
void
vmg_identifier(ifo)
ifo_handle_t * ifo
PPCODE:
if (ifo->vmgi_mat) {
XPUSHs(sv_2mortal(newSVpv(ifo->vmgi_mat->vmg_identifier, 12)));
} else
croak(CROAK_NOT_VGM);
void
titles_count(ifo)
ifo_handle_t * ifo
PPCODE:
if (ifo->tt_srpt)
XPUSHs(sv_2mortal(newSViv(ifo->tt_srpt->nr_of_srpts)));
else
croak(CROAK_NOT_VGM);
void
title_chapters_count(ifo, titleno)
ifo_handle_t * ifo
int titleno
PPCODE:
if (ifo->tt_srpt) {
if(titleno > 0 && titleno <= ifo->tt_srpt->nr_of_srpts)
XPUSHs(sv_2mortal(newSViv(ifo->tt_srpt->title[titleno -1].nr_of_ptts)));
} else
croak(CROAK_NOT_VGM);
void
title_angles_count(ifo, titleno)
ifo_handle_t * ifo
int titleno
PPCODE:
if (ifo->tt_srpt) {
if (titleno > 0 && titleno <= ifo->tt_srpt->nr_of_srpts)
XPUSHs(sv_2mortal(newSViv(ifo->tt_srpt->title[titleno -1].nr_of_angles)));
} else
croak(CROAK_NOT_VGM);
void
title_nr(ifo, titleno)
ifo_handle_t * ifo
int titleno
PPCODE:
if (ifo->tt_srpt) {
if (titleno > 0 && titleno <= ifo->tt_srpt->nr_of_srpts)
XPUSHs(sv_2mortal(newSViv(ifo->tt_srpt->title[titleno -1].title_set_nr)));
} else
croak(CROAK_NOT_VGM);
void
title_ttn(ifo, titleno)
ifo_handle_t * ifo
int titleno
PPCODE:
if (ifo->tt_srpt) {
if (titleno > 0 && titleno <= ifo->tt_srpt->nr_of_srpts)
XPUSHs(sv_2mortal(newSViv(ifo->tt_srpt->title[titleno -1].vts_ttn)));
} else
croak(CROAK_NOT_VGM);
MODULE = DVD::Read PACKAGE = DVD::Read::Dvd::Ifo::Vts
void
vts_ttn_count(ifo)
ifo_handle_t * ifo
PPCODE:
if (ifo->vts_ptt_srpt)
XPUSHs(sv_2mortal(newSViv(ifo->vts_ptt_srpt->nr_of_srpts)));
else
croak(CROAK_NOT_VTS);
void
vts_identifier(ifo)
ifo_handle_t * ifo
PPCODE:
if (ifo->vtsi_mat)
XPUSHs(sv_2mortal(newSVpv(ifo->vtsi_mat->vts_identifier, 12)));
else
croak(CROAK_NOT_VTS);
void
vts_video_mpeg_version(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
attr = &ifo->vtsi_mat->vts_video_attr;
XPUSHs(sv_2mortal(newSViv(attr->mpeg_version)));
}
void
vts_video_format(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
attr = &ifo->vtsi_mat->vts_video_attr;
XPUSHs(sv_2mortal(newSViv(attr->video_format)));
}
void
vts_video_aspect_ratio(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
attr = &ifo->vtsi_mat->vts_video_attr;
XPUSHs(sv_2mortal(newSViv(attr->display_aspect_ratio)));
}
void
vts_video_permitted_df(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
attr = &ifo->vtsi_mat->vts_video_attr;
XPUSHs(sv_2mortal(newSViv(attr->permitted_df)));
}
void
vts_video_line21_cc_1(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
attr = &ifo->vtsi_mat->vts_video_attr;
XPUSHs(sv_2mortal(newSViv(attr->line21_cc_1)));
}
void
vts_video_line21_cc_2(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
attr = &ifo->vtsi_mat->vts_video_attr;
XPUSHs(sv_2mortal(newSViv(attr->line21_cc_2)));
}
void
vts_video_letterboxed(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
attr = &ifo->vtsi_mat->vts_video_attr;
XPUSHs(sv_2mortal(newSViv(attr->letterboxed)));
}
void
vts_video_film_mode(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
attr = &ifo->vtsi_mat->vts_video_attr;
XPUSHs(sv_2mortal(newSViv(attr->film_mode)));
}
void
vts_video_size(ifo)
ifo_handle_t * ifo
PREINIT:
video_attr_t *attr;
PPCODE:
if (ifo->vtsi_mat) {
int height = 480;
attr = &ifo->vtsi_mat->vts_video_attr;
if(attr->video_format != 0)
height = 576;
ifo_handle_t * ifo
PREINIT:
pgc_t *pgc = NULL;
int i;
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else
for (i = 0; i < ifo->vtsi_mat->nr_of_vts_audio_streams; i++) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[i];
vts_audio_language(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
if(a_attr->lang_type == 1) {
vts_audio_format(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
XPUSHs(sv_2mortal(newSViv(a_attr->audio_format)));
vts_audio_id(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
XPUSHs(sv_2mortal(newSViv(audio_id[a_attr->audio_format])));
vts_audio_channel(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
XPUSHs(sv_2mortal(newSViv(a_attr->channels)));
vts_audio_appmode(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
XPUSHs(sv_2mortal(newSViv(a_attr->application_mode)));
vts_audio_quantization(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
XPUSHs(sv_2mortal(newSViv(a_attr->quantization)));
vts_audio_frequency(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
XPUSHs(sv_2mortal(newSViv(a_attr->sample_frequency)));
vts_audio_lang_extension(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
XPUSHs(sv_2mortal(newSViv(a_attr->lang_extension)));
vts_audio_multichannel_extension(ifo, audiono)
ifo_handle_t * ifo
int audiono
PREINIT:
audio_attr_t *a_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (audiono >= 0 && audiono < ifo->vtsi_mat->nr_of_vts_audio_streams) {
a_attr = &ifo->vtsi_mat->vts_audio_attr[audiono];
XPUSHs(sv_2mortal(newSViv(a_attr->multichannel_extension)));
vts_subtitles(ifo)
ifo_handle_t * ifo
PREINIT:
int i;
subp_attr_t *s_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else
for (i = 0; i < ifo->vtsi_mat->nr_of_vts_subp_streams; i++) {
s_attr = &ifo->vtsi_mat->vts_subp_attr[i];
vts_subtitle_lang_extension(ifo, subtitleno)
ifo_handle_t * ifo
int subtitleno
PREINIT:
subp_attr_t *s_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (subtitleno >= 0 && subtitleno < ifo->vtsi_mat->nr_of_vts_subp_streams) {
s_attr = &ifo->vtsi_mat->vts_subp_attr[subtitleno];
XPUSHs(sv_2mortal(newSViv(s_attr->lang_extension)));
vts_subtitle_language(ifo, subtitleno)
ifo_handle_t * ifo
int subtitleno
PREINIT:
subp_attr_t *s_attr;
PPCODE:
if (!ifo->vtsi_mat)
croak(CROAK_NOT_VTS);
else if (subtitleno >= 0 && subtitleno < ifo->vtsi_mat->nr_of_vts_subp_streams) {
s_attr = &ifo->vtsi_mat->vts_subp_attr[subtitleno];
if(s_attr->type == 1) {
vts_chapters_count(ifo, ttn)
ifo_handle_t * ifo
int ttn
PREINIT:
vts_ptt_srpt_t * vts_ptt_srpt;
PPCODE:
vts_ptt_srpt = ifo->vts_ptt_srpt;
if (!vts_ptt_srpt)
croak(CROAK_NOT_VTS);
else if (ttn > 0 && ttn <= vts_ptt_srpt->nr_of_srpts)
XPUSHs(sv_2mortal(newSViv(vts_ptt_srpt->title[ttn - 1].nr_of_ptts)));
int pgc_id;
vts_ptt_srpt_t * vts_ptt_srpt;
dvd_time_t *dt;
long ms, hour, minute, second;
double fps;
PPCODE:
vts_ptt_srpt = vts->vts_ptt_srpt;
if (!vts_ptt_srpt)
croak(CROAK_NOT_VTS);
else if (ttn > 0 && ttn <= vts_ptt_srpt->nr_of_srpts) {
pgc_id = vts_ptt_srpt->title[ttn - 1].ptt[0].pgcn;
int ttn
int chapter
PREINIT:
int pgc_id;
vts_ptt_srpt_t * vts_ptt_srpt;
PPCODE:
vts_ptt_srpt = vts->vts_ptt_srpt;
if (!vts_ptt_srpt)
croak(CROAK_NOT_VTS);
else if (ttn > 0 && ttn <= vts_ptt_srpt->nr_of_srpts &&
chapter > 0 && chapter <= vts_ptt_srpt->title[ttn - 1].nr_of_ptts) {
}
void
vts_pgcs_count(vts)
ifo_handle_t * vts
PPCODE:
if (!vts->vts_ptt_srpt)
croak(CROAK_NOT_VTS);
else
XPUSHs(sv_2mortal(newSViv(vts->vts_pgcit->nr_of_pgci_srp)));
int ttn
int chapter
PREINIT:
int pgn;
vts_ptt_srpt_t * vts_ptt_srpt;
PPCODE:
vts_ptt_srpt = vts->vts_ptt_srpt;
if (!vts_ptt_srpt)
croak(CROAK_NOT_VTS);
else if (ttn > 0 && ttn <= vts_ptt_srpt->nr_of_srpts &&
chapter > 0 && chapter <= vts_ptt_srpt->title[ttn - 1].nr_of_ptts) {
int pgc_id
PREINIT:
ifo_handle_t * vts;
sv_pgc_t * sv_pgc;
vts_ptt_srpt_t * vts_ptt_srpt;
PPCODE:
if (sv_isobject(sv_vts) && (SvTYPE(SvRV(sv_vts)) == SVt_PVMG))
vts = (ifo_handle_t *)SvIV((SV*)SvRV( sv_vts ));
else {
warn( "DVD::Read::Dvd::Ifo::Vts::vts_pgc() -- ifo is not a blessed SV reference" );
XSRETURN_UNDEF;
MODULE = DVD::Read PACKAGE = DVD::Read::Dvd::Ifo::Pgc
void
DESTROY(sv_pgc)
sv_pgc_t * sv_pgc;
PPCODE:
SvREFCNT_dec(sv_pgc->sv_ifo_handle);
free(sv_pgc);
int
id(sv_pgc)
RETVAL
void
cells_count(sv_pgc)
sv_pgc_t * sv_pgc
PPCODE:
XPUSHs(sv_2mortal(newSViv(sv_pgc->pgc->nr_of_cells)));
void
cell_number(sv_pgc, pgn)
sv_pgc_t * sv_pgc
int pgn
PPCODE:
if (pgn <= sv_pgc->pgc->nr_of_programs)
XPUSHs(sv_2mortal(newSViv(sv_pgc->pgc->program_map[pgn - 1])));
void
cell(sv_pgc, cellid)
sv_pgc_t * sv_pgc
int cellid
PREINIT:
sv_cell_playback_t * sv_cell = NULL;
PPCODE:
if (cellid <= sv_pgc->pgc->nr_of_cells) {
sv_cell = malloc(sizeof(* sv_cell));
sv_cell->cellid = cellid;
sv_cell->cell = &sv_pgc->pgc->cell_playback[cellid -1];
sv_cell->sv_ifo_handle = SvREFCNT_inc(sv_pgc->sv_ifo_handle);
}
void
_programs_count(sv_pgc)
sv_pgc_t * sv_pgc
PPCODE:
XPUSHs(sv_2mortal(newSViv(sv_pgc->pgc->nr_of_programs)));
MODULE = DVD::Read PACKAGE = DVD::Read::Dvd::Ifo::Cell
void
DESTROY(sv_cell)
sv_cell_playback_t * sv_cell;
PPCODE:
SvREFCNT_dec(sv_cell->sv_ifo_handle);
free(sv_cell);
int
first_sector(sv_cell)
time(sv_cell)
sv_cell_playback_t * sv_cell
PREINIT:
double ms, fps, hour, minute, second;
dvd_time_t * dt;
PPCODE:
dt = &sv_cell->cell->playback_time;
hour = ((dt->hour & 0xf0) >> 4) * 10 + (dt->hour & 0x0f);
minute = ((dt->minute & 0xf0) >> 4) * 10 + (dt->minute & 0x0f);
second = ((dt->second & 0xf0) >> 4) * 10 + (dt->second & 0x0f);
if (((dt->frame_u & 0xc0) >> 6) == 1)
view all matches for this distribution
view release on metacpan or search on metacpan
void
deref(...)
PREINIT:
I32 i, n = 0;
SV *sv;
PPCODE:
for (i = 0; i < items; i++) {
if (!SvROK(ST(i))) {
STRLEN z;
if (SvOK(ST(i)))
Perl_croak(aTHX_ DA_DEREF_ERR, SvPV(ST(i), z));
view all matches for this distribution
view release on metacpan or search on metacpan
get_fib = 5
get_levenstein = 6
get_evenrodeh = 7
get_goldbach_g1 = 8
get_goldbach_g2 = 9
PPCODE:
switch (ix) {
case 0: GET_CODE(unary); break;
case 1: GET_CODE(unary1); break;
case 2: GET_CODE(gamma); break;
case 3: GET_CODE(delta); break;
get_comma = 4
get_gamma_rice = 5
get_expgolomb = 25
get_gamma_golomb = 6
get_gammagolomb = 26
PPCODE:
if (ix == 25) ix = 5;
if (ix == 26) ix = 6;
if ( (ix == 0 && (m < 2 || m > 16)) ||
(ix == 1 && (m <= 0 || m > BITS_PER_WORD)) ||
(ix == 2 && (m < -32 || m > 32)) ||
void
get_blocktaboo(IN Data::BitStream::XS list, IN const char* taboostr, IN int count = 1)
PREINIT:
int k;
UV taboo;
PPCODE:
k = parse_binary_string(taboostr, &taboo);
if ( (k < 1) || (k > 16) ) {
croak("invalid parameters: block taboo %s", taboostr);
XSRETURN_UNDEF;
}
void
_xget_rice_sub(IN Data::BitStream::XS list, IN SV* coderef, IN int k, IN int count = 1)
PREINIT:
SV* self = ST(0);
SV* cref = 0;
PPCODE:
if ( (k < 0) || (k > BITS_PER_WORD) ) {
croak("invalid parameters: rice %d", k);
XSRETURN_UNDEF;
}
if (!SvROK(coderef)) {
void
_xget_golomb_sub(IN Data::BitStream::XS list, IN SV* coderef, IN UV m, IN int count = 1)
PREINIT:
SV* self = ST(0);
SV* cref = 0;
PPCODE:
if (m < W_ONE) {
croak("invalid parameters: golomb %lu", m);
XSRETURN_UNDEF;
}
if (!SvROK(coderef)) {
int count
PREINIT:
SV* self = ST(0);
SV* cref = 0;
SV* stack_k_ptr = ST(2); /* Remember position of k, it will be modified */
PPCODE:
if ( (k < 0) || (k > BITS_PER_WORD) ) {
croak("invalid parameters: adaptive_rice %d", k);
XSRETURN_UNDEF;
}
if (!SvROK(coderef)) {
void
get_startstop(IN Data::BitStream::XS list, IN SV* p, IN int count = 1)
PREINIT:
char* map;
PPCODE:
map = make_startstop_prefix_map(p);
if (map == 0) {
XSRETURN_UNDEF;
}
/* TODO: we'll skip free in some croak conditions */
view all matches for this distribution
view release on metacpan or search on metacpan
OUTPUT:
RETVAL
void
slice(SV* self_sv, UV from, UV count)
PPCODE:
EXTRACT_BUF("Data::Buffer::Shared::F32", self_sv);
if (count == 0) XSRETURN_EMPTY;
float *tmp;
Newx(tmp, count, float);
SAVEFREEPV(tmp);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Data/Checks.xs view on Meta::CPAN
}
MODULE = Data::Checks PACKAGE = Data::Checks::Debug
void stringify_constraint(SV *sv)
PPCODE:
/* Prevent XSUB from double-mortalising it */
PUSHs(stringify_constraint_sv(extract_constraint(sv)));
XSRETURN(1);
MODULE = Data::Checks PACKAGE = Data::Checks::Constraint
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Data/Dump/Streamer.xs view on Meta::CPAN
PROTOTYPE: $
PREINIT:
STRLEN patlen;
char reflags[6];
int left;
PPCODE:
{
/*
Checks if a reference is a regex or not. If the parameter is
not a ref, or is not the result of a qr// then returns undef.
Otherwise in list context it returns the pattern and the
lib/Data/Dump/Streamer.xs view on Meta::CPAN
PROTOTYPE: \%
PREINIT:
HV* hv;
SV *key;
HE *he;
PPCODE:
if (!SvROK(hash) || SvTYPE(SvRV(hash)) != SVt_PVHV)
croak("First argument to hidden_keys() must be an HASH reference");
hv = (HV*)SvRV(hash);
(void)hv_iterinit(hv);
lib/Data/Dump/Streamer.xs view on Meta::CPAN
PROTOTYPE: \%
PREINIT:
HV* hv;
SV *key;
HE *he;
PPCODE:
if (!SvROK(hash) || SvTYPE(SvRV(hash)) != SVt_PVHV)
croak("First argument to legal_keys() must be an HASH reference");
hv = (HV*)SvRV(hash);
view all matches for this distribution
view release on metacpan or search on metacpan
SV *sv
PREINIT:
char * class;
char * type;
unsigned int id;
PPCODE:
{
EXTEND(SP, 3);
if (SvMAGICAL (sv))
mg_get (sv);
char * key_name;
char * ref_type;
char * key_walk;
bool key_can_be_tag = 1;
bool namespace = 0;
PPCODE:
// warn ("key count is: %d\n", keys_len);
EXTEND(SP, 4);
key_str = SvPVX (key);
view all matches for this distribution
view release on metacpan or search on metacpan
DumpLimited(src, opt = newHV())
SV *src;
HV *opt;
PREINIT:
ddl_encoder_t *enc;
PPCODE:
enc = build_encoder_struct(aTHX_ opt);
ddl_dump_sv(aTHX_ enc, src);
/* FIXME optimization: avoid copy by stealing string buffer if
* it is not too large. */
ST(0) = sv_2mortal(newSVpvn_utf8(enc->buf_start, (STRLEN)(enc->pos - enc->buf_start), 1));
view all matches for this distribution
view release on metacpan or search on metacpan
void
Data_Dumper_Dumpxs(href, ...)
SV *href;
PROTOTYPE: $;$$
PPCODE:
{
HV *hv;
SV *retval, *valstr;
HV *seenhv = NULL;
AV *postav, *todumpav, *namesav;
view all matches for this distribution
view release on metacpan or search on metacpan
DoubleDouble.xs view on Meta::CPAN
DD2HEX (nv, fmt)
SV * nv
char * fmt
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
DD2HEX(aTHX_ nv, fmt);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
DoubleDouble.xs view on Meta::CPAN
void
_NV2binary (nv)
SV * nv
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
_NV2binary(aTHX_ nv);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
DoubleDouble.xs view on Meta::CPAN
_calculate (bin, exponent)
SV * bin
SV * exponent
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
_calculate(aTHX_ bin, exponent);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
DoubleDouble.xs view on Meta::CPAN
void
_dd_bytes (sv)
SV * sv
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
_dd_bytes(aTHX_ 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
neighbors(self, node)
SV *self
UV node
PREINIT:
EXTRACT_GRAPH(self);
PPCODE:
/* Collect edges under lock, then build Perl SVs outside it:
* newAV/newSVuv/newSViv can longjmp on OOM, which would leak the
* process-shared mutex to peers (no automatic cleanup for futex). */
graph_mutex_lock(h->hdr);
REQUIRE_NODE(h, node);
view all matches for this distribution
view release on metacpan or search on metacpan
OUTPUT:
RETVAL
void
keys(SV* self_sv)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
uint32_t ns = h->shard_handles ? h->num_shards : 1;
for (uint32_t si = 0; si < ns; si++) {
ShmHandle *sh = h->shard_handles ? h->shard_handles[si] : h;
ShmHeader *hdr = sh->hdr;
}
}
void
values(SV* self_sv)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
uint32_t ns = h->shard_handles ? h->num_shards : 1;
for (uint32_t si = 0; si < ns; si++) {
ShmHandle *sh = h->shard_handles ? h->shard_handles[si] : h;
ShmHeader *hdr = sh->hdr;
}
void
items(SV* self_sv)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
uint32_t ns = h->shard_handles ? h->num_shards : 1;
for (uint32_t si = 0; si < ns; si++) {
ShmHandle *sh = h->shard_handles ? h->shard_handles[si] : h;
ShmHeader *hdr = sh->hdr;
}
void
each(SV* self_sv)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
int16_t out_key, out_value;
if (shm_i16_each(h, &out_key, &out_value)) {
EXTEND(SP, 2);
mXPUSHi(out_key);
OUTPUT:
RETVAL
void
pop(SV* self_sv)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
int16_t out_key;
int16_t out_val;
if (!shm_i16_pop(h, &out_key, &out_val)) XSRETURN_EMPTY;
EXTEND(SP, 2);
mPUSHi(out_key);
mPUSHi(out_val);
void
shift(SV* self_sv)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
int16_t out_key;
int16_t out_val;
if (!shm_i16_shift(h, &out_key, &out_val)) XSRETURN_EMPTY;
EXTEND(SP, 2);
mPUSHi(out_key);
mPUSHi(out_val);
void
drain(SV* self_sv, UV limit)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
if (limit == 0) XSRETURN_EMPTY;
shm_i16_drain_entry *entries;
Newxz(entries, limit, shm_i16_drain_entry);
OUTPUT:
RETVAL
void
flush_expired_partial(SV* self_sv, UV limit)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
int done = 0;
uint32_t flushed = shm_i16_flush_expired_partial(h, (uint32_t)limit, &done);
EXTEND(SP, 2);
mPUSHu(flushed);
OUTPUT:
RETVAL
void
get_multi(SV* self_sv, ...)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
int nkeys = items - 1;
if (nkeys == 0) XSRETURN_EMPTY;
EXTEND(SP, nkeys);
if (h->shard_handles) {
}
}
void
get_with_ttl(SV* self_sv, int16_t key)
PPCODE:
EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
int16_t out_value;
int64_t out_ttl;
if (!shm_i16_get_with_ttl(h, key, &out_value, &out_ttl)) XSRETURN_EMPTY;
EXTEND(SP, 2);
if (h) shm_i16_flush_deferred(h);
sv_setiv(SvRV(self_sv), 0);
void
next(SV* self_sv)
PPCODE:
EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
int16_t out_key, out_value;
if (shm_i16_cursor_next(c, &out_key, &out_value)) {
EXTEND(SP, 2);
mXPUSHi(out_key);
view all matches for this distribution
view release on metacpan or search on metacpan
OUTPUT:
RETVAL
void
keys(SV* self_sv)
PPCODE:
EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
EXTEND(SP, self->size);
size_t i;
for (i = 0; i < self->capacity; i++) {
mXPUSHi(self->nodes[i].key);
}
void
values(SV* self_sv)
PPCODE:
EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
EXTEND(SP, self->size);
size_t i;
for (i = 0; i < self->capacity; i++) {
mXPUSHi(self->nodes[i].value);
}
void
items(SV* self_sv)
PPCODE:
EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
EXTEND(SP, self->size * 2);
size_t i;
for (i = 0; i < self->capacity; i++) {
}
}
void
each(SV* self_sv)
PPCODE:
EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
while (self->iter_pos < self->capacity) {
size_t i = self->iter_pos++;
if (I16_NODE_LIVE(self->nodes[i]) && !HM_TTL_SKIP_EXPIRED(self, i, now)) {
EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
self->iter_pos = 0;
void
drain(SV* self_sv, UV count)
PPCODE:
EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
UV n = 0;
EXTEND(SP, (count < self->size ? count : self->size) * 2);
while (self->iter_pos < self->capacity && n < count) {
if (self->iter_pos >= self->capacity) self->iter_pos = 0;
HM_MAYBE_COMPACT_XS(self, hashmap_i16_compact);
void
pop(SV* self_sv)
PPCODE:
EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
if (self->lru_prev) {
while (self->lru_tail != HM_LRU_NONE) {
uint32_t idx = self->lru_tail;
XSRETURN_EMPTY;
}
void
shift(SV* self_sv)
PPCODE:
EXTRACT_MAP(HashMapI16, stash_i16, "Data::HashMap::I16", self_sv);
uint32_t now = self->expires_at ? (uint32_t)time(NULL) : 0;
if (self->lru_prev) {
while (self->lru_head != HM_LRU_NONE) {
uint32_t idx = self->lru_head;
view all matches for this distribution
view release on metacpan or search on metacpan
void
pop(self)
SV *self
PREINIT:
EXTRACT_HEAP(self);
PPCODE:
int64_t p, v;
if (heap_pop(h, &p, &v)) {
EXTEND(SP, 2);
PUSHs(sv_2mortal(newSViv((IV)p)));
PUSHs(sv_2mortal(newSViv((IV)v)));
pop_wait(self, ...)
SV *self
PREINIT:
EXTRACT_HEAP(self);
double timeout = -1;
PPCODE:
if (items > 1) timeout = SvNV(ST(1));
int64_t p, v;
if (heap_pop_wait(h, &p, &v, timeout)) {
EXTEND(SP, 2);
PUSHs(sv_2mortal(newSViv((IV)p)));
void
peek(self)
SV *self
PREINIT:
EXTRACT_HEAP(self);
PPCODE:
int64_t p, v;
if (heap_peek(h, &p, &v)) {
EXTEND(SP, 2);
PUSHs(sv_2mortal(newSViv((IV)p)));
PUSHs(sv_2mortal(newSViv((IV)v)));
view all matches for this distribution
view release on metacpan or search on metacpan
LetterTree.xs view on Meta::CPAN
Node * tree
char * word
PREINIT:
SV** data;
int i = 0;
PPCODE:
data = get_data(tree, word);
if (data)
while (data[i])
XPUSHs((SV*) data[i++]);
view all matches for this distribution
view release on metacpan or search on metacpan
Locations.xs view on Meta::CPAN
void
_mortalize_(ref)
SV * ref
PPCODE:
{
GV *obj;
if ( DATA_LOCATIONS_OBJECT(ref,obj) )
{
Locations.xs view on Meta::CPAN
}
void
Version(...)
PPCODE:
{
if ((items >= 0) && (items <= 1))
{
EXTEND(sp,1);
PUSHs(sv_2mortal(newSVpv((char *)"5.5",0)));
view all matches for this distribution
view release on metacpan or search on metacpan
read_entry(self, offset, ...)
SV *self
UV offset
PREINIT:
EXTRACT_LOG(self);
PPCODE:
const uint8_t *out_data;
uint32_t out_len;
uint64_t next_off;
/* Optional third arg: abandon_wait_us (default LOG_ABANDON_WAIT_US).
* Pass 0 to immediately treat any uncommitted slot as abandoned. */
view all matches for this distribution
view release on metacpan or search on metacpan
passwdqc.xs view on Meta::CPAN
void
_test_params (packed_params)
const char * packed_params
PREINIT:
const passwdqc_params_qc_t * params;
PPCODE:
params = (passwdqc_params_qc_t *)packed_params;
EXTEND(SP, 10);
PUSHs(sv_2mortal(newSViv(params->min[0])));
PUSHs(sv_2mortal(newSViv(params->min[1])));
PUSHs(sv_2mortal(newSViv(params->min[2])));
view all matches for this distribution