1#![cfg_attr(not(test), no_std)]
2
3include!(concat!(env!("OUT_DIR"), "/constant.rs"));
4
5pub const SZ_1G: usize = 1024 * SZ_1M;
6pub const SZ_2G: usize = 2 * SZ_1G;
7pub const SZ_1M: usize = 1024 * 1024;
8pub const SZ_2M: usize = 2 * SZ_1M;
9pub const SZ_8M: usize = 8 * SZ_1M;
10pub const SZ_16M: usize = 16 * SZ_1M;
11
12pub const PAGE_SIZE: usize = 1usize << PAGE_SHIFT;
13
14const MODULES_VADDR: usize = _page_end(PG_VA_BITS);
15const MODULES_VSIZE: usize = (1usize << PG_VA_BITS) / 0x10 * 0x8;
16
17pub const KIMAGE_VADDR: usize = MODULES_VADDR + MODULES_VSIZE;
18
19const fn _page_offset(va: usize) -> usize {
20 !((1usize << va) - 1)
21}
22
23const fn _page_end(va: usize) -> usize {
24 !((1usize << va) - 1)
25}
26
27#[cfg(test)]
28mod tests {
29 use super::*;
30
31 #[test]
32 fn it_works() {
33 let result = add(2, 2);
34 assert_eq!(result, 4);
35 }
36}