diff options
Diffstat (limited to 'lib/lmb.c')
-rw-r--r-- | lib/lmb.c | 20 |
1 files changed, 17 insertions, 3 deletions
@@ -205,9 +205,8 @@ long lmb_add(u64 base, u64 size) | |||
205 | 205 | ||
206 | } | 206 | } |
207 | 207 | ||
208 | long lmb_remove(u64 base, u64 size) | 208 | static long __lmb_remove(struct lmb_region *rgn, u64 base, u64 size) |
209 | { | 209 | { |
210 | struct lmb_region *rgn = &(lmb.memory); | ||
211 | u64 rgnbegin, rgnend; | 210 | u64 rgnbegin, rgnend; |
212 | u64 end = base + size; | 211 | u64 end = base + size; |
213 | int i; | 212 | int i; |
@@ -254,6 +253,16 @@ long lmb_remove(u64 base, u64 size) | |||
254 | return lmb_add_region(rgn, end, rgnend - end); | 253 | return lmb_add_region(rgn, end, rgnend - end); |
255 | } | 254 | } |
256 | 255 | ||
256 | long lmb_remove(u64 base, u64 size) | ||
257 | { | ||
258 | return __lmb_remove(&lmb.memory, base, size); | ||
259 | } | ||
260 | |||
261 | long __init lmb_free(u64 base, u64 size) | ||
262 | { | ||
263 | return __lmb_remove(&lmb.reserved, base, size); | ||
264 | } | ||
265 | |||
257 | long __init lmb_reserve(u64 base, u64 size) | 266 | long __init lmb_reserve(u64 base, u64 size) |
258 | { | 267 | { |
259 | struct lmb_region *_rgn = &lmb.reserved; | 268 | struct lmb_region *_rgn = &lmb.reserved; |
@@ -263,7 +272,7 @@ long __init lmb_reserve(u64 base, u64 size) | |||
263 | return lmb_add_region(_rgn, base, size); | 272 | return lmb_add_region(_rgn, base, size); |
264 | } | 273 | } |
265 | 274 | ||
266 | long __init lmb_overlaps_region(struct lmb_region *rgn, u64 base, u64 size) | 275 | long lmb_overlaps_region(struct lmb_region *rgn, u64 base, u64 size) |
267 | { | 276 | { |
268 | unsigned long i; | 277 | unsigned long i; |
269 | 278 | ||
@@ -493,6 +502,11 @@ int __init lmb_is_reserved(u64 addr) | |||
493 | return 0; | 502 | return 0; |
494 | } | 503 | } |
495 | 504 | ||
505 | int lmb_is_region_reserved(u64 base, u64 size) | ||
506 | { | ||
507 | return lmb_overlaps_region(&lmb.reserved, base, size); | ||
508 | } | ||
509 | |||
496 | /* | 510 | /* |
497 | * Given a <base, len>, find which memory regions belong to this range. | 511 | * Given a <base, len>, find which memory regions belong to this range. |
498 | * Adjust the request and return a contiguous chunk. | 512 | * Adjust the request and return a contiguous chunk. |