rutabaga_gfx/rutabaga_os/
memory_mapping.rs

1// Copyright 2023 The ChromiumOS Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5use crate::rutabaga_os::sys::platform::MemoryMapping as PlatformMapping;
6use crate::rutabaga_os::SafeDescriptor;
7use crate::rutabaga_utils::RutabagaMapping;
8use crate::rutabaga_utils::RutabagaResult;
9
10pub struct MemoryMapping {
11    mapping: PlatformMapping,
12}
13
14impl MemoryMapping {
15    pub fn from_safe_descriptor(
16        descriptor: SafeDescriptor,
17        size: usize,
18        map_info: u32,
19    ) -> RutabagaResult<MemoryMapping> {
20        let mapping = PlatformMapping::from_safe_descriptor(descriptor, size, map_info)?;
21        Ok(MemoryMapping { mapping })
22    }
23
24    pub fn as_rutabaga_mapping(&self) -> RutabagaMapping {
25        RutabagaMapping {
26            ptr: self.mapping.addr as u64,
27            size: self.mapping.size as u64,
28        }
29    }
30}