19#define SHM_SIZE 0x100000
20#define MAX_EDGES ((SHM_SIZE - 4) * 8)
49 "[COV] Multiple initialization of shmem!"
50 " This is probably not intended! Currently only one edge"
51 " region is supported\n");
58 const char* shm_key = getenv(
"SHM_ID");
60 fprintf(stderr,
"[COV] no shared memory bitmap available, skipping\n");
63 int fd = shm_open(shm_key, O_RDWR, S_IREAD | S_IWRITE);
65 fprintf(stderr,
"[COV] Failed to open shared memory region\n");
71 if (
shmem == MAP_FAILED) {
72 fprintf(stderr,
"[COV] Failed to mmap shared memory region\n");
84 "[COV] edge counters initialized. Shared memory: %s with %u edges\n",
89 uint32_t on_edges_counter = 0;
91 const uint32_t byteIndex =
i >> 3;
92 const uint32_t bitIndex =
i & 7;
94 if (
shmem->
edges[byteIndex] & (1 << bitIndex)) {
98 return on_edges_counter;
107 uint32_t index = *guard;
115 "[COV] Error: Insufficient amount of edges left for builtins "
122 fprintf(stderr,
"[COV] Additional %d edges for builtins initialized.\n",
130 const std::vector<bool>& cov_map) {
132 fprintf(stderr,
"[COV] Error: Size of builtins cov map changed.\n");
135 for (uint32_t
i = 0;
i < cov_map.size(); ++
i) {
void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop)
void sanitizer_cov_reset_edgeguards()
uint32_t sanitizer_cov_count_discovered_edges()
void cov_update_builtins_basic_block_coverage(const std::vector< bool > &cov_map)
struct shmem_data * shmem
void __sanitizer_cov_trace_pc_guard(uint32_t *guard)
void cov_init_builtins_edges(uint32_t num_edges)
uint32_t builtins_edge_count
void * Malloc(size_t size)