Lines Matching refs:memblock

18 #include <linux/memblock.h>
37 * DOC: memblock overview
60 * wrapped with struct memblock. This structure is statically
70 * The early architecture setup should tell memblock what the physical
78 * Once memblock is setup the memory can be allocated using one of the
95 * memblock data structures (except "physmem") will be discarded after the
115 struct memblock memblock __initdata_memblock = {
140 * keep a pointer to &memblock.memory in the text section to use it in
142 * For architectures that do not keep memblock data after init, this
145 static __refdata struct memblock_type *memblock_memory = &memblock.memory;
301 end = memblock.current_limit;
375 if (memblock.reserved.regions != memblock_reserved_init_regions) {
376 addr = __pa(memblock.reserved.regions);
378 memblock.reserved.max);
380 kfree(memblock.reserved.regions);
385 if (memblock.memory.regions != memblock_memory_init_regions) {
386 addr = __pa(memblock.memory.regions);
388 memblock.memory.max);
390 kfree(memblock.memory.regions);
400 * memblock_double_array - double the size of the memblock regions array
401 * @type: memblock type of the regions array being doubled
405 * Double the size of the @type regions array. If memblock is being used to
428 panic("memblock: cannot resize %s array\n", type->name);
441 if (type == &memblock.memory)
452 if (type != &memblock.reserved)
456 memblock.current_limit,
460 min(new_area_start, memblock.current_limit),
466 pr_err("memblock: Failed to double %s array from %ld to %ld entries !\n",
472 memblock_dbg("memblock: %s is doubled to %ld at [%pa-%pa]",
494 * Reserve the new array if that comes from the memblock. Otherwise, we
508 * @type: memblock type to scan
543 * memblock_insert_region - insert new memblock region
544 * @type: memblock type to insert into
551 * Insert new memblock region [@base, @base + @size) into @type at @idx.
573 * memblock_add_range - add new memblock region
574 * @type: memblock type to add new region into
580 * Add new memblock region [@base, @base + @size) into @type. The new region
694 * memblock_add_node - add new memblock region within a NUMA node
700 * Add new memblock region [@base, @base + @size) to the "memory"
714 return memblock_add_range(&memblock.memory, base, size, nid, flags);
718 * memblock_add - add new memblock region
722 * Add new memblock region [@base, @base + @size) to the "memory"
735 return memblock_add_range(&memblock.memory, base, size, MAX_NUMNODES, 0);
774 * @type: memblock type to isolate range for
870 return memblock_remove_range(&memblock.memory, base, size);
903 return memblock_remove_range(&memblock.reserved, base, size);
913 return memblock_add_range(&memblock.reserved, base, size, MAX_NUMNODES, 0);
930 * @type: memblock type to set/clear flag for
971 return memblock_setclr_flag(&memblock.memory, base, size, 1, MEMBLOCK_HOTPLUG);
983 return memblock_setclr_flag(&memblock.memory, base, size, 0, MEMBLOCK_HOTPLUG);
1000 return memblock_setclr_flag(&memblock.memory, base, size, 1, MEMBLOCK_MIRROR);
1014 * memblock, the caller must inform kmemleak to ignore that memory
1020 return memblock_setclr_flag(&memblock.memory, base, size, 1, MEMBLOCK_NOMAP);
1032 return memblock_setclr_flag(&memblock.memory, base, size, 0, MEMBLOCK_NOMAP);
1049 return memblock_setclr_flag(&memblock.reserved, base, size, 1,
1059 /* we never skip regions when iterating memblock.reserved or physmem */
1296 struct memblock_type *type = &memblock.memory;
1323 * memblock_set_node - set node ID on memblock regions
1326 * @type: memblock type to set node ID for
1329 * Set the nid of memblock @type regions in [@base, @base + @size) to @nid.
1378 &memblock.memory, &memblock.reserved,
1405 &memblock.memory, &memblock.reserved,
1428 * memblock.current_limit if @end == %MEMBLOCK_ALLOC_ACCESSIBLE.
1581 * this moment memblock may be deinitialized already and its
1587 if (max_addr > memblock.current_limit)
1588 max_addr = memblock.current_limit;
1613 * allocate only from memory limited by memblock.current_limit value
1644 * allocate only from memory limited by memblock.current_limit value
1675 * allocate only from memory limited by memblock.current_limit value
1707 * This is only useful when the memblock allocator has already been torn
1734 return memblock.memory.total_size;
1739 return memblock.reserved.total_size;
1745 return memblock.memory.regions[0].base;
1750 int idx = memblock.memory.cnt - 1;
1752 return (memblock.memory.regions[idx].base + memblock.memory.regions[idx].size);
1762 * the memory memblock regions, if the @limit exceeds the total size
1790 memblock_remove_range(&memblock.memory, max_addr,
1792 memblock_remove_range(&memblock.reserved, max_addr,
1809 ret = memblock_isolate_range(&memblock.memory, base, size,
1815 for (i = memblock.memory.cnt - 1; i >= end_rgn; i--)
1816 if (!memblock_is_nomap(&memblock.memory.regions[i]))
1817 memblock_remove_region(&memblock.memory, i);
1820 if (!memblock_is_nomap(&memblock.memory.regions[i]))
1821 memblock_remove_region(&memblock.memory, i);
1824 memblock_remove_range(&memblock.reserved, 0, base);
1825 memblock_remove_range(&memblock.reserved,
1865 return memblock_search(&memblock.reserved, addr) != -1;
1870 return memblock_search(&memblock.memory, addr) != -1;
1875 int i = memblock_search(&memblock.memory, addr);
1879 return !memblock_is_nomap(&memblock.memory.regions[i]);
1885 struct memblock_type *type = &memblock.memory;
1909 int idx = memblock_search(&memblock.memory, base);
1914 return (memblock.memory.regions[idx].base +
1915 memblock.memory.regions[idx].size) >= end;
1931 return memblock_overlaps_region(&memblock.reserved, base, size);
1952 memblock_remove_region(&memblock.memory,
1953 r - memblock.memory.regions);
1961 memblock.current_limit = limit;
1966 return memblock.current_limit;
1999 &memblock.memory.total_size,
2000 &memblock.reserved.total_size);
2002 memblock_dump(&memblock.memory);
2003 memblock_dump(&memblock.reserved);
2026 early_param("memblock", early_memblock);
2167 memblock_set_node(start, end, &memblock.reserved, nid);
2294 struct dentry *root = debugfs_create_dir("memblock", NULL);
2297 &memblock.memory, &memblock_debug_fops);
2299 &memblock.reserved, &memblock_debug_fops);