1*757dc8abSWarner Losh /*- 2*757dc8abSWarner Losh * Copyright (c) 2024, Netflix, Inc. 3*757dc8abSWarner Losh * 4*757dc8abSWarner Losh * SPDX-License-Identifier: BSD-2-Clause 5*757dc8abSWarner Losh */ 6*757dc8abSWarner Losh 7*757dc8abSWarner Losh #pragma once 8*757dc8abSWarner Losh 9*757dc8abSWarner Losh struct memory_segments 10*757dc8abSWarner Losh { 11*757dc8abSWarner Losh uint64_t start; 12*757dc8abSWarner Losh uint64_t end; 13*757dc8abSWarner Losh uint64_t type; /* MD defined */ 14*757dc8abSWarner Losh }; 15*757dc8abSWarner Losh 16*757dc8abSWarner Losh #define SYSTEM_RAM 1 17*757dc8abSWarner Losh void init_avail(void); 18*757dc8abSWarner Losh void need_avail(int n); 19*757dc8abSWarner Losh void add_avail(uint64_t start, uint64_t end, uint64_t type); 20*757dc8abSWarner Losh void remove_avail(uint64_t start, uint64_t end, uint64_t type); 21*757dc8abSWarner Losh uint64_t first_avail(uint64_t align, uint64_t min_size, uint64_t type); 22*757dc8abSWarner Losh void print_avail(void); 23*757dc8abSWarner Losh bool populate_avail_from_iomem(void); 24*757dc8abSWarner Losh uint64_t space_avail(uint64_t start); 25