/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _MEMREGIONS_H_
#define _MEMREGIONS_H_
#include <libcflat.h>
#include <bitops.h>

#define NR_INITIAL_MEM_REGIONS		8

#define MR_F_IO				BIT(0)
#define MR_F_CODE			BIT(1)
#define MR_F_RESERVED			BIT(2)
#define MR_F_PERSISTENT			BIT(3)
#define MR_F_UNKNOWN			BIT(31)

struct mem_region {
	phys_addr_t start;
	phys_addr_t end;
	uint32_t flags;
};

extern struct mem_region *mem_regions;

void memregions_init(struct mem_region regions[], size_t nr);
struct mem_region *memregions_add(struct mem_region *r);
struct mem_region *memregions_find(phys_addr_t paddr);
uint32_t memregions_get_flags(phys_addr_t paddr);
void memregions_split(phys_addr_t addr, struct mem_region **r1, struct mem_region **r2);
void memregions_add_dt_regions(size_t max_nr);

#ifdef CONFIG_EFI
#include <efi.h>
void memregions_efi_init(struct efi_boot_memmap *mem_map, struct mem_region **freemem);
#endif

#endif /* _MEMREGIONS_H_ */
