|
CCTLib
Calling-context and data-object attribution library for Intel Pin
|
#include <stdint.h>#include <atomic>#include <stdlib.h>#include <sys/mman.h>#include <tuple>
Include dependency graph for shadow_memory.H:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| class | ConcurrentShadowMemory< Ts > |
| class | ShadowMemory< Ts > |
Macros | |
| #define | PAGE_OFFSET_BITS (16LL) |
| #define | PAGE_OFFSET(addr) (addr & 0xFFFF) |
| #define | PAGE_OFFSET_MASK (0xFFFF) |
| #define | SHADOW_PAGE_SIZE (1 << PAGE_OFFSET_BITS) |
| #define | PTR_SIZE (sizeof(struct Status*)) |
| #define | LEVEL_1_PAGE_TABLE_BITS (20) |
| #define | LEVEL_1_PAGE_TABLE_ENTRIES (1 << LEVEL_1_PAGE_TABLE_BITS) |
| #define | LEVEL_1_PAGE_TABLE_SIZE (LEVEL_1_PAGE_TABLE_ENTRIES * PTR_SIZE) |
| #define | LEVEL_2_PAGE_TABLE_BITS (12) |
| #define | LEVEL_2_PAGE_TABLE_ENTRIES (1 << LEVEL_2_PAGE_TABLE_BITS) |
| #define | LEVEL_2_PAGE_TABLE_SIZE (LEVEL_2_PAGE_TABLE_ENTRIES * PTR_SIZE) |
| #define | LEVEL_1_PAGE_TABLE_SLOT(addr) ((((uint64_t)addr) >> (LEVEL_2_PAGE_TABLE_BITS + PAGE_OFFSET_BITS)) & 0xfffff) |
| #define | LEVEL_2_PAGE_TABLE_SLOT(addr) ((((uint64_t)addr) >> (PAGE_OFFSET_BITS)) & 0xFFF) |
| #define | SHADOW_STRUCT_SIZE (sizeof(T)) |
| #define | PIN_ExitProcess(a) exit(a) |
Typedefs | |
| template<class... Args> | |
| using | ShadowTuple = std::tuple< Args[SHADOW_PAGE_SIZE]... > |
Functions | |
| template<int I, typename... Ts> | |
| __attribute__ ((always_inline)) typename std | |
| #define LEVEL_1_PAGE_TABLE_BITS (20) |
Definition at line 21 of file shadow_memory.H.
| #define LEVEL_1_PAGE_TABLE_ENTRIES (1 << LEVEL_1_PAGE_TABLE_BITS) |
Definition at line 22 of file shadow_memory.H.
| #define LEVEL_1_PAGE_TABLE_SIZE (LEVEL_1_PAGE_TABLE_ENTRIES * PTR_SIZE) |
Definition at line 23 of file shadow_memory.H.
| #define LEVEL_1_PAGE_TABLE_SLOT | ( | addr | ) | ((((uint64_t)addr) >> (LEVEL_2_PAGE_TABLE_BITS + PAGE_OFFSET_BITS)) & 0xfffff) |
Definition at line 29 of file shadow_memory.H.
| #define LEVEL_2_PAGE_TABLE_BITS (12) |
Definition at line 25 of file shadow_memory.H.
| #define LEVEL_2_PAGE_TABLE_ENTRIES (1 << LEVEL_2_PAGE_TABLE_BITS) |
Definition at line 26 of file shadow_memory.H.
| #define LEVEL_2_PAGE_TABLE_SIZE (LEVEL_2_PAGE_TABLE_ENTRIES * PTR_SIZE) |
Definition at line 27 of file shadow_memory.H.
| #define LEVEL_2_PAGE_TABLE_SLOT | ( | addr | ) | ((((uint64_t)addr) >> (PAGE_OFFSET_BITS)) & 0xFFF) |
Definition at line 30 of file shadow_memory.H.
| #define PAGE_OFFSET | ( | addr | ) | (addr & 0xFFFF) |
Definition at line 15 of file shadow_memory.H.
| #define PAGE_OFFSET_BITS (16LL) |
Definition at line 14 of file shadow_memory.H.
| #define PAGE_OFFSET_MASK (0xFFFF) |
Definition at line 16 of file shadow_memory.H.
Definition at line 35 of file shadow_memory.H.
| #define PTR_SIZE (sizeof(struct Status*)) |
Definition at line 20 of file shadow_memory.H.
| #define SHADOW_PAGE_SIZE (1 << PAGE_OFFSET_BITS) |
Definition at line 17 of file shadow_memory.H.
| #define SHADOW_STRUCT_SIZE (sizeof(T)) |
Definition at line 32 of file shadow_memory.H.
| using ShadowTuple = std::tuple<Args[SHADOW_PAGE_SIZE]...> |
Definition at line 56 of file shadow_memory.H.
|
inline |
Definition at line 140 of file shadow_memory.H.
References address, PAGE_OFFSET, and PinCCTLib::sm.