memrange: add 2 new range_entry routines
Two convenience functions are added to operate on a range_entry: - range_entry_update_tag() - update the entry's tag - memranges_next_entry() - get the next entry after the one provide These functions will be used by a follow on patch to the MTRR code to allow hole punching in WB region when the default MTRR type is UC. Change-Id: I3c2be19c8ea1bbbdf7736c867e4a2aa82df2d611 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/2924 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
e63d5d83e4
commit
f6f6e13c46
|
@ -61,6 +61,12 @@ static inline unsigned long range_entry_tag(const struct range_entry *r)
|
||||||
return r->tag;
|
return r->tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void range_entry_update_tag(struct range_entry *r,
|
||||||
|
unsigned long new_tag)
|
||||||
|
{
|
||||||
|
r->tag = new_tag;
|
||||||
|
}
|
||||||
|
|
||||||
/* Iterate over each entry in a memranges structure. Ranges cannot
|
/* Iterate over each entry in a memranges structure. Ranges cannot
|
||||||
* be deleted while processing each entry as the list cannot be safely
|
* be deleted while processing each entry as the list cannot be safely
|
||||||
* traversed after such an operation.
|
* traversed after such an operation.
|
||||||
|
@ -104,4 +110,7 @@ void memranges_create_hole(struct memranges *ranges,
|
||||||
void memranges_insert(struct memranges *ranges,
|
void memranges_insert(struct memranges *ranges,
|
||||||
resource_t base, resource_t size, unsigned long tag);
|
resource_t base, resource_t size, unsigned long tag);
|
||||||
|
|
||||||
|
/* Returns next entry after the provided entry. NULL if r is last. */
|
||||||
|
struct range_entry *memranges_next_entry(struct memranges *ranges,
|
||||||
|
const struct range_entry *r);
|
||||||
#endif /* MEMRANGE_H_ */
|
#endif /* MEMRANGE_H_ */
|
||||||
|
|
|
@ -321,3 +321,9 @@ void memranges_fill_holes_up_to(struct memranges *ranges,
|
||||||
/* Merge all entries that were newly added. */
|
/* Merge all entries that were newly added. */
|
||||||
merge_neighbor_entries(ranges);
|
merge_neighbor_entries(ranges);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct range_entry *memranges_next_entry(struct memranges *ranges,
|
||||||
|
const struct range_entry *r)
|
||||||
|
{
|
||||||
|
return r->next;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue