RMeta api ========= -- zignature stuff -- * zf name fmt define function zignature (fast/slow, args, types) ** xrefs stuff should be delegated to the flags? (dont think so..) - we can generate xrefs metadata from flags analysis - we can use r_meta as 'static storage' and flags as playground. ** data_* api should be refactored to use less functions with more flexible arguments. What we need: - a database of data types Ct char* 4 z Ct void 0 Ct int 4 d Ct ut32 4 x Ct ut64 8 q - a database of function signatures CFt printf void=char*,... CFt puts int=char* CFt system int=char* CFt exit void=int - to store on each function - fastcall ? - local { vars, args } + type + arraysize + name - framesize (should be detected by the code analysis - casting between types - signed/unsigned - different size - all cast operations must be supported? - serialization/deserialization of strings into structures * We need a way to follow a variable access along the function flow - r_anal_access (RAnal, RAnalFcn, RAnalOp); - analyze opcode to update function vars/args accesses and determine function calls.. - to determine it's type and if it's stored in a register or pushed in the stack before being used - RAnalVar r_anal_var_from_value(RAnal, RFunction fun, RValue *val); - return a variable reference for a variable