/* Return a list of valid memory ranges */ int get_memory_ranges(struct memory_range **range, int *ranges, unsigned long kexec_flags) { /* allocate memory_range dynamically */ max_memory_ranges = 1; if (alloc_memory_ranges()) return -1; if (setup_memory_ranges(kexec_flags)) return -1; /* * copy the memory here, another realloc_memory_ranges might * corrupt the old memory */ *range = calloc(sizeof(struct memory_range), nr_memory_ranges); if (*range == NULL) return -1; memmove(*range, memory_range, sizeof(struct memory_range) * nr_memory_ranges); *ranges = nr_memory_ranges; dbgprintf("get memory ranges:%d\n", nr_memory_ranges); return 0; }
/* Return a list of valid memory ranges */ int get_memory_ranges_dt(struct memory_range **range, int *ranges, unsigned long kexec_flags) { if (count_memory_ranges()) return -1; if (alloc_memory_ranges()) return -1; if (setup_memory_ranges(kexec_flags)) return -1; *range = memory_range; *ranges = nr_memory_ranges; return 0; }
/* Return a list of valid memory ranges */ int get_memory_ranges(struct memory_range **range, int *ranges, unsigned long kexec_flags) { if (count_memory_ranges()) return -1; if (alloc_memory_ranges()) return -1; if (setup_memory_ranges(kexec_flags)) return -1; *range = memory_range; *ranges = nr_memory_ranges; fprintf(stderr, "get memory ranges:%d\n", nr_memory_ranges); return 0; }