• Home
  • Raw
  • Download

Lines Matching full:start

11 /// Represents a range of addresses from `start` to `end`, inclusive.
19 pub start: u64, field
24 /// Creates a new `AddressRange` from `start` and `end` (inclusive) addresses.
25 pub const fn from_start_and_end(start: u64, end: u64) -> Self { in from_start_and_end()
26 AddressRange { start, end } in from_start_and_end()
29 /// Creates a new `AddressRange` from `start` extending `size` bytes.
32 pub const fn from_start_and_size(start: u64, size: u64) -> Option<Self> { in from_start_and_size()
35 } else if let Some(end) = start.checked_add(size - 1) { in from_start_and_size()
36 Some(AddressRange { start, end }) in from_start_and_size()
44 AddressRange { start: 1, end: 0 } in empty()
49 self.end < self.start in is_empty()
54 address >= self.start && address <= self.end in contains()
61 !other.is_empty() && other.start >= self.start && other.end <= self.end in contains_range()
73 let start = cmp::max(self.start, other.start); in intersect() localVariable
75 AddressRange { start, end } in intersect()
80 /// The first returned range will contain the addresses in `self` that are less than the start
86 let before = if self.start >= other.start { in non_overlapping_ranges()
89 let start = cmp::min(self.start, other.start); in non_overlapping_ranges() localVariable
91 // We know that self.start != other.start, so the maximum of the two cannot be 0, so it in non_overlapping_ranges()
93 let end = cmp::max(self.start, other.start) - 1; in non_overlapping_ranges()
98 AddressRange { start, end } in non_overlapping_ranges()
106 let start = cmp::min(self.end, other.end) + 1; in non_overlapping_ranges() localVariable
108 // For non-overlapping ranges, don't allow start to extend before self.start. in non_overlapping_ranges()
109 let start = cmp::max(start, self.start); in non_overlapping_ranges() localVariable
113 AddressRange { start, end } in non_overlapping_ranges()
124 // split_start == self.start is handled as a special case so we know that split_start - 1 is in split_at()
126 if split_start <= self.start || split_start > self.end { in split_at()
131 start: self.start, in split_at()
135 start: split_start, in split_at()
147 // Treat any range we consider "empty" (end < start) as having 0 length. in len()
151 (self.end - self.start).checked_add(1) in len()
159 f.write_fmt(format_args!("{:#x}..={:#x}", self.start, self.end)) in log()
179 start: *range.start(), in from()
187 address_range.start..=address_range.end in from()
202 // Two non-empty ranges are ordered based on `start`, and if those are equal, `end`. in cmp()
204 .start in cmp()
205 .cmp(&other.start) in cmp()
232 assert!(AddressRange { start: 1, end: 0 }.is_empty()); in is_empty()
234 start: u64::MAX, in is_empty()
239 start: u64::MAX, in is_empty()
245 assert!(!AddressRange { start: 0, end: 1 }.is_empty()); in is_empty()
246 assert!(!AddressRange { start: 1, end: 1 }.is_empty()); in is_empty()
251 assert!(AddressRange { start: 0, end: 5 }.contains(3)); in contains()
252 assert!(AddressRange { start: 0, end: 0 }.contains(0)); in contains()
254 start: 0, in contains()
260 assert!(!AddressRange { start: 5, end: 0 }.contains(3)); in contains()
265 … assert!(AddressRange { start: 0, end: 5 }.contains_range(AddressRange { start: 0, end: 5 })); in contains_range()
266 … assert!(AddressRange { start: 0, end: 5 }.contains_range(AddressRange { start: 1, end: 3 })); in contains_range()
270 !AddressRange { start: 0, end: 5 }.contains_range(AddressRange { start: 3, end: 9 }) in contains_range()
273 !AddressRange { start: 3, end: 9 }.contains_range(AddressRange { start: 0, end: 5 }) in contains_range()
278 !AddressRange { start: 0, end: 5 }.contains_range(AddressRange { start: 6, end: 9 }) in contains_range()
281 !AddressRange { start: 6, end: 9 }.contains_range(AddressRange { start: 0, end: 5 }) in contains_range()
286 !AddressRange { start: 5, end: 0 }.contains_range(AddressRange { start: 0, end: 5 }) in contains_range()
289 !AddressRange { start: 5, end: 0 }.contains_range(AddressRange { start: 5, end: 0 }) in contains_range()
292 !AddressRange { start: 5, end: 0 }.contains_range(AddressRange { start: 1, end: 3 }) in contains_range()
297 !AddressRange { start: 0, end: 5 }.contains_range(AddressRange { start: 3, end: 1 }) in contains_range()
303 start: a.0, in test_intersect()
307 start: b.0, in test_intersect()
311 start: answer.0, in test_intersect()
333 start: a.0, in test_intersect_empty()
337 start: b.0, in test_intersect_empty()
356 AddressRange { start: 0, end: 100 } in non_overlapping_ranges()
357 .non_overlapping_ranges(AddressRange { start: 0, end: 100 }), in non_overlapping_ranges()
363 AddressRange { start: 0, end: 100 } in non_overlapping_ranges()
364 .non_overlapping_ranges(AddressRange { start: 10, end: 20 }), in non_overlapping_ranges()
366 AddressRange { start: 0, end: 9 }, in non_overlapping_ranges()
368 start: 21, in non_overlapping_ranges()
376 AddressRange { start: 0, end: 100 }.non_overlapping_ranges(AddressRange { in non_overlapping_ranges()
377 start: 10, in non_overlapping_ranges()
380 (AddressRange { start: 0, end: 9 }, AddressRange::empty()) in non_overlapping_ranges()
385 AddressRange { start: 0, end: 100 } in non_overlapping_ranges()
386 .non_overlapping_ranges(AddressRange { start: 0, end: 50 }), in non_overlapping_ranges()
390 start: 51, in non_overlapping_ranges()
398 AddressRange { start: 0, end: 100 }.non_overlapping_ranges(AddressRange { in non_overlapping_ranges()
399 start: 200, in non_overlapping_ranges()
402 (AddressRange { start: 0, end: 100 }, AddressRange::empty()) in non_overlapping_ranges()
408 start: 200, in non_overlapping_ranges()
411 .non_overlapping_ranges(AddressRange { start: 0, end: 100 }), in non_overlapping_ranges()
415 start: 200, in non_overlapping_ranges()
423 AddressRange { start: 10, end: 20 } in non_overlapping_ranges()
424 .non_overlapping_ranges(AddressRange { start: 15, end: 35 }), in non_overlapping_ranges()
425 (AddressRange { start: 10, end: 14 }, AddressRange::empty()) in non_overlapping_ranges()
430 AddressRange { start: 10, end: 20 } in non_overlapping_ranges()
431 .non_overlapping_ranges(AddressRange { start: 5, end: 15 }), in non_overlapping_ranges()
432 (AddressRange::empty(), AddressRange { start: 16, end: 20 }) in non_overlapping_ranges()
439 AddressRange { start: 10, end: 20 }.split_at(15), in split_at()
441 AddressRange { start: 10, end: 14 }, in split_at()
442 AddressRange { start: 15, end: 20 } in split_at()
446 AddressRange { start: 10, end: 20 }.split_at(20), in split_at()
448 AddressRange { start: 10, end: 19 }, in split_at()
449 AddressRange { start: 20, end: 20 } in split_at()
453 AddressRange { start: 10, end: 20 }.split_at(10), in split_at()
454 (AddressRange { start: 10, end: 20 }, AddressRange::empty()) in split_at()
457 AddressRange { start: 10, end: 20 }.split_at(21), in split_at()
458 (AddressRange { start: 10, end: 20 }, AddressRange::empty()) in split_at()
461 AddressRange { start: 10, end: 20 }.split_at(9), in split_at()
462 (AddressRange { start: 10, end: 20 }, AddressRange::empty()) in split_at()
471 start: 0x100, in from_start_and_size_valid()
480 start: 0, in from_start_and_size_valid()
489 start: 1, in from_start_and_size_valid()
498 start: u64::MAX, in from_start_and_size_valid()
503 // Empty range (size = 0) with arbitrary start in from_start_and_size_valid()
530 start: 0x1234, in display()
543 start: 0x1000, in cmp()
546 start: 0x3000, in cmp()
552 start: 0x1000, in cmp()
555 start: 0x1000, in cmp()
561 start: 0x3000, in cmp()
564 start: 0x1000, in cmp()
570 start: 0x1000, in cmp()
573 start: 0x1000, in cmp()
584 start: 0x1000, in cmp_empty()
591 start: 0x1000, in cmp_empty()
595 assert!(AddressRange { start: 5, end: 3 } == AddressRange { start: 10, end: 1 }); in cmp_empty()