mirror of
https://github.com/radareorg/radare2.git
synced 2024-12-28 16:53:36 +00:00
46 lines
860 B
C
46 lines
860 B
C
/* radare - LGPL - Copyright 2013-2017 - pancake */
|
|
|
|
/* sliced list implementation */
|
|
|
|
#ifndef R2_SLIST_H
|
|
#define R2_SLIST_H
|
|
|
|
#include <r_util.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct r_slist_item_t {
|
|
ut64 from;
|
|
ut64 to;
|
|
void *data;
|
|
} RSListItem;
|
|
|
|
typedef struct r_slist_t {
|
|
RList *list;
|
|
ut64 min;
|
|
ut64 max;
|
|
int mod;
|
|
int *last;
|
|
int lastslot;
|
|
int nitems;
|
|
RSListItem ***items;
|
|
void **alloc;
|
|
} RSList;
|
|
|
|
R_API RSList *r_slist_new (void);
|
|
R_API void r_slist_free (RSList *s);
|
|
R_API int r_slist_get_slot(RSList *s, ut64 addr);
|
|
R_API RSList *r_slist_add (RSList *s, void *data, ut64 from, ut64 to);
|
|
R_API RSListItem **r_slist_get (RSList *s, ut64 addr);
|
|
R_API void r_slist_del (RSList *s, RSListItem *p);
|
|
R_API void *r_slist_get_at (RSList *list, ut64 addr);
|
|
R_API void r_slist_optimize (RSList *s);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|