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);
|
uint64_t first_avail(uint64_t align, uint64_t min_size, uint64_t type);
|
||||||
void print_avail(void);
|
void print_avail(void);
|
||||||
bool populate_avail_from_iomem(void);
|
bool populate_avail_from_iomem(void);
|
||||||
|
uint64_t space_avail(uint64_t start);
|
||||||
|
|
||||||
/* util.c */
|
/* util.c */
|
||||||
bool file2str(const char *fn, char *buffer, size_t buflen);
|
bool file2str(const char *fn, char *buffer, size_t buflen);
|
||||||
|
|
|
@ -344,3 +344,22 @@ out:
|
||||||
close(fd);
|
close(fd);
|
||||||
return true;
|
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