aboutsummaryrefslogblamecommitdiff
path: root/include/sharedmem.h
blob: 57ab6cf0a730915c2bdd512a353ba05697da8f0e (plain) (tree)
1
2
3
4
5
6
7
8
9



                                                      
                                        
 
                                                           
 
                                               


                                                                

                                                        
                                                                











                                                                      

                         
 
                          
 
                                      
 
              
                                                 




                                                                              
                    
      
 
                                                                              
 

                                                                              





                              

                                                                  
 
      
 
/*
   american fuzzy lop++ - shared memory related header
   ---------------------------------------------------

   Originally written by Michal Zalewski

   Forkserver design by Jann Horn <jannhorn@googlemail.com>

   Now maintained by Marc Heuse <mh@mh-sec.de>,
                     Heiko Eißfeldt <heiko.eissfeldt@hexco.de>,
                     Andrea Fioraldi <andreafioraldi@gmail.com>,
                     Dominik Maier <mail@dmnk.co>

   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