/* * linux/arch/unicore32/include/asm/memblock.h * * Code specific to PKUnity SoC and UniCore ISA * * Copyright (C) 2001-2010 GUAN Xue-tao * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef __UNICORE_MEMBLOCK_H__ #define __UNICORE_MEMBLOCK_H__ /* * Memory map description */ # define NR_BANKS 8 struct membank { unsigned long start; unsigned long size; unsigned int highmem; }; struct meminfo { int nr_banks; struct membank bank[NR_BANKS]; }; extern struct meminfo meminfo; #define for_each_bank(iter, mi) \ for (iter = 0; iter < (mi)->nr_banks; iter++) #define bank_pfn_start(bank) __phys_to_pfn((bank)->start) #define bank_pfn_end(bank) __phys_to_pfn((bank)->start + (bank)->size) #define bank_pfn_size(bank) ((bank)->size >> PAGE_SHIFT) #define bank_phys_start(bank) ((bank)->start) #define bank_phys_end(bank) ((bank)->start + (bank)->size) #define bank_phys_size(bank) ((bank)->size) extern void uc32_memblock_init(struct meminfo *); #endif