| /* |
| * Utility functions to read our own memory map |
| * |
| * Copyright (c) 2020 Linaro Ltd |
| * |
| * SPDX-License-Identifier: GPL-2.0-or-later |
| */ |
| |
| #ifndef SELFMAP_H |
| #define SELFMAP_H |
| |
| #include "qemu/interval-tree.h" |
| |
| typedef struct { |
| IntervalTreeNode itree; |
| |
| /* flags */ |
| bool is_read; |
| bool is_write; |
| bool is_exec; |
| bool is_priv; |
| |
| dev_t dev; |
| ino_t inode; |
| uint64_t offset; |
| const char *path; |
| } MapInfo; |
| |
| /** |
| * read_self_maps: |
| * |
| * Read /proc/self/maps and return a tree of MapInfo structures. |
| */ |
| IntervalTreeRoot *read_self_maps(void); |
| |
| /** |
| * free_self_maps: |
| * @info: an interval tree |
| * |
| * Free a tree of MapInfo structures. |
| */ |
| void free_self_maps(IntervalTreeRoot *root); |
| |
| #endif /* SELFMAP_H */ |