//===-- mem_map.h -----------------------------------------------*- 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 // //===----------------------------------------------------------------------===// #ifndef SCUDO_MEM_MAP_H_ #define SCUDO_MEM_MAP_H_ #include "mem_map_base.h" #include "common.h" #include "internal_defs.h" // TODO: This is only used for `MapPlatformData`. Remove these includes when we // have all three platform specific `MemMap` and `ReservedMemory` // implementations. #include "fuchsia.h" #include "linux.h" #include "trusty.h" #include "mem_map_fuchsia.h" #include "mem_map_linux.h" namespace scudo { // This will be deprecated when every allocator has been supported by each // platform's `MemMap` implementation. class MemMapDefault final : public MemMapBase<MemMapDefault> { … }; // This will be deprecated when every allocator has been supported by each // platform's `MemMap` implementation. class ReservedMemoryDefault final : public ReservedMemory<ReservedMemoryDefault, MemMapDefault> { … }; #if SCUDO_LINUX ReservedMemoryT; MemMapT; #elif SCUDO_FUCHSIA using ReservedMemoryT = ReservedMemoryFuchsia; using MemMapT = ReservedMemoryT::MemMapT; #elif SCUDO_TRUSTY using ReservedMemoryT = ReservedMemoryDefault; using MemMapT = ReservedMemoryT::MemMapT; #else #error \ "Unsupported platform, please implement the ReservedMemory for your platform!" #endif } // namespace scudo #endif // SCUDO_MEM_MAP_H_