blob: 00b0400b163759d4f54ed9ee451c9f5b33693ee0 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "gpu_mapping.h"
#include "msd_arm_buffer.h"
GpuMapping::GpuMapping(uint64_t addr, uint64_t page_offset, uint64_t size, uint64_t flags,
Owner* owner, std::shared_ptr<MsdArmBuffer> buffer)
: addr_(addr), page_offset_(page_offset), size_(size), flags_(flags), owner_(owner),
buffer_(buffer)
{
buffer->AddMapping(this);
}
GpuMapping::~GpuMapping()
{
auto buffer = buffer_.lock();
if (buffer)
buffer->RemoveMapping(this);
}
std::weak_ptr<MsdArmBuffer> GpuMapping::buffer() const { return buffer_; }