| //===-- common.cpp ----------------------------------------------*- C++ -*-===// | 
 | // | 
 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
 | // See https://llvm.org/LICENSE.txt for license information. | 
 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 |  | 
 | #include "common.h" | 
 | #include "atomic_helpers.h" | 
 | #include "string_utils.h" | 
 |  | 
 | namespace scudo { | 
 |  | 
 | uptr PageSizeCached; | 
 | uptr getPageSize(); | 
 |  | 
 | uptr getPageSizeSlow() { | 
 |   PageSizeCached = getPageSize(); | 
 |   CHECK_NE(PageSizeCached, 0); | 
 |   return PageSizeCached; | 
 | } | 
 |  | 
 | // Fatal internal map() or unmap() error (potentially OOM related). | 
 | void NORETURN dieOnMapUnmapError(uptr SizeIfOOM) { | 
 |   char Error[128] = "Scudo ERROR: internal map or unmap failure\n"; | 
 |   if (SizeIfOOM) { | 
 |     formatString( | 
 |         Error, sizeof(Error), | 
 |         "Scudo ERROR: internal map failure (NO MEMORY) requesting %zuKB\n", | 
 |         SizeIfOOM >> 10); | 
 |   } | 
 |   outputRaw(Error); | 
 |   setAbortMessage(Error); | 
 |   die(); | 
 | } | 
 |  | 
 | #if !SCUDO_LINUX | 
 | uptr GetRSS() { return 0; } | 
 | #endif | 
 |  | 
 | } // namespace scudo |