tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

mmap.h (1151B)


      1 /* Copyright (c) 2003-2004, Roger Dingledine
      2 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
      3 * Copyright (c) 2007-2021, The Tor Project, Inc. */
      4 /* See LICENSE for licensing information */
      5 
      6 /**
      7 * \file mmap.h
      8 *
      9 * \brief Header for mmap.c
     10 **/
     11 
     12 #ifndef TOR_MMAP_H
     13 #define TOR_MMAP_H
     14 
     15 #include "lib/cc/compat_compiler.h"
     16 #include "lib/testsupport/testsupport.h"
     17 #include <stddef.h>
     18 
     19 #ifdef _WIN32
     20 #include <windef.h>
     21 #endif
     22 
     23 /** Represents an mmaped file. Allocated via tor_mmap_file; freed with
     24 * tor_munmap_file. */
     25 typedef struct tor_mmap_t {
     26  const char *data; /**< Mapping of the file's contents. */
     27  size_t size; /**< Size of the file. */
     28 
     29  /* None of the fields below should be accessed from outside compat.c */
     30 #ifdef HAVE_MMAP
     31  size_t mapping_size; /**< Size of the actual mapping. (This is this file
     32                        * size, rounded up to the nearest page.) */
     33 #elif defined _WIN32
     34  HANDLE mmap_handle;
     35 #endif /* defined(HAVE_MMAP) || ... */
     36 
     37 } tor_mmap_t;
     38 
     39 MOCK_DECL(tor_mmap_t *, tor_mmap_file, (const char *filename));
     40 MOCK_DECL(int, tor_munmap_file, (tor_mmap_t *handle));
     41 
     42 #endif /* !defined(TOR_MMAP_H) */