blob: 145f7664128b0018ac48e7257fc37ee989a93942 [file] [log] [blame]
Alice Wang4dd20932023-05-26 13:47:16 +00001// Copyright 2023, The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! Memory management.
16
17mod dbm;
Alice Wang110476e2023-06-07 13:12:21 +000018mod error;
Pierre-Clément Tosi3d4c5c32023-05-31 16:57:06 +000019mod page_table;
Alice Wangf47b2342023-06-02 11:51:57 +000020mod shared;
Pierre-Clément Tosi90dfd692024-10-30 19:36:46 +000021mod tracker;
Alice Wangf47b2342023-06-02 11:51:57 +000022mod util;
Alice Wang4dd20932023-05-26 13:47:16 +000023
Alice Wang110476e2023-06-07 13:12:21 +000024pub use error::MemoryTrackerError;
Alice Wangb73a81b2023-06-07 13:05:09 +000025pub use page_table::PageTable;
Pierre-Clément Tosi90dfd692024-10-30 19:36:46 +000026pub use shared::MemoryRange;
Pierre-Clément Tosic26e2202024-11-01 23:12:23 +000027pub use tracker::{
28 deactivate_dynamic_page_tables, init_shared_pool, map_data, map_device, map_image_footer,
29 map_rodata, map_rodata_outside_main_memory, resize_available_memory,
30 switch_to_dynamic_page_tables, unshare_all_memory, unshare_all_mmio_except_uart, unshare_uart,
31};
Alice Wang3fa9b802023-06-06 07:52:31 +000032pub use util::{
Pierre-Clément Tosi8ab7c372024-10-30 20:46:04 +000033 flush, flushed_zeroize, page_4kb_of, PAGE_SIZE, SIZE_128KB, SIZE_16KB, SIZE_2MB, SIZE_4KB,
34 SIZE_4MB, SIZE_64KB,
Alice Wang3fa9b802023-06-06 07:52:31 +000035};
Alice Wang6c4cda02023-07-18 08:18:07 +000036
37pub(crate) use shared::{alloc_shared, dealloc_shared};
Pierre-Clément Tosic26e2202024-11-01 23:12:23 +000038pub(crate) use tracker::MEMORY;
Alice Wang6c4cda02023-07-18 08:18:07 +000039pub(crate) use util::{phys_to_virt, virt_to_phys};