Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* DO NOT EDIT. automatically generated by valabind */
- var ffi = require('ffi'), ref = require('ref'), Struct = require('ref-struct');
- var types = exports.types = {}, ptr = ref.refType;
- for(var i in ref.types)
- types[i] = ref.types[i];
- function fields(s, f) {
- if(s._instanceCreated)
- return console.warn('Structure redefined, ignoring...');
- for(var i in f)
- s.defineProperty(i, f[i]);
- s._instanceCreated = true;
- }
- function makeType(t, o) {
- b = new types[t](o);
- if(t in exports)
- o.__proto__ = exports[t].prototype;
- return o;
- }
- types.RAsm = Struct();
- exports.RAsmOp = types.RAsmOp = Struct();
- types.RAsmPlugin = Struct();
- types.RAsmCode = Struct();
- types.RNum = Struct();
- types.RBuffer = Struct();
- types.RRange = Struct();
- types.RRangeItem = Struct();
- types.RNum = Struct();
- types.RBuffer = Struct();
- types.RFList = Struct();
- types.RList = Struct();
- types.RListIter = Struct();
- types.RRange = Struct();
- types.RRangeItem = Struct();
- /* RAsm / RAsm */
- fields(types.RAsm, {
- bits: types.int,
- big_endian: types.bool,
- syntax: types.int,
- pc: types.int64,
- plugins: ptr(types.RList)
- });
- /* RAsmOp / RAsm */
- fields(types.RAsmOp, {
- inst_len: types.int,
- buf: ptr(types.uint8),
- buf_asm: types.Utf8String,
- buf_hex: types.Utf8String,
- buf_err: types.Utf8String
- });
- /* RAsmPlugin / RAsmPlugin */
- fields(types.RAsmPlugin, {
- name: types.Utf8String,
- arch: types.Utf8String,
- desc: types.Utf8String,
- bits: ptr(types.int)
- });
- /* RAsmCode / RAsmCode */
- fields(types.RAsmCode, {
- len: types.int,
- buf: ptr(types.uint8),
- buf_hex: types.Utf8String,
- buf_asm: types.Utf8String
- });
- /* RBuffer / RBuffer */
- fields(types.RBuffer, {
- buf: ptr(types.uint8)
- });
- /* RRangeItem / RRangeItem */
- fields(types.RRangeItem, {
- fr: types.int64,
- to: types.int64,
- data: ptr(types.uint8),
- datalen: types.int
- });
- /* RBuffer / RBuffer */
- fields(types.RBuffer, {
- buf: ptr(types.uint8)
- });
- /* RList / RList */
- fields(types.RList, {
- head: ptr(types.RListIter),
- tail: ptr(types.RListIter),
- free: ptr(types.void)
- });
- /* RListIter / RListIter */
- fields(types.RListIter, {
- data: ptr(types.void),
- n: ptr(types.RListIter),
- p: ptr(types.RListIter)
- });
- /* RRangeItem / RRangeItem */
- fields(types.RRangeItem, {
- fr: types.int64,
- to: types.int64,
- data: ptr(types.uint8),
- datalen: types.int
- });
- var lib = new ffi.Library('libr_asm', {
- r_asm_new: [types.void, []],
- r_asm_use: [types.bool, [ptr(types.RAsm), types.Utf8String]],
- r_asm_set_bits: [types.bool, [ptr(types.RAsm), types.int]],
- r_asm_set_syntax: [types.bool, [ptr(types.RAsm), types.int]],
- r_asm_set_pc: [types.bool, [ptr(types.RAsm), types.int64]],
- r_asm_set_big_endian: [types.bool, [ptr(types.RAsm), types.bool]],
- r_asm_disassemble: [types.int, [ptr(types.RAsm), types.RAsmOp, ptr(types.uint8), types.int64]],
- r_asm_assemble: [types.int, [ptr(types.RAsm), types.RAsmOp, types.Utf8String]],
- r_asm_mdisassemble: [ptr(types.RAsmCode), [ptr(types.RAsm), ptr(types.uint8), types.int64]],
- r_asm_mdisassemble_hexstr: [ptr(types.RAsmCode), [ptr(types.RAsm), types.Utf8String]],
- r_asm_massemble: [ptr(types.RAsmCode), [ptr(types.RAsm), types.Utf8String]],
- r_asm_assemble_file: [ptr(types.RAsmCode), [ptr(types.RAsm), types.Utf8String]],
- r_asm_filter_input: [types.bool, [ptr(types.RAsm), types.Utf8String]],
- r_asm_filter_output: [types.bool, [ptr(types.RAsm), types.Utf8String]],
- r_asm_free: [types.void, [ptr(types.RAsm)]],
- r_asm_code_set_equ: [types.int, [ptr(types.RAsmCode), types.Utf8String, types.Utf8String]],
- //r_num_new: [types.void, [types.RNumCallback, ptr(types.void)]],
- r_num_get: [types.int64, [ptr(types.RNum), types.Utf8String]],
- r_num_math: [types.int64, [ptr(types.RNum), types.Utf8String]],
- r_buf_new: [types.void, []],
- r_buf_read_at: [types.int, [ptr(types.RBuffer), types.int64, ptr(types.uint8), types.int]],
- r_buf_write_at: [types.int, [ptr(types.RBuffer), types.int64, ptr(types.uint8), types.int]],
- r_buf_set_bytes: [types.bool, [ptr(types.RBuffer), ptr(types.uint8), types.int]],
- r_range_new: [types.void, []],
- r_range_new_from_string: [types.void, [types.Utf8String]],
- r_range_item_get: [ptr(types.RRangeItem), [ptr(types.RRange), types.int64]],
- r_range_size: [types.int64, [ptr(types.RRange)]],
- r_range_add_from_string: [types.int64, [ptr(types.RRange), types.Utf8String]],
- r_range_contains: [types.bool, [ptr(types.RRange), types.int64]],
- r_range_sort: [types.bool, [ptr(types.RRange)]],
- r_range_list: [types.bool, [ptr(types.RRange), types.bool]],
- r_range_get_n: [types.bool, [ptr(types.RRange), types.int, types.int64, types.int64]],
- r_range_inverse: [ptr(types.RRange), [ptr(types.RRange), types.int64, types.int64, types.int]],
- //r_num_new: [types.void, [types.RNumCallback, ptr(types.void)]],
- r_num_get: [types.int64, [ptr(types.RNum), types.Utf8String]],
- r_num_math: [types.int64, [ptr(types.RNum), types.Utf8String]],
- r_buf_new: [types.void, []],
- r_buf_read_at: [types.int, [ptr(types.RBuffer), types.int64, ptr(types.uint8), types.int]],
- r_buf_write_at: [types.int, [ptr(types.RBuffer), types.int64, ptr(types.uint8), types.int]],
- r_buf_set_bytes: [types.bool, [ptr(types.RBuffer), ptr(types.uint8), types.int]],
- r_flist_iterator: [ptr(types.RFList), [ptr(types.RFList)]], //HACK fix return type in valabind
- r_flist_next: [types.bool, [ptr(types.RFList)]],
- r_flist_get: [ptr(types.void), [ptr(types.RFList)]],
- r_list_append: [types.void, [ptr(types.RList), ptr(types.void)]],
- r_list_prepend: [types.void, [ptr(types.RList), ptr(types.void)]],
- r_list_iterator: [types.RListIter, [ptr(types.RList)]],
- r_list_new: [types.void, []],
- r_list_length: [types.uint, [ptr(types.RList)]],
- r_list_get: [ptr(types.void), [ptr(types.RList)]],
- r_list_del_n: [types.bool, [ptr(types.RList), types.int]],
- r_list_get_top: [types.bool, [ptr(types.RList)]],
- r_list_pop: [ptr(types.void), [ptr(types.RList)]],
- r_list_iter_new: [types.void, []],
- r_list_iter_get_data: [ptr(types.void), [ptr(types.RListIter)]],
- r_list_iter_get_next: [types.RListIter, [ptr(types.RListIter)]],
- r_range_new: [types.void, []],
- r_range_new_from_string: [types.void, [types.Utf8String]],
- r_range_item_get: [ptr(types.RRangeItem), [ptr(types.RRange), types.int64]],
- r_range_size: [types.int64, [ptr(types.RRange)]],
- r_range_add_from_string: [types.int64, [ptr(types.RRange), types.Utf8String]],
- r_range_contains: [types.bool, [ptr(types.RRange), types.int64]],
- r_range_sort: [types.bool, [ptr(types.RRange)]],
- r_range_list: [types.bool, [ptr(types.RRange), types.bool]],
- r_range_get_n: [types.bool, [ptr(types.RRange), types.int, types.int64, types.int64]],
- r_range_inverse: [ptr(types.RRange), [ptr(types.RRange), types.int64, types.int64, types.int]]
- });
- /* RAsm / RAsm */
- exports.RAsm = function RAsm() {
- types.RAsm.call(this, lib.r_asm_new());
- };
- exports.RAsm.prototype = new types.RAsm;
- delete exports.RAsm.prototype._pointer;
- /*
- NONE: R_ASM_ARCH_NONE;
- X86: R_ASM_ARCH_X86;
- ARM: R_ASM_ARCH_ARM;
- PPC: R_ASM_ARCH_PPC;
- M68K: R_ASM_ARCH_M68K;
- JAVA: R_ASM_ARCH_JAVA;
- MIPS: R_ASM_ARCH_MIPS;
- SPARC: R_ASM_ARCH_SPARC;
- CSR: R_ASM_ARCH_CSR;
- MSIL: R_ASM_ARCH_MSIL;
- OBJD: R_ASM_ARCH_OBJD;
- BF: R_ASM_ARCH_BF;
- */
- /*
- NONE: R_ASM_SYNTAX_NONE;
- INTEL: R_ASM_SYNTAX_INTEL;
- ATT: R_ASM_SYNTAX_ATT;
- */
- /*
- RAWVALUE: R_ASM_MOD_RAWVALUE;
- VALUE: R_ASM_MOD_VALUE;
- DSTREG: R_ASM_MOD_DSTREG;
- SRCREG0: R_ASM_MOD_SRCREG0;
- SRCREG1: R_ASM_MOD_SRCREG1;
- SRCREG2: R_ASM_MOD_SRCREG2;
- */
- exports.RAsm.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RAsm.use = function use($name) {
- return lib.r_asm_use(this._pointer, $name);
- };
- exports.RAsm.set_bits = function set_bits($bits) {
- return lib.r_asm_set_bits(this._pointer, $bits);
- };
- exports.RAsm.set_syntax = function set_syntax($syntax) {
- return lib.r_asm_set_syntax(this._pointer, $syntax);
- };
- exports.RAsm.set_pc = function set_pc($addr) {
- return lib.r_asm_set_pc(this._pointer, $addr);
- };
- exports.RAsm.set_big_endian = function set_big_endian($big) {
- return lib.r_asm_set_big_endian(this._pointer, $big);
- };
- exports.RAsm.disassemble = function disassemble($op, $buf, $length) {
- return lib.r_asm_disassemble(this._pointer, $op, $buf, $length);
- };
- exports.RAsm.assemble = function assemble($op, $buf) {
- return lib.r_asm_assemble(this._pointer, $op, $buf);
- };
- exports.RAsm.mdisassemble = function mdisassemble($buf, $length) {
- return makeType('RAsmCode', lib.r_asm_mdisassemble(this._pointer, $buf, $length));
- };
- exports.RAsm.mdisassemble_hexstr = function mdisassemble_hexstr($hexstr) {
- return makeType('RAsmCode', lib.r_asm_mdisassemble_hexstr(this._pointer, $hexstr));
- };
- exports.RAsm.massemble = function massemble($buf) {
- return makeType('RAsmCode', lib.r_asm_massemble(this._pointer, $buf));
- };
- exports.RAsm.assemble_file = function assemble_file($file) {
- return makeType('RAsmCode', lib.r_asm_assemble_file(this._pointer, $file));
- };
- exports.RAsm.filter_input = function filter_input($filter) {
- return lib.r_asm_filter_input(this._pointer, $filter);
- };
- exports.RAsm.filter_output = function filter_output($filter) {
- return lib.r_asm_filter_output(this._pointer, $filter);
- };
- exports.RAsm.free = function free() {
- return lib.r_asm_free(this._pointer);
- };
- /* RAsmPlugin / RAsmPlugin */
- exports.RAsmPlugin = function RAsmPlugin() {
- types.RAsmPlugin.call(this);
- };
- exports.RAsmPlugin.prototype = new types.RAsmPlugin;
- delete exports.RAsmPlugin.prototype._pointer;
- /* RAsmCode / RAsmCode */
- exports.RAsmCode = function RAsmCode() {
- types.RAsmCode.call(this);
- };
- exports.RAsmCode.prototype = new types.RAsmCode;
- delete exports.RAsmCode.prototype._pointer;
- exports.RAsmCode.prototype.delete = function() {
- r_asm_code_free(this._pointer);
- };
- exports.RAsmCode.set_equ = function set_equ($key, $val) {
- return lib.r_asm_code_set_equ(this._pointer, $key, $val);
- };
- /* RNum / RNum */
- exports.RNum = function RNum(cbuser) {
- types.RNum.call(this, lib.r_num_new(cbuser));
- };
- exports.RNum.prototype = new types.RNum;
- delete exports.RNum.prototype._pointer;
- exports.RNum.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RNum.get = function get($str) {
- return lib.r_num_get(this._pointer, $str);
- };
- exports.RNum.math = function math($str) {
- return lib.r_num_math(this._pointer, $str);
- };
- /* RBuffer / RBuffer */
- exports.RBuffer = function RBuffer() {
- types.RBuffer.call(this, lib.r_buf_new());
- };
- exports.RBuffer.prototype = new types.RBuffer;
- delete exports.RBuffer.prototype._pointer;
- exports.RBuffer.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RBuffer.read_at = function read_at($addr, $buf, $len) {
- return lib.r_buf_read_at(this._pointer, $addr, $buf, $len);
- };
- exports.RBuffer.write_at = function write_at($addr, $buf, $len) {
- return lib.r_buf_write_at(this._pointer, $addr, $buf, $len);
- };
- exports.RBuffer.set_bytes = function set_bytes($buf, $len) {
- return lib.r_buf_set_bytes(this._pointer, $buf, $len);
- };
- /* RRange / RRange */
- exports.RRange = function RRange(str) {
- types.RRange.call(this, lib.r_range_new_from_string(str));
- };
- exports.RRange.prototype = new types.RRange;
- delete exports.RRange.prototype._pointer;
- exports.RRange.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RRange.item_get = function item_get($addr) {
- return lib.r_range_item_get(this._pointer, $addr);
- };
- exports.RRange.size = function size() {
- return lib.r_range_size(this._pointer);
- };
- exports.RRange.add_from_string = function add_from_string($str) {
- return lib.r_range_add_from_string(this._pointer, $str);
- };
- exports.RRange.contains = function contains($addr) {
- return lib.r_range_contains(this._pointer, $addr);
- };
- exports.RRange.sort = function sort() {
- return lib.r_range_sort(this._pointer);
- };
- exports.RRange.list = function list($rad) {
- return lib.r_range_list(this._pointer, $rad);
- };
- exports.RRange.get_n = function get_n($n, $fr, $to) {
- return lib.r_range_get_n(this._pointer, $n, $fr, $to);
- };
- exports.RRange.inverse = function inverse($fr, $to, $flags) {
- return lib.r_range_inverse(this._pointer, $fr, $to, $flags);
- };
- /* RRangeItem / RRangeItem */
- exports.RRangeItem = function RRangeItem() {
- types.RRangeItem.call(this);
- };
- exports.RRangeItem.prototype = new types.RRangeItem;
- delete exports.RRangeItem.prototype._pointer;
- /* RNum / RNum */
- exports.RNum = function RNum(cbuser) {
- types.RNum.call(this, lib.r_num_new(cbuser));
- };
- exports.RNum.prototype = new types.RNum;
- delete exports.RNum.prototype._pointer;
- exports.RNum.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RNum.get = function get($str) {
- return lib.r_num_get(this._pointer, $str);
- };
- exports.RNum.math = function math($str) {
- return lib.r_num_math(this._pointer, $str);
- };
- /* RBuffer / RBuffer */
- exports.RBuffer = function RBuffer() {
- types.RBuffer.call(this, lib.r_buf_new());
- };
- exports.RBuffer.prototype = new types.RBuffer;
- delete exports.RBuffer.prototype._pointer;
- exports.RBuffer.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RBuffer.read_at = function read_at($addr, $buf, $len) {
- return lib.r_buf_read_at(this._pointer, $addr, $buf, $len);
- };
- exports.RBuffer.write_at = function write_at($addr, $buf, $len) {
- return lib.r_buf_write_at(this._pointer, $addr, $buf, $len);
- };
- exports.RBuffer.set_bytes = function set_bytes($buf, $len) {
- return lib.r_buf_set_bytes(this._pointer, $buf, $len);
- };
- /* RFList / void* */
- exports.RFList = function RFList() {
- types.RFList.call(this);
- };
- exports.RFList.prototype = new types.RFList;
- delete exports.RFList.prototype._pointer;
- exports.RFList.prototype.delete = function() {
- r_flist_unref(this._pointer);
- };
- exports.RFList.iterator = function iterator() {
- return makeType('RFList', lib.r_flist_iterator(this._pointer));
- };
- exports.RFList.next = function next() {
- return lib.r_flist_next(this._pointer);
- };
- exports.RFList.get = function get() {
- return lib.r_flist_get(this._pointer);
- };
- /* RList / RList */
- exports.RList = function RList() {
- types.RList.call(this, lib.r_list_new());
- };
- exports.RList.prototype = new types.RList;
- delete exports.RList.prototype._pointer;
- exports.RList.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RList.append = function append($foo) {
- return lib.r_list_append(this._pointer, $foo);
- };
- exports.RList.prepend = function prepend($foo) {
- return lib.r_list_prepend(this._pointer, $foo);
- };
- exports.RList.iterator = function iterator() {
- return makeType('RListIter', lib.r_list_iterator(this._pointer));
- };
- exports.RList.length = function length() {
- return lib.r_list_length(this._pointer);
- };
- exports.RList.get = function get() {
- return lib.r_list_get(this._pointer);
- };
- exports.RList.del_n = function del_n($n) {
- return lib.r_list_del_n(this._pointer, $n);
- };
- exports.RList.get_top = function get_top() {
- return lib.r_list_get_top(this._pointer);
- };
- exports.RList.pop = function pop() {
- return lib.r_list_pop(this._pointer);
- };
- /* RListIter / RListIter */
- exports.RListIter = function RListIter() {
- types.RListIter.call(this, lib.r_list_iter_new());
- };
- exports.RListIter.prototype = new types.RListIter;
- delete exports.RListIter.prototype._pointer;
- exports.RListIter.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RListIter.get_data = function get_data() {
- return lib.r_list_iter_get_data(this._pointer);
- };
- exports.RListIter.get_next = function get_next() {
- return makeType('RListIter', lib.r_list_iter_get_next(this._pointer));
- };
- /* RRange / RRange */
- exports.RRange = function RRange(str) {
- types.RRange.call(this, lib.r_range_new_from_string(str));
- };
- exports.RRange.prototype = new types.RRange;
- delete exports.RRange.prototype._pointer;
- exports.RRange.prototype.delete = function() {
- this.free()/* I doubt it's the right thing */;
- };
- exports.RRange.item_get = function item_get($addr) {
- return lib.r_range_item_get(this._pointer, $addr);
- };
- exports.RRange.size = function size() {
- return lib.r_range_size(this._pointer);
- };
- exports.RRange.add_from_string = function add_from_string($str) {
- return lib.r_range_add_from_string(this._pointer, $str);
- };
- exports.RRange.contains = function contains($addr) {
- return lib.r_range_contains(this._pointer, $addr);
- };
- exports.RRange.sort = function sort() {
- return lib.r_range_sort(this._pointer);
- };
- exports.RRange.list = function list($rad) {
- return lib.r_range_list(this._pointer, $rad);
- };
- exports.RRange.get_n = function get_n($n, $fr, $to) {
- return lib.r_range_get_n(this._pointer, $n, $fr, $to);
- };
- exports.RRange.inverse = function inverse($fr, $to, $flags) {
- return lib.r_range_inverse(this._pointer, $fr, $to, $flags);
- };
- /* RRangeItem / RRangeItem */
- exports.RRangeItem = function RRangeItem() {
- types.RRangeItem.call(this);
- };
- exports.RRangeItem.prototype = new types.RRangeItem;
- delete exports.RRangeItem.prototype._pointer;
Add Comment
Please, Sign In to add comment