summaryrefslogtreecommitdiffstats
path: root/src/include/memrange.h
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2013-03-26 21:22:42 -0500
committerStefan Reinauer <stefan.reinauer@coreboot.org>2013-03-29 20:11:28 +0100
commitf6f6e13c46a4320f03fdf1286e37e05a8d047e56 (patch)
tree318cf14f97202dea0b94474701f03599642e92b3 /src/include/memrange.h
parente63d5d83e438ac3710f68f9cddddd5f1e294dbf6 (diff)
downloadcoreboot-f6f6e13c46a4320f03fdf1286e37e05a8d047e56.tar.gz
coreboot-f6f6e13c46a4320f03fdf1286e37e05a8d047e56.tar.bz2
coreboot-f6f6e13c46a4320f03fdf1286e37e05a8d047e56.zip
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>
Diffstat (limited to 'src/include/memrange.h')
-rw-r--r--src/include/memrange.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/include/memrange.h b/src/include/memrange.h
index 23dae6a30ac5..0e69b2ffebe4 100644
--- a/src/include/memrange.h
+++ b/src/include/memrange.h
@@ -61,6 +61,12 @@ static inline unsigned long range_entry_tag(const struct range_entry *r)
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
* be deleted while processing each entry as the list cannot be safely
* traversed after such an operation.
@@ -104,4 +110,7 @@ void memranges_create_hole(struct memranges *ranges,
void memranges_insert(struct memranges *ranges,
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_ */