@@ -182,12 +182,10 @@ impl Page<Size1GiB> {
182
182
p4_index : PageTableIndex ,
183
183
p3_index : PageTableIndex ,
184
184
) -> Self {
185
- use bit_field:: BitField ;
186
-
187
185
let mut addr = 0 ;
188
- addr. set_bits ( 39 .. 48 , u64:: from ( p4_index) ) ;
189
- addr. set_bits ( 30 .. 39 , u64:: from ( p3_index) ) ;
190
- Page :: containing_address ( VirtAddr :: new ( addr) )
186
+ addr |= u64:: from ( p4_index) << 39 ;
187
+ addr |= u64:: from ( p3_index) << 30 ;
188
+ Page :: containing_address ( VirtAddr :: new_truncate ( addr) )
191
189
}
192
190
}
193
191
@@ -199,13 +197,11 @@ impl Page<Size2MiB> {
199
197
p3_index : PageTableIndex ,
200
198
p2_index : PageTableIndex ,
201
199
) -> Self {
202
- use bit_field:: BitField ;
203
-
204
200
let mut addr = 0 ;
205
- addr. set_bits ( 39 .. 48 , u64:: from ( p4_index) ) ;
206
- addr. set_bits ( 30 .. 39 , u64:: from ( p3_index) ) ;
207
- addr. set_bits ( 21 .. 30 , u64:: from ( p2_index) ) ;
208
- Page :: containing_address ( VirtAddr :: new ( addr) )
201
+ addr |= u64:: from ( p4_index) << 39 ;
202
+ addr |= u64:: from ( p3_index) << 30 ;
203
+ addr |= u64:: from ( p2_index) << 21 ;
204
+ Page :: containing_address ( VirtAddr :: new_truncate ( addr) )
209
205
}
210
206
}
211
207
@@ -218,14 +214,12 @@ impl Page<Size4KiB> {
218
214
p2_index : PageTableIndex ,
219
215
p1_index : PageTableIndex ,
220
216
) -> Self {
221
- use bit_field:: BitField ;
222
-
223
217
let mut addr = 0 ;
224
- addr. set_bits ( 39 .. 48 , u64:: from ( p4_index) ) ;
225
- addr. set_bits ( 30 .. 39 , u64:: from ( p3_index) ) ;
226
- addr. set_bits ( 21 .. 30 , u64:: from ( p2_index) ) ;
227
- addr. set_bits ( 12 .. 21 , u64:: from ( p1_index) ) ;
228
- Page :: containing_address ( VirtAddr :: new ( addr) )
218
+ addr |= u64:: from ( p4_index) << 39 ;
219
+ addr |= u64:: from ( p3_index) << 30 ;
220
+ addr |= u64:: from ( p2_index) << 21 ;
221
+ addr |= u64:: from ( p1_index) << 12 ;
222
+ Page :: containing_address ( VirtAddr :: new_truncate ( addr) )
229
223
}
230
224
231
225
/// Returns the level 1 page table index of this page.
0 commit comments