This file is indexed.

/usr/include/libr/r_list.h is in libradare2-dev 0.9.6-3.1+deb8u1.

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
#ifndef _INCLUDE_R_LIST_H_
#define _INCLUDE_R_LIST_H_

#include <r_types.h>
#include <r_flist.h>

#ifdef __cplusplus
extern "C" {
#endif

// TODO: implement r_list_foreach_prev

#ifndef _INCLUDE_R_LIST_HEAD_H_
#define _INCLUDE_R_LIST_HEAD_H_
typedef void (*RListFree)(void *ptr);

typedef struct r_list_iter_t {
	void *data;
	struct r_list_iter_t *n, *p;
} RListIter;

typedef struct r_list_t {
	RListIter *head;
	RListIter *tail;
	RListFree free;
} RList;

typedef int (*RListComparator)(void *a, void *b);

#define ROFList_Parent RList
typedef struct r_oflist_t {
	ROFList_Parent super; // super class
	RFList *array; // statical readonly cache of linked list as a pointer array
} ROFList;
#endif

#ifdef R_API
//#define R_LIST_NEW(x,y) x=r_list_new();x->free=(RListFree)y
#define r_list_foreach(list, it, pos) \
	if (list) for (it = list->head; it && (pos = it->data); it = it->n)
/* Safe when calling r_list_delete() while iterating over the list. */
#define r_list_foreach_safe(list, it, tmp, pos) \
	if (list) for (it = list->head; it && (pos = it->data) && ((tmp = it->n) || 1); it = tmp)
#define r_list_foreach_prev(list, it, pos) \
	if (list) for (it = list->tail; it && (pos = it->data); it = it->p)
#ifndef _R_LIST_C_
#define r_list_push(x,y) r_list_append(x,y)
#define r_list_iterator(x) (x)?(x)->head:NULL
#define r_list_empty(x) (x==NULL || (x->head==NULL && x->tail==NULL))
#define r_list_head(x) x->head
#define r_list_tail(x) x->tail
#define r_list_unref(x) x

#define r_list_iter_get(x) x->data; x=x->n
#define r_list_iter_next(x) (x?1:0)

#define r_list_iter_cur(x) x->p
#define r_list_iter_unref(x) x
#define r_list_iter_free(x) x
#endif
R_API RList *r_list_new();
R_API RList *r_list_newf(RListFree f);
//R_API void r_list_iter_free (RListIter *x);
R_API RListIter *r_list_iter_get_next(RListIter *list);
R_API int r_list_set_n(RList *list, int n, void *p);
R_API void *r_list_iter_get_data(RListIter *list);
R_API RListIter *r_list_append(RList *list, void *data);
R_API RListIter *r_list_prepend(RList *list, void *data);
R_API int r_list_length(RList *list);
R_API void r_list_add_sorted(RList *list, void *data, RListComparator cmp);
R_API void r_list_sort(RList *list, RListComparator cmp);

R_API void r_list_init(RList *list);
R_API void r_list_delete (RList *list, RListIter *iter);
R_API boolt r_list_delete_data (RList *list, void *ptr);
R_API void r_list_iter_init (RListIter *iter, RList *list);
R_API void r_list_destroy (RList *list);
R_API void r_list_purge (RList *list);
R_API void r_list_free (RList *list);
R_API RListIter *r_list_item_new (void *data);
R_API void r_list_unlink (RList *list, void *ptr);
R_API void r_list_split (RList *list, void *ptr);
R_API void r_list_split_iter (RList *list, RListIter *iter);
R_API void r_list_join (RList *list1, RList *list2);
R_API void *r_list_get_n (RList *list, int n);
R_API int r_list_del_n (RList *list, int n);
R_API void *r_list_get_top (RList *list);
R_API void *r_list_pop (RList *list);
R_API void r_list_reverse (RList *list);
R_API RList *r_list_clone (RList *list);

/* hashlike api */
R_API void *r_list_get_by_int(RList *list, int off, int n);
R_API void *r_list_get_by_int64(RList *list, int off, ut64 n);
R_API void *r_list_get_by_string(RList *list, int off, const char *str);
R_API RListIter *r_list_contains (RList *list, void *p);

/* rlistflist */
// TODO: rename to init or so.. #define r_oflist_new() R_NEW(ROFList);memset
#define r_oflist_length(x,y) r_list_length(x,y)
#define r_oflist_destroy(x) r_oflist_deserialize(x), r_list_destroy(x)
#define r_oflist_free(x) r_oflist_deserialize(x), r_list_free(x)
#define r_oflist_append(x,y) r_oflist_deserialize(x), r_list_append(x,y)
#define r_oflist_prepend(x,y) r_oflist_deserialize(x), r_list_prepend(x,y)
#define r_oflist_delete(x,y) r_oflist_deserialize(x), r_list_delete(x,y)
#define r_oflist_array(x) x->array?x->array:(x->array=r_oflist_serialize(x)),x->array
#define r_oflist_deserialize(x) \
	free(x->array-1),x->array=0
#define r_oflist_serialize(x) \
	x->array = r_flist_new(r_list_length(x)), { \
		int idx = 0; \
		void *ptr; \
		RListIter *iter; \
		r_list_foreach (x, iter, ptr) \
			r_flist_set (x->array, idx++, ptr); \
	} x->array;
#endif

#ifdef __cplusplus
}
#endif

#endif