diff options
Diffstat (limited to 'include/memory.h')
-rw-r--r-- | include/memory.h | 25 |
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, |