13cab2bb3Spatrick //===-- common.cpp ----------------------------------------------*- C++ -*-===// 23cab2bb3Spatrick // 33cab2bb3Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 43cab2bb3Spatrick // See https://llvm.org/LICENSE.txt for license information. 53cab2bb3Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 63cab2bb3Spatrick // 73cab2bb3Spatrick //===----------------------------------------------------------------------===// 83cab2bb3Spatrick 93cab2bb3Spatrick #include "common.h" 103cab2bb3Spatrick #include "atomic_helpers.h" 11d89ec533Spatrick #include "string_utils.h" 123cab2bb3Spatrick 133cab2bb3Spatrick namespace scudo { 143cab2bb3Spatrick 153cab2bb3Spatrick uptr PageSizeCached; 163cab2bb3Spatrick uptr getPageSize(); 173cab2bb3Spatrick getPageSizeSlow()183cab2bb3Spatrickuptr getPageSizeSlow() { 193cab2bb3Spatrick PageSizeCached = getPageSize(); 203cab2bb3Spatrick CHECK_NE(PageSizeCached, 0); 213cab2bb3Spatrick return PageSizeCached; 223cab2bb3Spatrick } 233cab2bb3Spatrick 243cab2bb3Spatrick // Fatal internal map() or unmap() error (potentially OOM related). dieOnMapUnmapError(uptr SizeIfOOM)25d89ec533Spatrickvoid NORETURN dieOnMapUnmapError(uptr SizeIfOOM) { 26d89ec533Spatrick char Error[128] = "Scudo ERROR: internal map or unmap failure\n"; 27d89ec533Spatrick if (SizeIfOOM) { 28d89ec533Spatrick formatString( 29d89ec533Spatrick Error, sizeof(Error), 30d89ec533Spatrick "Scudo ERROR: internal map failure (NO MEMORY) requesting %zuKB\n", 31d89ec533Spatrick SizeIfOOM >> 10); 32d89ec533Spatrick } 33d89ec533Spatrick outputRaw(Error); 34d89ec533Spatrick setAbortMessage(Error); 353cab2bb3Spatrick die(); 363cab2bb3Spatrick } 373cab2bb3Spatrick 38*810390e3Srobert #if !SCUDO_LINUX GetRSS()39*810390e3Srobertuptr GetRSS() { return 0; } 40*810390e3Srobert #endif 41*810390e3Srobert 423cab2bb3Spatrick } // namespace scudo 43