blob: 56f94fd14d1893c00156440d5923979162d495f6 [file] [log] [blame]
Alice Wang0bdc3f62023-03-15 10:46:12 +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//! Utility functions.
16
17pub(crate) const SIZE_4KB: usize = 4 << 10;
18
19/// Computes the low memory page address of the 4KiB page containing a given address.
20pub(crate) fn page_address(addr: usize) -> u64 {
21 (addr & !(SIZE_4KB - 1)).try_into().unwrap()
22}