Address Ranges
include/mem/address_range.h View source View on GitHubStructs
Section titled “Structs”address_range
Section titled “address_range” struct address_range (7 fields) source
address_range_flags
Section titled “address_range_flags” enum address_range_flags (2 variants) source
Functions
Section titled “Functions”address_ranges_init
Section titled “address_ranges_init”void address_ranges_init(void) source address_ranges_print
Section titled “address_ranges_print”void address_ranges_print(void) source address_range_for_addr
Section titled “address_range_for_addr”struct address_range * address_range_for_addr(vaddr_t vaddr) source address_range_addr_in_range
Section titled “address_range_addr_in_range”bool address_range_addr_in_range(
struct address_range *ar,
vaddr_t vaddr
) source Macros
Section titled “Macros”ADDRESS_RANGE_KERNEL_START
Section titled “ADDRESS_RANGE_KERNEL_START”#define ADDRESS_RANGE_KERNEL_START 0xFFFF800000000000 source TODO
To different architectures, change this (also, for 32 bit)
ADDRESS_RANGE_KERNEL_END
Section titled “ADDRESS_RANGE_KERNEL_END”#define ADDRESS_RANGE_KERNEL_END 0xFFFFFFFFFFFFFFFF source ADDRESS_RANGE_DEFINE
Section titled “ADDRESS_RANGE_DEFINE”#define ADDRESS_RANGE_DEFINE(sym, ...) source Expansion
#define ADDRESS_RANGE_DEFINE(sym, ...) \
cc_wno_override_init_start LINKER_SECTION_OBJECT( \
struct address_range, address_ranges) __address_range_##sym = { \
.name = #sym, __VA_ARGS__, .rbt_node_internal = RBT_NODE_INIT}; \
cc_wno_override_init_end ADDRESS_RANGE
Section titled “ADDRESS_RANGE”#define ADDRESS_RANGE(sym) source Expansion
#define ADDRESS_RANGE(sym) (__address_range_##sym)