chromium/mojo/core/ipcz_driver/shared_buffer_mapping.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifdef UNSAFE_BUFFERS_BUILD
// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
#pragma allow_unsafe_buffers
#endif

#ifndef MOJO_CORE_IPCZ_DRIVER_SHARED_BUFFER_MAPPING_H_
#define MOJO_CORE_IPCZ_DRIVER_SHARED_BUFFER_MAPPING_H_

#include <cstdint>
#include <memory>

#include "base/containers/span.h"
#include "base/memory/platform_shared_memory_region.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/shared_memory_mapping.h"
#include "mojo/core/ipcz_driver/object.h"
#include "mojo/core/system_impl_export.h"
#include "mojo/public/cpp/platform/platform_handle.h"

namespace mojo::core::ipcz_driver {

// An active memory mapping of a driver-controlled shared buffer. Note that this
// is only used to manage read/writable mappings of unsafe regions by ipcz
// internals.
class MOJO_SYSTEM_IMPL_EXPORT SharedBufferMapping
    : public Object<SharedBufferMapping> {};

}  // namespace mojo::core::ipcz_driver

#endif  // MOJO_CORE_IPCZ_DRIVER_SHARED_BUFFER_MAPPING_H_