radare2/libr/io
pancake b8e98f3a00 * Add bb_list() method to RAnalFcn class
* Handle function boundaries in 'pd'
* Reset stack_ptr=0 when leaving a function body
* Fix 'asm.bytes=false' (display flags as newlines)
* Fix 's+' and 's-' (seek redo, seek undo)
  - Bindied in visual mode as 'u' and 'U' keys
  - Added 's*' command to list seeking history
* Add dummy file.md5 eval var
  - TODO: must be done by rabin2 and checked by project file
2010-05-19 02:39:01 +02:00
..
p * Initial work on w32dbg IO, fork and attach still incomplete 2010-04-14 23:56:27 +02:00
t * Mental note: %lld/%llx does not exist on windows 2010-04-14 13:02:23 +02:00
cache.c * Mental note: %lld/%llx does not exist on windows 2010-04-14 13:02:23 +02:00
desc.c * Initial quick-and-dirty implementation of backtrace 2010-03-01 10:49:04 +01:00
handle.c * r_io 2010-03-19 14:01:37 +01:00
io.c * Add bb_list() method to RAnalFcn class 2010-05-19 02:39:01 +02:00
Makefile * Many more fixes for the mingw32 port 2010-01-15 13:02:54 +01:00
map.c * Mental note: %lld/%llx does not exist on windows 2010-04-14 13:02:23 +02:00
README * Some malloc checks in _new() class constructors 2009-09-09 00:35:00 +00:00
section.c * merge 2010-04-14 14:11:38 +02:00
undo.c * Add bb_list() method to RAnalFcn class 2010-05-19 02:39:01 +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.Handle handle in io.handle_list()) {
   stdout.printf(" %s\n", handle.name);
}