diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2023-08-06 17:10:44 +0000 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2023-08-08 13:27:17 -0700 |
| commit | 3ce3dd8ca965209b42660d943a3e9c8c662913fe (patch) | |
| tree | c2e33d6a5f41bb86ba1d209e0a8ee37cc61e0d86 /include/qemu | |
| parent | 5f4e5b34092556ab1577e25d1262bd5975b26980 (diff) | |
| download | focaccia-qemu-3ce3dd8ca965209b42660d943a3e9c8c662913fe.tar.gz focaccia-qemu-3ce3dd8ca965209b42660d943a3e9c8c662913fe.zip | |
util/selfmap: Rewrite using qemu/interval-tree.h
We will want to be able to search the set of mappings. For this patch, the two users iterate the tree in order. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/qemu')
| -rw-r--r-- | include/qemu/selfmap.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/include/qemu/selfmap.h b/include/qemu/selfmap.h index 3479a2a618..7d938945cb 100644 --- a/include/qemu/selfmap.h +++ b/include/qemu/selfmap.h @@ -9,9 +9,10 @@ #ifndef SELFMAP_H #define SELFMAP_H +#include "qemu/interval-tree.h" + typedef struct { - unsigned long start; - unsigned long end; + IntervalTreeNode itree; /* flags */ bool is_read; @@ -19,26 +20,25 @@ typedef struct { bool is_exec; bool is_priv; - unsigned long offset; - gchar *dev; + uint64_t offset; uint64_t inode; - gchar *path; + const char *path; + char dev[]; } MapInfo; - /** * read_self_maps: * - * Read /proc/self/maps and return a list of MapInfo structures. + * Read /proc/self/maps and return a tree of MapInfo structures. */ -GSList *read_self_maps(void); +IntervalTreeRoot *read_self_maps(void); /** * free_self_maps: - * @info: a GSlist + * @info: an interval tree * - * Free a list of MapInfo structures. + * Free a tree of MapInfo structures. */ -void free_self_maps(GSList *info); +void free_self_maps(IntervalTreeRoot *root); #endif /* SELFMAP_H */ |