xref: /qemu/include/qemu/selfmap.h (revision c01196bd)
1 /*
2  * Utility functions to read our own memory map
3  *
4  * Copyright (c) 2020 Linaro Ltd
5  *
6  * SPDX-License-Identifier: GPL-2.0-or-later
7  */
8 
9 #ifndef SELFMAP_H
10 #define SELFMAP_H
11 
12 #include "qemu/interval-tree.h"
13 
14 typedef struct {
15     IntervalTreeNode itree;
16 
17     /* flags */
18     bool is_read;
19     bool is_write;
20     bool is_exec;
21     bool is_priv;
22 
23     uint64_t offset;
24     uint64_t inode;
25     const char *path;
26     char dev[];
27 } MapInfo;
28 
29 /**
30  * read_self_maps:
31  *
32  * Read /proc/self/maps and return a tree of MapInfo structures.
33  */
34 IntervalTreeRoot *read_self_maps(void);
35 
36 /**
37  * free_self_maps:
38  * @info: an interval tree
39  *
40  * Free a tree of MapInfo structures.
41  */
42 void free_self_maps(IntervalTreeRoot *root);
43 
44 #endif /* SELFMAP_H */
45