radare2/libr/io
lzutao b790439e28 Cast arguments to ut8 when feeding ctype.h functions ##refactor
The behavior of the `<ctype.h>` functions is undefined for negative
arguments (other than `EOF`). In such a situation, the argument should
be cast to `unsiged char` for safety.

References:
 - C Programming: A Modern Approach, 2nd Edition: page 612, chapter 23.5
2018-11-06 13:40:00 +01:00
..
p Cast arguments to ut8 when feeding ctype.h functions ##refactor 2018-11-06 13:40:00 +01:00
cache.c Make wc- invalidate all (fully or partially) overlapping cache (#11241) 2018-08-26 17:38:11 +02:00
desc.c Fix #11112 - Rename {srwx,flags,perms} to perm. (-21 LOC) 2018-09-22 11:31:45 +02:00
fd.c Add r_io_{desc,fd}_is_chardevice. 2018-09-13 17:52:00 +00:00
io_private.h io: io_create_mem_map and io_create_file_map private to the module 2018-09-03 11:18:10 +02:00
io.c Fix the build of the iOS SDK ##build (#11884) 2018-10-21 14:56:56 +02:00
ioutils.c Remove all S commands ##refactoring 2018-10-30 13:23:18 +01:00
Makefile Fix static build problem with ptrace-wrap 2018-09-09 05:59:24 +02:00
map.c Fix #11112 - Rename {srwx,flags,perms} to perm. (-21 LOC) 2018-09-22 11:31:45 +02:00
meson.build ptrace-wrap (#11723) 2018-10-12 12:20:18 +02:00
p_cache.c Fix #11112 - Rename {srwx,flags,perms} to perm. (-21 LOC) 2018-09-22 11:31:45 +02:00
plugin.c Fix #11112 - Rename {srwx,flags,perms} to perm. (-21 LOC) 2018-09-22 11:31:45 +02:00
README Add initial XCore capstone disassembler and code analysis plugins 2014-05-27 23:08:59 +02:00
section.c Remove unused functions in iosections ##refactor 2018-10-30 23:14:00 +01:00
undo.c Add braces to if, else, for, while ... (#11504) 2018-09-13 10:17:26 +02:00
undo.h Use void in prototypes (#7974) 2017-07-20 14:50:13 +02:00

RIO design
==========

rio api allows to seamlessly access to underlying IO backends
and define rules on top of it to act as an mmu.

What do io.va means?
--------------------
- obey sections

- Plugins 

Actions
-------
 - open
 - read
 - seek
 - write
 - close

Layers
------
 - cache    caches write ops and modifies reads
 - map      allows to map a certain file at a given offset
 - sections like maps, but provide more information for virtual addressing

Features
--------
 - undo
 - buffer
 - desc

fn read(io: IO) {
	ut64 offset;
	if io.offset
}