Keystone

 view release on metacpan or  search on metacpan

Keystone.xs  view on Meta::CPAN

MODULE = Keystone   PACKAGE = Keystone


# Wrapper to ks_version()
SV*
ks_version()

    PREINIT:
        int major, minor;

    PPCODE:
        ks_version(&major, &minor);

        EXTEND(SP, 2);
        XST_mIV(0, major);
        XST_mIV(1, minor);
        XSRETURN(2);

# Wrapper to ks_arch_supported
int
ks_arch_supported(arch)

Keystone.xs  view on Meta::CPAN

ks_asm(handle,code,address)
    ks_engine *handle
    SV *code
    UV address

    PREINIT:
        size_t size, i, count;
        unsigned char *opcodes;
        int ret;

    PPCODE:

        if(SvTYPE(code) != SVt_PV) {
            croak("<code> argument not an array scalar");
        }

        ret = ks_asm(handle, SvPVbyte(code, SvCUR(code)), address, &opcodes, &size, &count);
        if(!ret) {
            for(i = 0; i < size; i++) {
                PUSHs(newSViv(opcodes[i]));
            }



( run in 0.586 second using v1.01-cache-2.11-cpan-5511b514fd6 )