This file is indexed.

/usr/share/vala/vapi/r_io.vapi is in radare2-vala 0.9.6-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/* radare - LGPL - Copyright 2009-2011 pancake<nopcode.org> */

namespace Radare {
	[Compact]
	[CCode (cheader_filename="r_io.h", cname="RIO", free_function="r_io_free", cprefix="r_io_")]
	public class RIO {
		public Desc fd;
		public bool cached;
		public bool cached_read;
		public bool enforce_rwx;
		public bool enforce_seek;
		public uint64 off;
		public bool debug;

		[CCode (cprefix="R_IO_")]
		public enum Perm {
			READ = 0,
			WRITE = 1,
			EXEC = 2,
		}

		[CCode (cprefix="R_IO_SEEK_")]
		public enum Seek {
			SET = 0,
			CUR = 1,
			END = 2,
		}
		public uint64 va;

		public RIO();
		public RIO free();
		public bool set_write_mask(uint8 *buf, int len);

		//public uint64 off;
		/**
		 * Open a file using an uri specifying flags and mode
		 *
		 * uri: URI with path to file
		 * flags: See Radare.Io.Flags
		 * mode: ...
		 */
		public RIO.Desc open(string uri, int flags, int mode);
		public RIO.Desc open_as(string urihandler, string path, int flags, int mode);
		public int redirect(string uri);
		public int set_fd(RIO.Desc fd);
		public int read(out uint8 *buf, int len);
		public int read_at(uint64 addr, uint8 *buf, int len);
		public RBuffer *read_buf(uint64 addr, int len);
		public int write(uint8 *buf, int len);
		public int write_at(uint64 addr, uint8 *buf, int len);
		public uint64 seek(uint64 addr, int whence);
		public int system(string cmd);
		public int close(RIO.Desc fd);
		public uint64 size();


		public void cache_commit ();
		public void cache_init ();
		public int cache_list (bool rad);
		public void cache_reset (bool set);
		public void cache_enable(bool rd, bool wr);
		public void cache_write(uint64 addr, ref uint8 *buf, int len);
		public void cache_read(uint64 addr, ref uint8 *buf, int len);

		/* undo */
		// TODO: Implement seek and write undo apis..they must be unified..
		public bool undo_init();
		public void undo_enable(bool set, bool write);

/*
		[Compact]
		[CCode(cname="RIOUndo")]
		public class Undo {
			bool s_enable;
			bool w_enable;
			bool w_init;
			int idx;
			int limit;
		}
*/
		//public uint64 undo_seek();
		//public void undo_redo();
		//public void undo_push();

		/* plugin */
		[Compact]
		[CCode (cname="RIOPlugin", cprefix="r_io_plugin_", free_function="")]
		public class Plugin {
			string name;
			string desc;
			// TODO: lot of missing stuff here :)
		}

		/* TODO: make them methods of Plugin class ? */
		public bool plugin_open(int fd, RIO.Plugin plugin);
		public bool plugin_close(int fd, RIO.Plugin plugin);
		public bool plugin_add(RIO.Plugin plugin);
		public int plugin_generate();
		public void plugin_list();

		/* maps */
		[CCode (cname="RIOMap", cprefix="r_io_map_", free_function="", unref_function="")]
		public class Map {
			int fd;
			int flags;
			uint64 delta;
			uint64 from;
			uint64 to;
		}
		public Map map_resolve(int fd);
		public bool map_add(int fd, int flags, uint64 delta, uint64 addr, uint64 size);
		public bool map_del(int fd);

		/* sections */
		[Compact]
		[CCode (cname="RIOSection", free_function="")]
		public class Section {
			string name;
			uint64 offset;
			uint64 vaddr;
			uint64 size;
			uint64 vsize;
			int rwx; // TODO: use perms
			int id;
		}

		public uint64 section_next(uint64 addr);
		public void section_list(uint64 addr, bool rad);
		public void section_list_visual(uint64 addr, uint64 len);
		public Section section_get(uint64 addr);
		public uint64 section_get_offset(uint64 addr);
		public uint64 section_get_vaddr(uint64 addr);
		public int section_get_rwx(uint64 addr);
		public bool section_overlaps(Section refsec);
		public uint64 section_vaddr_to_offset(uint64 vaddr);
		public uint64 section_offset_to_vaddr(uint64 offset);

		[Compact]
		[CCode (cname="RIODesc",free_function="")]
		public class Desc {
			public int fd;
			public int flags;
			public string name;
		}
		// int perms -> RIOPerm ?
		public void desc_add(RIO.Desc *desc);
		public bool desc_del(int fd);
		//public RIO.Desc desc_get (int fd);
		//public int desc_generate();
	}
}