Lines Matching +full:align +full:- +full:size

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
28 * enum memblock_flags - definition of memory region attributes
30 * @MEMBLOCK_HOTPLUG: memory region indicated in the firmware-provided memory
40 * via a driver, and never indicated in the firmware-provided memory map as
56 * struct memblock_region - represents a memory region
58 * @size: size of the region
64 phys_addr_t size; member
72 * struct memblock_type - collection of memory regions of certain type
74 * @max: size of the allocated array
75 * @total_size: size of all regions
88 * struct memblock - memblock allocator metadata
114 int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid,
116 int memblock_add(phys_addr_t base, phys_addr_t size);
117 int memblock_remove(phys_addr_t base, phys_addr_t size);
118 int memblock_phys_free(phys_addr_t base, phys_addr_t size);
119 int memblock_reserve(phys_addr_t base, phys_addr_t size);
121 int memblock_physmem_add(phys_addr_t base, phys_addr_t size);
123 void memblock_trim_memory(phys_addr_t align);
127 phys_addr_t base, phys_addr_t size);
129 int memblock_mark_hotplug(phys_addr_t base, phys_addr_t size);
130 int memblock_clear_hotplug(phys_addr_t base, phys_addr_t size);
131 int memblock_mark_mirror(phys_addr_t base, phys_addr_t size);
132 int memblock_mark_nomap(phys_addr_t base, phys_addr_t size);
133 int memblock_clear_nomap(phys_addr_t base, phys_addr_t size);
134 int memblock_reserved_mark_noinit(phys_addr_t base, phys_addr_t size);
137 void memblock_free(void *ptr, size_t size);
151 void memblock_free_late(phys_addr_t base, phys_addr_t size);
165 * for_each_physmem_range - iterate through physmem areas not included in type.
178 * __for_each_mem_range - iterate through memblock areas from type_a and not
198 * __for_each_mem_range_rev - reverse iterate through memblock areas from
219 * for_each_mem_range - iterate through memory areas.
230 * for_each_mem_range_rev - reverse iterate through memblock areas from
242 * for_each_reserved_mem_range - iterate over all reserved memblock areas
256 return m->flags & MEMBLOCK_HOTPLUG; in memblock_is_hotpluggable()
261 return m->flags & MEMBLOCK_MIRROR; in memblock_is_mirror()
266 return m->flags & MEMBLOCK_NOMAP; in memblock_is_nomap()
271 return m->flags & MEMBLOCK_RSRV_NOINIT; in memblock_is_reserved_noinit()
276 return m->flags & MEMBLOCK_DRIVER_MANAGED; in memblock_is_driver_managed()
285 * for_each_mem_pfn_range - early memory pfn range iterator
295 for (i = -1, __next_mem_pfn_range(&i, nid, p_start, p_end, p_nid); \
304 * for_each_free_mem_pfn_range_in_zone_from - iterate through zone specific
322 * for_each_free_mem_range - iterate through free memblock areas
338 * for_each_free_mem_range_reverse - rev-iterate through free memblock areas
354 int memblock_set_node(phys_addr_t base, phys_addr_t size,
360 r->nid = nid; in memblock_set_region_node()
365 return r->nid; in memblock_get_region_node()
394 phys_addr_t memblock_phys_alloc_range(phys_addr_t size, phys_addr_t align,
396 phys_addr_t memblock_alloc_range_nid(phys_addr_t size,
397 phys_addr_t align, phys_addr_t start,
399 phys_addr_t memblock_phys_alloc_try_nid(phys_addr_t size, phys_addr_t align, int nid);
401 static __always_inline phys_addr_t memblock_phys_alloc(phys_addr_t size, in memblock_phys_alloc() argument
402 phys_addr_t align) in memblock_phys_alloc() argument
404 return memblock_phys_alloc_range(size, align, 0, in memblock_phys_alloc()
408 void *memblock_alloc_exact_nid_raw(phys_addr_t size, phys_addr_t align,
411 void *memblock_alloc_try_nid_raw(phys_addr_t size, phys_addr_t align,
414 void *memblock_alloc_try_nid(phys_addr_t size, phys_addr_t align,
418 static __always_inline void *memblock_alloc(phys_addr_t size, phys_addr_t align) in memblock_alloc() argument
420 return memblock_alloc_try_nid(size, align, MEMBLOCK_LOW_LIMIT, in memblock_alloc()
424 void *__memblock_alloc_or_panic(phys_addr_t size, phys_addr_t align,
427 #define memblock_alloc_or_panic(size, align) \ argument
428 __memblock_alloc_or_panic(size, align, __func__)
430 static inline void *memblock_alloc_raw(phys_addr_t size, in memblock_alloc_raw() argument
431 phys_addr_t align) in memblock_alloc_raw() argument
433 return memblock_alloc_try_nid_raw(size, align, MEMBLOCK_LOW_LIMIT, in memblock_alloc_raw()
438 static inline void *memblock_alloc_from(phys_addr_t size, in memblock_alloc_from() argument
439 phys_addr_t align, in memblock_alloc_from() argument
442 return memblock_alloc_try_nid(size, align, min_addr, in memblock_alloc_from()
446 static inline void *memblock_alloc_low(phys_addr_t size, in memblock_alloc_low() argument
447 phys_addr_t align) in memblock_alloc_low() argument
449 return memblock_alloc_try_nid(size, align, MEMBLOCK_LOW_LIMIT, in memblock_alloc_low()
453 static inline void *memblock_alloc_node(phys_addr_t size, in memblock_alloc_node() argument
454 phys_addr_t align, int nid) in memblock_alloc_node() argument
456 return memblock_alloc_try_nid(size, align, MEMBLOCK_LOW_LIMIT, in memblock_alloc_node()
461 * Set the allocation direction to bottom-up or top-down.
469 * Check if the allocation direction is bottom-up or not.
471 * in bottom-up direction.
484 void memblock_cap_memory_range(phys_addr_t base, phys_addr_t size);
488 bool memblock_is_region_memory(phys_addr_t base, phys_addr_t size);
490 bool memblock_is_region_reserved(phys_addr_t base, phys_addr_t size);
495 * memblock_set_current_limit - Set the current allocation limit to allow
514 * memblock_region_memory_base_pfn - get the lowest pfn of the memory region
521 return PFN_UP(reg->base); in memblock_region_memory_base_pfn()
525 * memblock_region_memory_end_pfn - get the end pfn of the memory region
532 return PFN_DOWN(reg->base + reg->size); in memblock_region_memory_end_pfn()
536 * memblock_region_reserved_base_pfn - get the lowest pfn of the reserved region
543 return PFN_DOWN(reg->base); in memblock_region_reserved_base_pfn()
547 * memblock_region_reserved_end_pfn - get the end pfn of the reserved region
554 return PFN_UP(reg->base + reg->size); in memblock_region_reserved_end_pfn()
558 * for_each_mem_region - iterate over memory regions
567 * for_each_reserved_mem_region - itereate over reserved memory regions