summaryrefslogtreecommitdiffstats
path: root/include/memory.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/memory.h')
-rw-r--r--include/memory.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/include/memory.h b/include/memory.h
index c793bb51ed..d8691972ec 100644
--- a/include/memory.h
+++ b/include/memory.h
@@ -4,11 +4,17 @@
#include <linux/types.h>
#include <linux/list.h>
+#include <linux/ioport.h>
void mem_malloc_init(void *start, void *end);
ulong mem_malloc_start(void);
ulong mem_malloc_end(void);
+static inline ulong mem_malloc_size(void)
+{
+ return mem_malloc_end() - mem_malloc_start() + 1;
+}
+
struct memory_bank {
struct list_head list;
unsigned long start;
@@ -22,9 +28,24 @@ int barebox_add_memory_bank(const char *name, resource_size_t start,
resource_size_t size);
#define for_each_memory_bank(mem) list_for_each_entry(mem, &memory_banks, list)
+#define for_each_reserved_region(mem, rsv) \
+ list_for_each_entry(rsv, &(mem)->res->children, sibling) \
+ if (((rsv)->flags & IORESOURCE_BUSY))
+
+struct resource *__request_sdram_region(const char *name, unsigned flags,
+ resource_size_t start, resource_size_t size);
+
+static inline struct resource *request_sdram_region(const char *name,
+ resource_size_t start,
+ resource_size_t size)
+{
+ /* IORESOURCE_MEM is implicit for all SDRAM regions */
+ return __request_sdram_region(name, 0, start, size);
+}
+
+struct resource *reserve_sdram_region(const char *name, resource_size_t start,
+ resource_size_t size);
-struct resource *request_sdram_region(const char *name, resource_size_t start,
- resource_size_t size);
int release_sdram_region(struct resource *res);
void memory_bank_find_space(struct memory_bank *bank, resource_size_t *retstart,