kboot: space_avail -- how much space exists from 'start' to end of segment
Sponsored by: Netflix Reviewed by: tsoome Differential Revision: https://reviews.freebsd.org/D38313
This commit is contained in:
parent
33e5b27254
commit
81fbd74a4b
@ -44,6 +44,7 @@ void remove_avail(uint64_t start, uint64_t end, uint64_t type);
|
||||
uint64_t first_avail(uint64_t align, uint64_t min_size, uint64_t type);
|
||||
void print_avail(void);
|
||||
bool populate_avail_from_iomem(void);
|
||||
uint64_t space_avail(uint64_t start);
|
||||
|
||||
/* util.c */
|
||||
bool file2str(const char *fn, char *buffer, size_t buflen);
|
||||
|
@ -344,3 +344,22 @@ populate_avail_from_iomem(void)
|
||||
close(fd);
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the amount of space available in the segment that @start@ lives in,
|
||||
* from @start@ to the end of the segment.
|
||||
*/
|
||||
uint64_t
|
||||
space_avail(uint64_t start)
|
||||
{
|
||||
for (int i = 0; i < nr_seg; i++) {
|
||||
if (start >= segs[i].start && start <= segs[i].end)
|
||||
return segs[i].end - start;
|
||||
}
|
||||
|
||||
/*
|
||||
* Properly used, we should never get here. Unsure if this should be a
|
||||
* panic or not.
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user