1pub const LOG_BYTES_IN_BYTE: u8 = 0;
3pub const BYTES_IN_BYTE: usize = 1;
5pub const LOG_BITS_IN_BYTE: u8 = 3;
7pub const BITS_IN_BYTE: usize = 1 << LOG_BITS_IN_BYTE;
9
10pub const LOG_BYTES_IN_GBYTE: u8 = 30;
12pub const BYTES_IN_GBYTE: usize = 1 << LOG_BYTES_IN_GBYTE;
14
15pub const LOG_BYTES_IN_MBYTE: u8 = 20;
17pub const BYTES_IN_MBYTE: usize = 1 << LOG_BYTES_IN_MBYTE;
19
20pub const LOG_BYTES_IN_KBYTE: u8 = 10;
22pub const BYTES_IN_KBYTE: usize = 1 << LOG_BYTES_IN_KBYTE;
24
25mod card_scanning {
28 use crate::util::alloc::embedded_meta_data::LOG_BYTES_IN_REGION;
29
30 pub const SUPPORT_CARD_SCANNING: bool = false;
31 pub const LOG_CARD_META_SIZE: usize = 2;
33 pub const LOG_CARD_UNITS: usize = 10;
35 pub const LOG_CARD_GRAIN: usize = 0;
37 pub const LOG_CARD_BYTES: usize = LOG_CARD_UNITS + LOG_CARD_GRAIN;
38 pub const LOG_CARD_META_BYTES: usize =
39 LOG_BYTES_IN_REGION - LOG_CARD_BYTES + LOG_CARD_META_SIZE;
40 pub const LOG_CARD_META_PAGES: usize = LOG_CARD_META_BYTES - super::LOG_BYTES_IN_PAGE as usize;
41 pub const CARD_META_PAGES_PER_REGION: usize = if SUPPORT_CARD_SCANNING {
43 1 << LOG_CARD_META_PAGES
44 } else {
45 0
46 };
47 pub const CARD_MASK: usize = (1 << LOG_CARD_BYTES) - 1;
48}
49pub(crate) use card_scanning::*;
50
51pub(crate) const LAZY_SWEEP: bool = true;
55
56mod java_specific_constants {
59 use super::LOG_BITS_IN_BYTE;
60
61 pub const LOG_BYTES_IN_CHAR: u8 = 1;
62 pub const BYTES_IN_CHAR: usize = 1 << LOG_BYTES_IN_CHAR;
63 pub const LOG_BITS_IN_CHAR: u8 = LOG_BITS_IN_BYTE + LOG_BYTES_IN_CHAR;
64 pub const BITS_IN_CHAR: usize = 1 << LOG_BITS_IN_CHAR;
65
66 pub const LOG_BYTES_IN_SHORT: u8 = 1;
67 pub const BYTES_IN_SHORT: usize = 1 << LOG_BYTES_IN_SHORT;
68 pub const LOG_BITS_IN_SHORT: u8 = LOG_BITS_IN_BYTE + LOG_BYTES_IN_SHORT;
69 pub const BITS_IN_SHORT: usize = 1 << LOG_BITS_IN_SHORT;
70
71 pub const LOG_BYTES_IN_INT: u8 = 2;
72 pub const BYTES_IN_INT: usize = 1 << LOG_BYTES_IN_INT;
73 pub const LOG_BITS_IN_INT: u8 = LOG_BITS_IN_BYTE + LOG_BYTES_IN_INT;
74 pub const BITS_IN_INT: usize = 1 << LOG_BITS_IN_INT;
75
76 pub const LOG_BYTES_IN_LONG: u8 = 3;
77 pub const BYTES_IN_LONG: usize = 1 << LOG_BYTES_IN_LONG;
78 pub const LOG_BITS_IN_LONG: u8 = LOG_BITS_IN_BYTE + LOG_BYTES_IN_LONG;
79 pub const BITS_IN_LONG: usize = 1 << LOG_BITS_IN_LONG;
80
81 pub const MAX_INT: usize = i32::MAX as usize; pub const MIN_INT: usize = i32::MIN as u32 as usize; }
84pub(crate) use java_specific_constants::*;
85
86#[cfg(target_pointer_width = "32")]
87pub const LOG_BYTES_IN_ADDRESS: u8 = 2;
89#[cfg(target_pointer_width = "64")]
90pub const LOG_BYTES_IN_ADDRESS: u8 = 3;
92pub const BYTES_IN_ADDRESS: usize = 1 << LOG_BYTES_IN_ADDRESS;
94pub const LOG_BITS_IN_ADDRESS: usize = LOG_BITS_IN_BYTE as usize + LOG_BYTES_IN_ADDRESS as usize;
96pub const BITS_IN_ADDRESS: usize = 1 << LOG_BITS_IN_ADDRESS;
98
99pub const LOG_BYTES_IN_WORD: u8 = LOG_BYTES_IN_ADDRESS;
101pub const BYTES_IN_WORD: usize = 1 << LOG_BYTES_IN_WORD;
103pub const LOG_BITS_IN_WORD: usize = LOG_BITS_IN_BYTE as usize + LOG_BYTES_IN_WORD as usize;
105pub const BITS_IN_WORD: usize = 1 << LOG_BITS_IN_WORD;
107
108pub const LOG_BYTES_IN_PAGE: u8 = 12;
110pub const BYTES_IN_PAGE: usize = 1 << LOG_BYTES_IN_PAGE;
112pub const LOG_BITS_IN_PAGE: usize = LOG_BITS_IN_BYTE as usize + LOG_BYTES_IN_PAGE as usize;
114pub const BITS_IN_PAGE: usize = 1 << LOG_BITS_IN_PAGE;
116
117pub const LOG_BYTES_IN_ADDRESS_SPACE: u8 = BITS_IN_ADDRESS as u8;
119
120pub const LOG_MIN_OBJECT_SIZE: u8 = LOG_BYTES_IN_WORD;
123pub const MIN_OBJECT_SIZE: usize = 1 << LOG_MIN_OBJECT_SIZE;