Skip to content

Address Ranges

struct address_range {
char *name;
vaddr_t base;
size_t size;
size_t align;
enum address_range_flags flags;
struct rbt_node rbt_node_internal;
};

struct address_range referenced types:

enum address_range_flags {
ADDRESS_RANGE_DYNAMIC = 1 << 0,
ADDRESS_RANGE_STATIC = 0,
};
void address_ranges_init();
void address_ranges_print();
struct address_range * address_range_for_addr(vaddr_t vaddr);

address_range_for_addr referenced types:

#define ADDRESS_RANGE_KERNEL_START 0xFFFF800000000000
#define ADDRESS_RANGE_KERNEL_END 0xFFFFFFFFFFFFFFFF
#define ADDRESS_RANGE_DECLARE(sym, ...) \ static struct address_range __address_range_##sym \ __attribute__((section(".kernel_address_ranges"), used)) = { \ __VA_ARGS__, .rbt_node_internal = RBT_NODE_INIT}
#define ADDRESS_RANGE(sym) (__address_range_##sym)