|
@@ -867,6 +867,16 @@ int __init_memblock memblock_is_memory(phys_addr_t addr)
|
|
|
return memblock_search(&memblock.memory, addr) != -1;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * memblock_is_region_memory - check if a region is a subset of memory
|
|
|
+ * @base: base of region to check
|
|
|
+ * @size: size of region to check
|
|
|
+ *
|
|
|
+ * Check if the region [@base, @base+@size) is a subset of a memory block.
|
|
|
+ *
|
|
|
+ * RETURNS:
|
|
|
+ * 0 if false, non-zero if true
|
|
|
+ */
|
|
|
int __init_memblock memblock_is_region_memory(phys_addr_t base, phys_addr_t size)
|
|
|
{
|
|
|
int idx = memblock_search(&memblock.memory, base);
|
|
@@ -879,6 +889,16 @@ int __init_memblock memblock_is_region_memory(phys_addr_t base, phys_addr_t size
|
|
|
memblock.memory.regions[idx].size) >= end;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * memblock_is_region_reserved - check if a region intersects reserved memory
|
|
|
+ * @base: base of region to check
|
|
|
+ * @size: size of region to check
|
|
|
+ *
|
|
|
+ * Check if the region [@base, @base+@size) intersects a reserved memory block.
|
|
|
+ *
|
|
|
+ * RETURNS:
|
|
|
+ * 0 if false, non-zero if true
|
|
|
+ */
|
|
|
int __init_memblock memblock_is_region_reserved(phys_addr_t base, phys_addr_t size)
|
|
|
{
|
|
|
memblock_cap_size(base, &size);
|