/* american fuzzy lop++ - shared memory related header --------------------------------------------------- Originally written by Michal Zalewski Forkserver design by Jann Horn Now maintained by Marc Heuse , Heiko Eißfeldt and Andrea Fioraldi Copyright 2016, 2017 Google Inc. All rights reserved. Copyright 2019-2020 AFLplusplus Project. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0 Shared code to handle the shared memory. This is used by the fuzzer as well the other components like afl-tmin, afl-showmap, etc... */ #ifndef __AFL_SHAREDMEM_H #define __AFL_SHAREDMEM_H typedef struct sharedmem { //extern unsigned char *trace_bits; #ifdef USEMMAP /* ================ Proteas ================ */ int g_shm_fd; char g_shm_file_path[L_tmpnam]; /* ========================================= */ #else s32 shm_id; /* ID of the SHM region */ s32 cmplog_shm_id; #endif u8 *map; /* shared memory region */ size_t size_alloc; /* actual allocated size */ size_t size_used; /* in use by shmem app */ int cmplog_mode; struct cmp_map *cmp_map; } sharedmem_t; u8 *afl_shm_init(sharedmem_t*, size_t, unsigned char dumb_mode); void afl_shm_deinit(sharedmem_t*); #endif