radare2/libr/meta
pancake 182b7737cf * Remove deprecated documentation
* Some syntax fixes
* Some changes in the design of the vars in r_anal
* Remove 'CF' command and META_FUNCTION type
* Fix 'S' '*' mark when in debugger
2010-07-02 02:01:51 +02:00
..
t * Remove deprecated documentation 2010-07-02 02:01:51 +02:00
tmp * Mental note: %lld/%llx does not exist on windows 2010-04-14 13:02:23 +02:00
Makefile * Added w32dist makefile target to generate a distributable zip 2010-01-15 17:02:04 +01:00
meta.c * Remove deprecated documentation 2010-07-02 02:01:51 +02:00
README * Remove deprecated documentation 2010-07-02 02:01:51 +02:00
type.c * Remove deprecated documentation 2010-07-02 02:01:51 +02:00

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