radare2/libr/io
pancake 39a8c23740 * Major refactoring in r_meta
* Added C! command that calls r_meta_sync()
    - put xref information inside function metaitems
    - reduces cpu usage
  - Fix some memory leaks
  - Add object lifecycle for r_list_item_t
  - Use RList instead of list.h
* Apply patch from edu fixing '+' key in visual (Thanks!)
* Fix segfault in osx printf ("%s", NULL) using r_str_get()
2010-06-28 00:43:07 +02:00
..
p * Fix build on mingw32 2010-06-27 22:14:06 +02:00
t * More fixes on build system 2010-06-15 14:10:42 +02:00
cache.c * Mental note: %lld/%llx does not exist on windows 2010-04-14 13:02:23 +02:00
desc.c * some more renaming 2010-05-27 00:57:25 +02:00
io.c * Major refactoring in r_meta 2010-06-28 00:43:07 +02:00
Makefile * Rename "handler" to "plugin" 2010-05-26 18:25:35 +02:00
map.c * Mental note: %lld/%llx does not exist on windows 2010-04-14 13:02:23 +02:00
plugin.c * Fix bug with static plugins 2010-05-28 02:44:51 +02:00
README * Rename {r_*_handle_t, R*Handle} to {r_*_plugin_t, R*Plugin} 2010-05-26 01:42:22 +02:00
section.c * merge 2010-04-14 14:11:38 +02:00
undo.c * Rename {r_*_handle_t, R*Handle} to {r_*_plugin_t, R*Plugin} 2010-05-26 01:42:22 +02:00
undo.h * Change the name of some types 2009-07-08 13:49:55 +02:00

R_IO
====

IO       - manages basic IO
DESC     - file descriptor (stores seek, io_handler, ..)
HANDLE   - determines io backend by io plugins
SECTION  - allows virtual base addressing over the IO
MAP      - allows virtual maps at random address

// TODO:
  - Can share storage
UNDO     - records all write ops allowing undo, redo, reset operations
  r_io_undo_*
CACHE    - caches write operations to emulate fake reads
  r_io_cache_*

-------------------------------------------

NOTES: each plugin handle must provide a 'optimal' read size.. or io must be configured to this

var io = new Radare.Io();
int fd = io.open("/bin/ls");

foreach (Io.Plugin handle in io.handle_list()) {
   stdout.printf(" %s\n", handle.name);
}