radare2/libr/io
pancake 2a054f6bba * Added w32dist makefile target to generate a distributable zip
with .dll and .exe for w32
* Do not build libr.${LIB_AR} by default (problematic in some platforms)
* Lot of more fixes for building on w32 - Yeah i got the first build done!
  - Check radare.org/get/radare2-w32*
  - So many things are still broken for windows
  - Fixes some recursive and missing dependencies
  - LINK and LDFLAGS must be after $OBJ
2010-01-15 17:02:04 +01:00
..
p * Added w32dist makefile target to generate a distributable zip 2010-01-15 17:02:04 +01:00
t * Many bug fixes for the build. Oops 2010-01-15 01:56:43 +01:00
cache.c * Added 'mk/stat' tools 2009-09-17 11:48:36 +02:00
desc.c * Lot of work on refactoring r_io 2009-09-05 23:58:02 +00:00
handle.c * Lot of work on refactoring r_io 2009-09-05 23:58:02 +00:00
io.c * Many more fixes for the mingw32 port 2010-01-15 13:02:54 +01:00
Makefile * Many more fixes for the mingw32 port 2010-01-15 13:02:54 +01:00
map.c * Fixtures for the r_io API (breaking ABI and so :) 2009-09-07 20:01:34 +00:00
README * Some malloc checks in _new() class constructors 2009-09-09 00:35:00 +00:00
section.c * Add 'r_io_undo' 2009-09-08 18:16:52 +00:00
undo.c * Some malloc checks in _new() class constructors 2009-09-09 00:35:00 +00: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);
}