tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

prmmap.c (1540B)


      1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 /*
      7 *********************************************************************
      8 *
      9 * Memory-mapped files
     10 *
     11 *********************************************************************
     12 */
     13 
     14 #include "primpl.h"
     15 
     16 PR_IMPLEMENT(PRFileMap*)
     17 PR_CreateFileMap(PRFileDesc* fd, PRInt64 size, PRFileMapProtect prot) {
     18  PRFileMap* fmap;
     19 
     20  PR_ASSERT(prot == PR_PROT_READONLY || prot == PR_PROT_READWRITE ||
     21            prot == PR_PROT_WRITECOPY);
     22  fmap = PR_NEWZAP(PRFileMap);
     23  if (NULL == fmap) {
     24    PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0);
     25    return NULL;
     26  }
     27  fmap->fd = fd;
     28  fmap->prot = prot;
     29  if (_PR_MD_CREATE_FILE_MAP(fmap, size) == PR_SUCCESS) {
     30    return fmap;
     31  }
     32  PR_DELETE(fmap);
     33  return NULL;
     34 }
     35 
     36 PR_IMPLEMENT(PRInt32) PR_GetMemMapAlignment(void) {
     37  return _PR_MD_GET_MEM_MAP_ALIGNMENT();
     38 }
     39 
     40 PR_IMPLEMENT(void*)
     41 PR_MemMap(PRFileMap* fmap, PROffset64 offset, PRUint32 len) {
     42  return _PR_MD_MEM_MAP(fmap, offset, len);
     43 }
     44 
     45 PR_IMPLEMENT(PRStatus) PR_MemUnmap(void* addr, PRUint32 len) {
     46  return _PR_MD_MEM_UNMAP(addr, len);
     47 }
     48 
     49 PR_IMPLEMENT(PRStatus) PR_CloseFileMap(PRFileMap* fmap) {
     50  return _PR_MD_CLOSE_FILE_MAP(fmap);
     51 }
     52 
     53 PR_IMPLEMENT(PRStatus) PR_SyncMemMap(PRFileDesc* fd, void* addr, PRUint32 len) {
     54  return _PR_MD_SYNC_MEM_MAP(fd, addr, len);
     55 }