//===-- sanitizer_local_address_space_view.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 // //===----------------------------------------------------------------------===// // // `LocalAddressSpaceView` provides the local (i.e. target and current address // space are the same) implementation of the `AddressSpaceView` interface which // provides a simple interface to load memory from another process (i.e. // out-of-process) // // The `AddressSpaceView` interface requires that the type can be used as a // template parameter to objects that wish to be able to operate in an // out-of-process manner. In normal usage, objects are in-process and are thus // instantiated with the `LocalAddressSpaceView` type. This type is used to // load any pointers in instance methods. This implementation is effectively // a no-op. When an object is to be used in an out-of-process manner it is // instantiated with the `RemoteAddressSpaceView` type. // // By making `AddressSpaceView` a template parameter of an object, it can // change its implementation at compile time which has no run time overhead. // This also allows unifying in-process and out-of-process code which avoids // code duplication. // //===----------------------------------------------------------------------===// #ifndef SANITIZER_LOCAL_ADDRES_SPACE_VIEW_H #define SANITIZER_LOCAL_ADDRES_SPACE_VIEW_H namespace __sanitizer { struct LocalAddressSpaceView { … }; } // namespace __sanitizer #endif