Lines Matching defs:mem_rngs
40 * get_mem_rngs_size - Get the allocated size of mem_rngs based on
42 * @mem_rngs: Memory ranges.
44 * Returns the maximum size of @mem_rngs.
46 static inline size_t get_mem_rngs_size(struct crash_mem *mem_rngs)
50 if (!mem_rngs)
54 (mem_rngs->max_nr_ranges * sizeof(struct range)));
75 struct crash_mem *mem_rngs = *mem_ranges;
77 if (!mem_rngs || (mem_rngs->nr_ranges == mem_rngs->max_nr_ranges)) {
78 mem_rngs = realloc_mem_ranges(mem_ranges);
79 if (!mem_rngs)
83 mem_rngs->ranges[mem_rngs->nr_ranges].start = base;
84 mem_rngs->ranges[mem_rngs->nr_ranges].end = base + size - 1;
86 base, base + size - 1, mem_rngs->nr_ranges);
87 mem_rngs->nr_ranges++;
93 * @mem_rngs: Range list to merge.
99 static void __merge_memory_ranges(struct crash_mem *mem_rngs)
104 if (!mem_rngs)
108 ranges = &(mem_rngs->ranges[0]);
109 for (i = 1; i < mem_rngs->nr_ranges; i++) {
120 mem_rngs->nr_ranges = idx + 1;
137 * @mem_rngs: Range list to sort.
142 void sort_memory_ranges(struct crash_mem *mem_rngs, bool merge)
146 if (!mem_rngs)
150 sort(&(mem_rngs->ranges[0]), mem_rngs->nr_ranges,
151 sizeof(mem_rngs->ranges[0]), rngcmp, NULL);
154 __merge_memory_ranges(mem_rngs);
158 for (i = 0; i < mem_rngs->nr_ranges; i++) {
160 mem_rngs->ranges[i].start,
161 mem_rngs->ranges[i].end);
175 struct crash_mem *mem_rngs = *mem_ranges;
179 size = get_mem_rngs_size(mem_rngs);
180 nr_ranges = mem_rngs ? mem_rngs->nr_ranges : 0;
183 mem_rngs = krealloc(*mem_ranges, size, GFP_KERNEL);
184 if (!mem_rngs) {
190 mem_rngs->nr_ranges = nr_ranges;
191 mem_rngs->max_nr_ranges = get_max_nr_ranges(size);
192 *mem_ranges = mem_rngs;
194 return mem_rngs;
210 struct crash_mem *mem_rngs = *mem_ranges;
219 if (!mem_rngs || !(mem_rngs->nr_ranges))
222 for (i = 0; i < mem_rngs->nr_ranges; i++) {
223 mstart = mem_rngs->ranges[i].start;
224 mend = mem_rngs->ranges[i].end;
227 mem_rngs->ranges[i].start = base;
229 mem_rngs->ranges[i].end = end;