xref: /freebsd/stand/kboot/include/seg.h (revision 757dc8ab1245118bd3861ee2853b42c3476c1ed4)
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